Version 23

    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.