Changes in portal-extensions between Labs 1.x and Labs 2.0
Changes in the build
because of many problems with AOP load-time transformation, especially with AS 4.0.5, they're now turned off. Instead, AOP transformations are now made compile-time, so the build is a bit slower, but labs startup is faster. This forced some changes in the build: a new goal, aop-instrument is always called after compiling java classes.
Deployment structure
transforming classes with AOP during compilation has some weird consequences. One of them is that the classes can't be in a .war archive (sth w/ classloaders; I asked the AOP guys, they say this scenario 'hasn't been tested and may not work'). So, to fix this problem, all .wars are now deployed in a .sar, which contains a .jar with classes and a .war with web.xml or portlet.xml
the above problems with AOP caused changes in build goals: prj-war-deploy now deployes not a .war, but a .sar as described above
also, the new EJB3 RC9 has problems too (no answer on the forums yet of course) - it looks like an .ejb3 archive cannot be deployed in a .sar. So all .ejb3 have to be deployed in the main directory
Removed subprojects
portal-dnd (merged with portal)
forge-wiki
forge-links
forge-timetracker
forge-forums
forge-service - I have migrated all existing NodeWatcher to ShotokuResourceWatchers (in: polls, download counters, primates); please check if it is correct
forge-navigation
forge-ads, forge-freezone, forge-prj-info, forge-prj-downloads - merged into one forge-portlets; the idea is that this will hold all project-related portlets. Maybe this is a good balance between having each portlet have a separate directory and having all portlets in one directory.
Packages that don't work
(deployment and/or build of these packages is commented out)
jbosswiki
polls
counters
jmm - jmm portlet shold be deployed on Labs, but jmm service not (as it will run on a separate machine). So far we haven't got separate machine so both are commented out.
kosmos - as above
forge-login
forge-tagme
forge-portal-attr - all filters from that project are not activated on portal
Other changes
we now use the default configuration of the AS
portal-binaries, jboss-as-binaries, mysql-connector moved to binaries directory
removed jboss from maven-repo-addons: now all libraries from the server's lib folder (as well as portal's, ejb3 and aop) are copied to maven's repo, so this directory was not needed
so far we are using hsqldb for portal as mysql doesn't seem to work with it yet
libraries from shotoku.sar and jboss-forge.sar are moved to the server/default/lib/shotoku and server/default/lib/forge directories. This, of course, makes it impossible to hot-redeploy whole labs, but it was never possible anyway.
don't forget to change your build.properties so that the local.deploy.dir now points to the default configuration both in shotoku and portal-extensions
clean-up of portal-content: removed federation, kosmos, default/navigation, default/services.xml, default/jems.xml
Changes in the --newprj branch
a new forge-ejb3 project: this will hold all ejb3 service/stateless/session beans implementations that are used in Labs. The idea is to have in forge-common only really common classes, which includes ejb3 components interfaces. Implementations will go forge-ejb3. Note that this also enables hot-redeployment of only the services, without the need to restart the AS, as would be the case if the package was in forge-common.
Comments