A first comment I'd forgot to add to the info provided below:
The JS2-319 branch was created a few days ago and does not yet contain the
recent changes
for JS2-281, JS2-231 or JS2-233, but contains the fix for JS2-232 as I detected
that problem
while working on this branch.
Furthermore, I've tested out the fix for JS2-233 on this branch and confirmed
it works.
Regards,
Ate
Ate Douma wrote:
All,
Below is a copy of the comment I posted on
http://issues.apache.org/jira/browse/JS2-319 which I send to
the jetspeed mailing lists because its much easier to comment to.
-----------------------------------------------------------------------------------------------------------
Although its already (too) late today, I just realized I probably won't
have time for a proper description
of this until later tomorrow or even not until this weekend ...
So, here comes a short summary of my changes as well as first some
instructions how one can already test out
the new plugin and the genapp goal (note: I'm gonna send a copy of this
comment to the mailing lists):
a) Checkout the JS2-319 branch from:
http://svn.apache.org/repos/asf/portals/jetspeed-2/branches/JS2-319
b) Run:
- maven initMavenPlugin
- maven allClean allBuild
c) Define the following properties in you $USER_HOME/build.properties
(forget/remove the old ones):
org.apache.jetspeed.portal.home=<target folder for the new custom portal
project>
org.apache.jetspeed.portal.groupId=<custom portal maven groupId>
org.apache.jetspeed.portal.artifactId=<custom portal maven artifactId>
org.apache.jetspeed.portal.name=<friendly maven name for you custom portal>
org.apache.jetspeed.portal.currentVersion=<version of your custom portal>
Note the change from org.apache.jetspeed.portal.name (trunk) to
org.apache.jetpseed.portal.artifactId (JS2-319)!
For the default jetspeed build, these properties are set in
jetspeed.properties as follows:
org.apache.jetspeed.portal.home=${org.apache.jetspeed.project.home}
org.apache.jetspeed.portal.groupId=jetspeed2
org.apache.jetspeed.portal.artifactId=jetspeed
org.apache.jetspeed.portal.name=Jetspeed 2 Enterprise Portal
org.apache.jetspeed.portal.currentVersion=${jetspeed.version}
d) Run:
- maven j2:portal.genapp
- cd ${org.apache.jetspeed.portal.home}
- maven war:install
- maven j2:quickStart
e) Done.
You now will have a custom portal installed in Tomcat (note, you still
need to set the required properties for that as before).
Where the plugin installs/configures your custom portal is defined by
the following plugin.properties
which you can override in your build.properties if you want:
# where the filtered tomcat/context.xml is stored
org.apache.jetspeed.portal.conf.dir=target/portal-conf
# where the generated and static sql scripts are stored
org.apache.jetspeed.portal.sql.dir=target/portal-sql
# where the hsql test.script and/or production.script db is created
org.apache.jetspeed.portal.db.dir=target/portal-db
# target for the (static) portal webapp
org.apache.jetspeed.portal.webapp.dir=target/${org.apache.jetspeed.portal.artifactId}
# target for the filtered ojb config and jetspeed.properties
org.apache.jetspeed.portal.target.dir=target/${org.apache.jetspeed.portal.artifactId}
This default configuration results in a generated portal build
configuration similar to what the original j2:genapp.portal.runtime goal
did.
If you want the effect or the original j2:genapp.portal goal you should
change the following:
org.apache.jetspeed.portal.webapp.dir=${basedir}/src/webapp
The new j2:portal.genapp thus handles both the old j2:genapp.portal and
j2:genapp.portal.runtime goals with just a property change!
The one thing I planned but haven't done is storing the maven-plugin
data (scripts, webapp src etc.) in a
separate resource jar.
Although I thought about it, it currently isn't providing much benefit I
think, so I skip that for now.
A remark about the move of the /portal-webapp/src/webapp to /src/webapp.
I did this because that way the we can (and are forced) to eat our own
dogfood:
building the default jetspeed portal that way uses the same maven
project structure
as a generated custom portal setup. The plugin actually is used for the
default build too.
Another important change I made to the portal (maven) project structure:
the j2:portal.genapp goal (or better: the invoked j2:portal.maven goal)
will *not* override
an existing project-info.xml or project.xml, only an initial one will be
created.
As these two project files don't contain anything needed for the portal
build itself, a custom portal
setup can easily be extended (with additional project info, dependencies
and/or resource configurations
for example) by modifying these files, and you still can upgrade to a
newer version of jetspeed by simply
executing j2:portal.genapp (or any of its sub goals).
You own custom portal configuration can thus be preserved and checked in.
For the same reason, no custom project/build.properties is generated
allowing you to provide your own.
The sql scripts are now (pre) generated in a configurable location and
only generated for the db you
have specified.
If org.apache.jetspeed.use.test.database = true (default false, but true
in jetspeed.properties),
and a different test db is specified, two sets of sql scripts will be
generated.
All previous drop table handling goals are removed (and no longer
needed) as now one (hardcoded) drop.sql
scripts is executed (with continue on errors) before the schema scripts
are executed.
Ant filters are now applied upon the j2:portal.genapp goal (and its sub
goals), not when the plugin is
created (with initMavenPlugin).
This means you can change your build.properties settings and simply call
the j2:portal.genapp or one of
its subgoals to update your configuration. You don't need to run
initMavenPlugin again anymore.
Finally, I reorganized and renamed several plugin goals.
Mostly prefixing them with an "_", indicating these are meant for
internal use by the plugin itself.
For public usage, a lot less goals need to be documented that way.
Too many public goals is too confusing in my mind.
I invite everyone to checkout this branch and tryout the new genapp goals.
Hopefully, most if not all current build problems and wishes (for now
that is) are covered by this.
If you agree/disagree on all or part of my changes, please comment to
this message on the mailing list.
And if you encounter bugs or unexpected and unwanted behavior, please
comment at
http://issues.apache.org/jira/browse/JS2-319
With enough support, I'd like to merge these changes ASAP to the trunk.
Regards, Ate
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]