Issue Details (XML | Word | Printable)

Key: JS2-210
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Ate Douma
Reporter: Ate Douma
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Jetspeed 2

Resolving all deployment classloader problems

Created: 16/Feb/05 06:29 AM   Updated: 25/May/05 07:29 AM
Return to search
Component/s: Container, Deployment, Portlet Factory
Affects Version/s: 2.0-dev/cvs, 2.0-M2, 2.0-FINAL
Fix Version/s: 2.0-dev/cvs, 2.0-M2

Time Tracking:
Not Specified

Resolution Date: 24/Mar/05 08:43 AM


 Description  « Hide
The current implementation of handling deployment, redeployment and undeployment of Portlet Applications (PAs) contains
several workarounds to prevent file locking of jars and classes on Windows and to allow layout portlets to run under
the Jetspeed-2 context.

After almost a day debugging and testing I found the real cause of all the problems we try to fix:
our own URLClassLoaders we create to be able to access the portlet and portlet resource bundles in the PA.

As a test, I replaced our own URLClassLoaders with the contextClassLoader from the PA, retrieved during the init
of the JetspeedServletContainer. And viola, no more problem!

I'm going to drastically refactor the whole deployment implementation to be able to *only* use the PA contextClassLoaders.

The autodeployment from the deploy folder will be changed to infuse the PA war (if needed) and *move* it to the webapps
folder so the autodeployment of the application server will handle the real deployment.
Thus: the undeployment from the deploy folder for PAs will be gone!

Redeployment will still work as expected though.

For undeployment, an new undeployment feature in the PAM Portlet will be added.
Additionally, other PA management features like upload/start/stop/reload/ should be added soon too. We need a separate
issue for that though.

Decorators (and soon layouts too) will still be handled as is done right now (they don't involve classloaders).

For deployment of layout portlets I want to make the following changes:
- must be deployed as jar, *not* as war
- can *only* contain classes, no resources
- resources required by a layout portlet must be deployed separately with a decorators or layouts jar
- will *not* be deployed as web app but the jar *will* be loaded with a URLClassloader with the portal classloader
  as parent: the portlets will be invoked through a JetspeedContainerServlet from the portal itself.
These changes will also fix the outstanding problem with running Jetspeed-2 under a different context!
(see JS2-172 and JS2-182)

I'm going to need several days to perform this refactoring so if anyone has problems with this plan please do comment within the next few days!

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Ate Douma made changes - 02/Mar/05 11:58 AM
Field Original Value New Value
Status Open [ 1 ] In Progress [ 3 ]
Ate Douma made changes - 24/Mar/05 08:43 AM
Status In Progress [ 3 ] Resolved [ 5 ]
Fix Version/s 2.0-M2 [ 11015 ]
Resolution Fixed [ 1 ]
Fix Version/s 2.0-dev/cvs [ 10598 ]
Ate Douma made changes - 25/May/05 07:29 AM
Status Resolved [ 5 ] Closed [ 6 ]