[
http://issues.apache.org/jira/browse/JS2-304?page=comments#action_12315646 ]
David Le Strat commented on JS2-304:
------------------------------------
As part of step 2 of the build process clean up, I propose to centralize most
of the Jetspeed 2 custom goals to the Jetspeed 2 Maven Plugin. The reasons for
doing so are multiple:
1. Provide better reusability of common build goals. Users creating a new
portal application
should be able to leverage Jetspeed 2 Maven plugin for common build operations.
2. Provide the ability to quickly get started with a portal application. A new
target j2:genapp.portal will be created to create a shell portal application.
The developer of the new
application can reuse the Jetspeed 2 Maven plugin goals for common build
operations for quickStart, portlet deployment, etc.
3. Prepare for a migration to M2 in the future. With M2, custom goals are
encapsulated in plugins, maven.xml is deprecated. By centralizing most of the
Jetspeed 2 build goals to the Jetspeed 2 Maven plugin, migration to M2 should
be much easier.
In addition, I proposed to remove the site directory as it duplicates
application documentation. It would also be a good idea to revive the
documentation framework discussion, and centralize the documentation location,
Raphael had a forrest proposal out there, why not. We could also stick with
Maven, but in any case, we should clean things up and improve docs. I remember
reading about a Documentation project going on leveraging the WIKI. I would be
nice to clarify the approach for improving documentation (xdocs, WIKI, both?)
Finally, as part of this clean up, I have moved a few things around, most
notably the /src/sql and /src/schema directories that are now part of
maven-plugin/plugin-resources.
Please find below a much more detailed description of the clean up proposed.
-------------------------
Move the following targets from /maven.xml to maven-plugin:
- start.production.server now called j2:start.production.server
- start.test.server now called j2:start.test.server
- db.execute now called j2:db.execute
- Moved copy.shared.deps to j2:copy.shared.deps
- db.scripts.gen now called j2:db.scripts.gen
- db.test.properties now called j2:db.test.properties
- db.production.properties now called j2:db.production.properties
- db.create.test now called j2:db.create.test
- db.create.production now called j2:db.create.production
- db.create now called j2:db.create
- db.recreate now called j2:db.recreate
- db.drop.test now called j2:db.drop.test
- db.drop.production now called j2:db.drop.production
- db.drop now called j2:db.drop
- db.drop2 now called j2:db.drop2
- db.drop.oracle now called j2:db.drop.oracle
Move the following targets from /portal-webapp to maven-plugin:
- catalina:base-shared moved to j2:catalina.base.shared
- catalina:shared moved to j2:catalina.shared
- Removed db.execute. Duplicated in plugin.
- Removed db.test.properties. Duplicated in plugin.
- Removed db.production.properties. Duplicated in plugin.
- Removed catalina:base-shared. Duplicated in plugin.
- Removed catalina:shared. Duplicated in plugin.
- Removed basicDeploy. Redundant with minDeploy.
- Removed nodbBasicDeploy. Redundant with nodbMinDeploy.
- Delete portal-webapp/src/sql. Not used.
- Moved deploy to maven plugin j2:portal.deploy
- Moved fullDeploy to maven plugin j2:fullDeploy
- Moved nodbfullDeploy to maven plugin j2:nodbfullDeploy
- Moved minDeploy to maven plugin j2:minDeploy
- Moved nodbMinDeploy to plugin j2:nodbMinDeploy
- Moved pam.* to maven plugin j2:pam.*
Clean /maven-plugin maven.xml:
- Removed copyDb target. Not need anymore. SQL files were relocated.
- Removed db.execute. Duplicated in plugin.
- Remove db.create. Duplicated in plugin.
Clean all maven.xml
- Removed deployJar. Moved to maven plugin j2:jar.deploy
- Moved shared deployJar target to maven plugin j2:jar.deploy.shared
Update Getting started documentation.
- maven initMavenPlugin allClean allBuild is now required instead of maven
allClean allBuild if the latest version of the maven plugin is not installed.
- I also provide documentation on how to set up the latest version of the
plugin without requiring a J2 checkout.
Documentation Changes.
- Deleted site. Currently duplicate of xdocs.
- Updated allSite target to generate multiprojects site. This is not working.
Any suggestions on this is appreciated.
Creation a new portal application.
- j2:genapp.portal Documentation
- Add to build.properties in {user.home}:
- org.apache.jetspeed.genapp.home=C:/tools/workspace/testportal
- org.apache.jetspeed.genapp.groupId=testportal
- org.apache.jetspeed.genapp.name=My Test Portal
- org.apache.jetspeed.genapp.currentVersion=1.0
- Get started with new project: maven j2:genapp.portal
- In testportal dir, run maven j2:portal.install
Updated getting started documentation.
Added new documentation section: Under Essentials: Jetspeed 2 Maven Plugin
Until the Jetspeed 2 web site is regenerated, <a
href="http://www.geocities.com/dlestrat/etc/j2/buildChangeDocs.pdf">click
here</a> to get documentation on how to use the updated maven plugin.
> Build Process Clean Up
> ----------------------
>
> Key: JS2-304
> URL: http://issues.apache.org/jira/browse/JS2-304
> Project: Jetspeed 2
> Type: Improvement
> Components: Project Build
> Versions: 2.0-M4
> Reporter: David Le Strat
> Assignee: David Le Strat
> Fix For: 2.0-M4
>
> Jetspeed2 current build process is a bit confusing. Through the various
> evolutions of J2 build process, many targets have been accumulated that make
> it difficult to easily understand the build process flow.
> h2. Cleaning up the build process
> Using J2 in its current form requires an in-depth understanding of how J2
> build internals operate.
> As an example, an integrator wanting to get starting with J2 will want to
> start with the portal web application and customize it from there. It should
> be made easy for integrators to get started with the web application without
> requiring an in-depth understanding of the various sequences in the build
> process.
> A typical implementation will want to create a project as described below:
> \sample-portal
> +---\etc Contains the build dependencies definition.
> +---\portal-webapp Contains the portal web application being built.
> +---\src Contains the portal initialization source (db
> scripts, etc).
> Building the portal in this structure should be possible by leveraging the
> deployed Jetspeed dependencies:
> * Components: All libraries (jars) required for the runtime operation of the
> portal engine.
> * Portlets: All web libraries (wars) required for the runtime operation of
> the portal engine.
> Integrator using Jetspeed2 should be able to do so easily and to easily get
> (through dependencies) the
> latest versions of the release Jetspeed components (libraries as well as
> portlets).
> The current maven-plugin and portal build implementation rely on the source
> build (target directories) rather than the dependencies for the assembly of
> the portal engine, making it more difficult to get quickly started and to
> keep up with enhanced components.
> h2. Proposed changes
> The proposed changes below clean up the build process and slightly reorganize
> some elements to more easily achieve the goals outlined above.
> The first changes restructure the portal directory as follow.
> # Remove all non web related dependencies from portal:
> ## Move the portal java source and java tests to components/portal. This
> becomes a component that will
> be released as jetspeed-(version).jar
> ## Rename the web application to portal-webapp and the artifact id to
> jetspeed-portal (to remove conflict
> with the jetspeed component artifact).
> ## Move the test directory under portal-webapp to components/portal/test as
> it support the portal
> components tests.
> ## Add org.apache.jetspeed.PortalTestConstants to centralize initialization
> of JETSPEED_PROPERTIES_PATH
> and PORTAL_WEBAPP_PATH.
> Clean up the portal-webapp (previously portal) build and maven-plugin.
> # Clean portal/maven.xml:
> ## Remove commented calls to targets.
> # The deploy and undeploy calls in the portal-webapp (previously portal)
> build process should be using the
> maven-plugin to do so. Multiple deploy, undeploy, register, unregister
> behaviors create confusion.
> Therefore, I propose to perform the following cleanup in the portal-webapp
> (previously portal):
> ## Remove pam.template.deploy. This is not used.
> ## Remove pam.unregister. Depends on
> pam.template.register which is not being used.
> ## Remove pam.template.register. This is not used.
> ## Remove pam.template.undeploy. There is a
> jetspeed2:undeploy target in the jetspeed plugin.
> ## Rename pam.register to pam.layoutdeploy. This really deploys the layout
> portlet and should be consistent with the other deploy targets.
> ## Rename pam.deploy to pam.demodeploy. This deploys the demo application.
> ## Rename pam.undeploy to pam.demoundeploy. This undeploys the demo
> applications.
> ## Rename pam.rss to pam.rssdeploy for consistency purpose.
> ## Modify the pam.(portlet)undeploy targets to use the jetspeed maven plugin
> jetspeed2:undeploy target.
> ## Remove deployJar and deployClasses. portal-webapp now uses dependencies
> for the portal component
> library.
> ## Remove jar:jar target.
> ## Clean plugin.jelly: jetspeed2:register and jetspeed2:unregister. Not used.
> Have portal-webapp depend on the built Portlet dependencies rather that the
> build target directories.
> # Modify the maven.xml pam.(portlet)deploy target and the maven-plugin to use
> the archived portlet war
> deployed to the repository (maven install).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]