IdentifierProblemThoughts on SolutionNotes/comments

Confusing build/deploy process that I don't believe anyone in this community fully understands.

 Wildly outdated support libraries (thanks Noah for tackling this one).  
 Failure to support basic browser features such as tabs and the back button  
 Non-normalized, unsearchable data in core tools such as Content.  
 Lack of support for database failover except through driver indirection.First step: undo our weird binding to a very old DBCP and allow a real DataSource to be plugged in -- whatever pool or config you need. Second step: pick the Tomcat pool by default and document how to switch if you need something else (hint: should be very standard and basically link to JDK/Tomcat docs). Third step: add some better connection/query/transaction/request metrics that work OOTB so implementors can better see what's going on and decide what to do about it. 
 Poor or non-existent logging of basic processes.  

Users are bound to a single app server, making zero-downtime maintenance and high-availability very difficult to achieve.

 An authz system that scales poorly and is near impossible to maintain.  
 An API tightly bound to the particulars of the portal/portlet presentation.  
 Outstanding security issues in both unmaintained and brand new core tools.  
 Runaway database activity in most hibernate-based tools.  
 Serious lack of anything beyond the most basic administrative tools.  

No support for a departmental tech support or junior administrator role.

Put DAC into core! Delegated Access Tool 

Complete lack of inter-tool database relationships, sometimes even a lack of anything that could even be *used* as a pseudo-foreign key.

 Lack of an asynchronous request system for long-running processesFirst step: retrace the steps done to integrate JMS / ActiveMQ (MessageService?) and decide if that's the right way to go. Second step: implement something basic and very standard. Third step: move some nasty bits like site duplication to the work queue and set up some good docs about how to queue (standard), query for status (standard), and update the user/browser (specific to our portal/notification services). 
 Incomplete and inconsistent archive/restore support.  
 RSF (do we mean rewrite to eliminate use of RSF)?  
 No clear separation between core functionality and toolset.  
 No registration of allowed property values by tools.  
 Two configuration systems munged together: properties and Spring.  

A site management tool that's confusing and overwhelming, both to end-users and to developers who might want to clean it up.


A source code base that's full of redundant and inoperative codenot to mention transition steps from half a dozen versions ago that still run at every startup.

  A widely used display tech (JSF 1) that is both unmaintaned and known to kill app servers Do we mean eliminate the use of JSF or switch to a newer version of JSF?
 Find a 90% Solution to making browser back button working in most tools