This page attempts to document the organization of the automatic build processes run by Continuum on the host myfaces.zones.apache.org.
Access to the zone is restricted to certain comitters at this time. If you are a comitter, and would like to help out with zone maintenance, please contact the Myfaces PMC.
Here are some salient points about the installation:
1. In order for Continuum to be able to email it's build results to the mailing list, sendmail has to be running. I have found in the past that sendmail does not automatically start when the zone boots. To check the status of sendmail, use:
svcs -xv svc:/network/smtp:sendmail
If the service is not in the "online" state, you can enable it with:
svcadm enable svc:/network/smtp:sendmail
2. The Continuum process itself is currently not maintained by svcadm. This will be rectified in the future, but for now follow this procedure, logged into the zone under the mrmaven ID:
./start_continuum-1.1.sh
Continuum 1.1-alpha-1
Installed 1.1-alpha-1 on 20070513 (wsmoak)
extracted archive under /local, renamed continuum to continuum-1.1-alpha-1
borrowed start and stop scripts from the maven zone, see ~mrmaven/start_continuum-1.1.sh and ~mrmaven/stop_continuum-1.1.sh
started and stopped once, then edited:
apps/continuum/conf/application.xml
change HTTP port 8080 to 8081
/local/continuum-1.1-alpha-1/conf/plexus.xml
change the database locations to /local/continuum/users-db and builds-db
Other things to edit:
apps/continuum/webapp/WEB-INF/classes/org/apache/maven/continuum/security.properties
Notes
If you add a new project group, add the "Project Group User" role to the guest user so that build results are visible to guests
Log
restarted on 20070527, JettyException: Java Heap Space
restarted on 20070612, did not investigate
TODO: Upgrade to Continuum 1.1-alpha-2
Continuum 1.1-alpha-2
* 20070624 - Uploaded Continuum 1.1-alpha-2 and unpacked it in /local * need to try the data-management command line utility to see if the existing database can be 'backed up' (dumped to xml)
Build Definitions
Some projects have more the one Build Definition. In some cased, like Tomahawk Core, the additional build is to test the artifact against an additional JSF implementation. This is done by adding the argument -Djsf=xx. As of Tomahawk 1.1.6, the supported implementation are:
|
-Djsf=ri |
Sun Reference implementation, 1.1_02 |
Troubleshooting
Problem: Build Error due to a problem with the working copy
**************************************************************************** Build Error: **************************************************************************** Provider message: The svn command failed. Command output: ------------------------------------------------------------------------------- svn: Working copy '.' locked svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) Type 'svn help' for usage. -------------------------------------------------------------------------------
Solution:
The working directory is in /usr/local/continuum-1.1-beta-2/working-directory/<projectId>
the projectId for Apache Incubator Trinidad Podling, for example is 146. Just execute :
cd /usr/local/continuum-1.1-beta-2/working-directory/146 svn cleanup .
Problem: Wrong IP address in /etc/hosts
One problem was the host lookup for myfaces.zones.apache.org which wasn't working on the zone box. I was not able to modify /etc/hosts (the cause of the problem is the wrong ip address for myfaces.zones.apache.org) but I found a workaround and defined in maven settings.xml for mrmaven user (the user is used for the continuum builds) a mirror to localhost for myfaces.zones.apache.org.
Still need to find someone with root to fix it in /etc/hosts
Problem: Continuum 1.1 fails to start and reports a connection problem with the database
A possible cause is a previous shutdown of continuum failed and the process was killed.
The embedded database (derby) maintains some lck files in /local/continuum-1.1-SNAPSHOT/data/continuum/database If the continuum process is stopped and these *.lck files are still in that directory it is not possible to start continuum again.
The solution is to remove the *.lck files:
rm /local/continuum-1.1-SNAPSHOT/data/continuum/database/*.lck
and (re)start continuum.
Trying to upgrade to Continuum 1.1 (final)
Installed 1.1 on 20080225 (mgeiler) in /local/continuum-1.1
symbolic link /local/continuum updated
changed /local/continuum-1.1/bin/solaris-x86-32/wrapper.conf
wrapper.port.min=33000 wrapper.port.max=33999
Exported old data:
cd /export/home/mrmaven/continuum-upgrade-1.1-final java -Xmx512m -jar data-management-cli-1.1-beta-2-app.jar -buildsJdbcUrl jdbc:derby:/local/continuum-1.1-beta-2/data/continuum/database -mode EXPORT -directory backups-projects java -Xmx512m -jar data-management-cli-1.1-beta-2-app.jar -usersJdbcUrl jdbc:derby:/local/continuum-1.1-beta-2/data/users/database -mode EXPORT -directory backups-users
Prepare data for input (
http://maven.apache.org/continuum/docs/1.1/installation/upgrade.html):
cd /export/home/mrmaven/continuum-upgrade-1.1-final/backups-projects xsltproc copy.xsl builds.xml > fixed-builds.xml mv builds.xml builds.xml.orig mv fixed-builds.xml builds.xml
Started import:
java -Xmx512m -jar data-management-cli-1.1-app.jar -buildsJdbcUrl jdbc:derby:/local/continuum-1.1/data/continuum/database -mode IMPORT -directory backups-projects java -Xmx512m -jar data-management-cli-1.1-app.jar -usersJdbcUrl jdbc:derby:/local/continuum-1.1/data/users/database -mode IMPORT -directory backups-users
Failed!
-bash-3.00$ java -Xmx512m -jar data-management-cli-1.1-app.jar -buildsJdbcUrl jdbc:derby:/local/continuum-1.1/data/continuum/database -mode IMPORT -directory backups-projects
0 [main] INFO org.apache.maven.continuum.management.DataManagementCli - Processing Continuum database...
Exception in thread "main" java.lang.NullPointerException
at org.apache.maven.continuum.management.DataManagementCli.downloadArtifact(DataManagementCli.java:364)
at org.apache.maven.continuum.management.DataManagementCli.processDatabase(DataManagementCli.java:198)
at org.apache.maven.continuum.management.DataManagementCli.main(DataManagementCli.java:170)
Disabling (renaming) .m2/settings.xml fixed the problem, BUT when doing the users import I got
7623 [main] INFO JPOX.RDBMS.Schema - Managing Persistence of Class : org.codehaus.plexus.redback.users.jdo.UsersManagementModelloMetadata [Table : USERSMANAGEMENTMODELLOMETADATA, InheritanceStrategy : new-table]
7630 [main] INFO JPOX.RDBMS - Creating table USERSMANAGEMENTMODELLOMETADATA
7704 [main] INFO JPOX.RDBMS - Validated 1 unique key(s) for table USERSMANAGEMENTMODELLOMETADATA
7772 [main] INFO JPOX.RDBMS - Validated 1 index(es) for table USERSMANAGEMENTMODELLOMETADATA
Exception in thread "main" java.lang.NullPointerException
at org.codehaus.plexus.redback.management.JdoDataManagementTool.restoreRBACDatabase(JdoDataManagementTool.java:186)
at org.apache.maven.continuum.management.redback.JdoDataManagementTool.restoreDatabase(JdoDataManagementTool.java:93)
at org.apache.maven.continuum.management.DataManagementCli.processDatabase(DataManagementCli.java:270)
at org.apache.maven.continuum.management.DataManagementCli.main(DataManagementCli.java:177)
Nevertheless starting new continuum version
/local/continuum/bin/solaris-x86-32/run.sh start
gives
INFO | jvm 1 | 2008/02/25 15:11:41 | Caused by: org.codehaus.plexus.jetty.ServletContainerException: Error while starting the context /continuum INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.jetty.AbstractJettyServletContainer.startApplication(AbstractJettyServletContainer.java:213) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.service.jetty.JettyPlexusService.afterApplicationStart(JettyPlexusService.java:248) INFO | jvm 1 | 2008/02/25 15:11:41 | ... 34 more INFO | jvm 1 | 2008/02/25 15:11:41 | Caused by: java.lang.NullPointerException INFO | jvm 1 | 2008/02/25 15:11:41 | at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1202) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1261) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.jdo.PlexusJdoUtils.updateObject(PlexusJdoUtils.java:160) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.apache.maven.continuum.store.JdoContinuumStore.updateObject(JdoContinuumStore.java:1080) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.apache.maven.continuum.store.JdoContinuumStore.updateObject(JdoContinuumStore.java:1072) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.apache.maven.continuum.store.JdoContinuumStore.updateBuildDefinitionTemplate(JdoContinuumStore.java:935) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.apache.maven.continuum.builddefinition.DefaultBuildDefinitionService.addBuildDefinitionInTemplate(DefaultBuildDefinitionService.java:504) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.apache.maven.continuum.builddefinition.DefaultBuildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate(DefaultBuildDefinitionService.java:323) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.apache.maven.continuum.builddefinition.DefaultBuildDefinitionService.initializeDefaultContinuumBuildDefintions(DefaultBuildDefinitionService.java:116) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.apache.maven.continuum.builddefinition.DefaultBuildDefinitionService.initialize(DefaultBuildDefinitionService.java:104) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializePhase.execute(InitializePhase.java:33) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.lifecycle.AbstractLifecycleHandler.start(AbstractLifecycleHandler.java:128) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.component.manager.AbstractComponentManager.startComponentLifecycle(AbstractComponentManager.java:142) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.component.manager.AbstractComponentManager.createComponentInstance(AbstractComponentManager.java:132) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.component.manager.ClassicSingletonComponentManager.getComponent(ClassicSingletonComponentManager.java:90) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.DefaultComponentLookupManager.lookup(DefaultComponentLookupManager.java:147) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:333) INFO | jvm 1 | 2008/02/25 15:11:41 | at org.codehaus.plexus.component.composition.AbstractComponentComposer.findRequirement(AbstractComponentComposer.java:232) ...
THIS REALLY SUCKS!!! I'm giving up
Started old version
/local/continuum-1.1-beta-2/bin/solaris-x86-32/run.sh start