You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by jv...@apache.org on 2005/07/22 17:13:19 UTC
svn commit: r220336 - in /maven/continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/configuration/
continuum-core-it/src/test/java/org/apache/maven/continuum/it/
continuum-core/src/main/java/org/apache/maven/continuum/ continuum-cor...
Author: jvanzyl
Date: Fri Jul 22 08:13:00 2005
New Revision: 220336
URL: http://svn.apache.org/viewcvs?rev=220336&view=rev
Log:
o getting the initializer going and working on integrating the new model
Added:
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/build/
Modified:
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java
maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumSchedulerConstants.java
maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml
maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml
maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java Fri Jul 22 08:13:00 2005
@@ -23,7 +23,7 @@
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
- * @version $Id:$
+ * @version $Id$
*/
public interface ConfigurationService
{
@@ -35,6 +35,8 @@
public static final String CONFIGURATION = "configuration";
+ public static final String CONFIGURATION_INITIALIZED = "initialized";
+
public static final String CONFIGURATION_URL = "url";
public static final String CONFIGURATION_BUILD_OUTPUT_DIRECTORY = "build-output-directory";
@@ -51,6 +53,10 @@
//
// ----------------------------------------------------------------------
+ void setInitialized( boolean initialized );
+
+ boolean isInitialized();
+
String getUrl();
void setUrl( String url );
@@ -64,6 +70,10 @@
void addJdk( ContinuumJdk jdk );
void setJdks( Map jdks );
+
+ void setInMemoryMode( boolean inMemoryMode );
+
+ boolean inMemoryMode();
// ----------------------------------------------------------------------
//
Modified: maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java (original)
+++ maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java Fri Jul 22 08:13:00 2005
@@ -103,6 +103,12 @@
protected void customizeContext( Context context )
throws Exception
{
+ // ----------------------------------------------------------------------
+ // This level of directory nesting is setup to mimic the continuum
+ // application running in development mode where it picks up resources
+ // in situ like forms, templates and localization resources.
+ // ----------------------------------------------------------------------
+
File plexusHome = getTestFile( "target/leve1/level2/plexus-home" );
if ( !plexusHome.isDirectory() )
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Fri Jul 22 08:13:00 2005
@@ -17,6 +17,8 @@
*/
import org.apache.maven.continuum.configuration.ConfigurationService;
+import org.apache.maven.continuum.configuration.ConfigurationLoadingException;
+import org.apache.maven.continuum.configuration.ConfigurationStoringException;
import org.apache.maven.continuum.core.ContinuumCore;
import org.apache.maven.continuum.core.action.AbstractContinuumAction;
import org.apache.maven.continuum.core.action.AddProjectToCheckOutQueueAction;
@@ -34,6 +36,8 @@
import org.apache.maven.continuum.project.MavenOneProject;
import org.apache.maven.continuum.project.MavenTwoProject;
import org.apache.maven.continuum.project.ShellProject;
+import org.apache.maven.continuum.project.ContinuumProjectGroup;
+import org.apache.maven.continuum.project.ContinuumBuildSettings;
import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
import org.apache.maven.continuum.project.builder.maven.MavenOneContinuumProjectBuilder;
import org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilder;
@@ -43,11 +47,16 @@
import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.apache.maven.continuum.utils.ProjectSorter;
+import org.apache.maven.continuum.initialization.ContinuumInitializer;
+import org.apache.maven.continuum.initialization.ContinuumInitializationException;
import org.codehaus.plexus.action.ActionManager;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException;
import org.codehaus.plexus.util.dag.CycleDetectedException;
import java.util.Collection;
@@ -64,23 +73,38 @@
*/
public class DefaultContinuum
extends AbstractLogEnabled
- implements Continuum, Initializable
+ implements Continuum, Startable
{
- /** @plexus.requirement */
+ /**
+ * @plexus.requirement
+ */
private ContinuumCore core;
- /** @plexus.requirement */
+ /**
+ * @plexus.requirement
+ */
private ActionManager actionManager;
- /** @plexus.requirement */
+ /**
+ * @plexus.requirement
+ */
private ContinuumScheduler scheduler;
- /** @plexus.requirement */
+ /**
+ * @plexus.requirement
+ */
private ConfigurationService configurationService;
- /** @plexus.requirement */
+ /**
+ * @plexus.requirement
+ */
private ContinuumStore store;
+ /**
+ * @plexus.requirement
+ */
+ private ContinuumInitializer initializer;
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
@@ -554,17 +578,40 @@
// Lifecylce Management
// ----------------------------------------------------------------------
- public void initialize()
- throws InitializationException
+ public void start()
+ throws StartingException
{
- // ----------------------------------------------------------------------
- // Make sure that the default schedule exists so that projects being
- // added to Continuum will participate in a scheduled build by default
- // ----------------------------------------------------------------------
+ try
+ {
+ configurationService.load();
+
+ if ( !configurationService.isInitialized() )
+ {
+ initializer.initialize();
- if ( !defaultScheduleExists() )
+ configurationService.setInitialized( true );
+ }
+ }
+ catch ( ConfigurationLoadingException e )
+ {
+ throw new StartingException( "Error loading the Continuum configuration.", e );
+ }
+ catch ( ContinuumInitializationException e )
{
- createDefaultSchedule();
+ throw new StartingException( "Cannot initializing Continuum for the first time.", e );
+ }
+ }
+
+ public void stop()
+ throws StoppingException
+ {
+ try
+ {
+ configurationService.store();
+ }
+ catch ( ConfigurationStoringException e )
+ {
+ throw new StoppingException( "Error storing the Continuum configuration.", e );
}
}
@@ -669,6 +716,16 @@
{
throw logAndCreateException( "Error while removing project from schedule.", e );
}
+ }
+
+ public ContinuumProjectGroup getDefaultProjectGroup()
+ {
+ return initializer.getDefaultProjectGroup();
+ }
+
+ public ContinuumBuildSettings getDefaultBuildSettings()
+ {
+ return initializer.getDefaultBuildSettings();
}
// ----------------------------------------------------------------------
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java Fri Jul 22 08:13:00 2005
@@ -46,6 +46,10 @@
// Continuum specifics we'll refactor out later
// ----------------------------------------------------------------------
+ private boolean inMemoryMode;
+
+ private boolean initialized;
+
private String url;
private File buildOutputDirectory;
@@ -58,6 +62,16 @@
//
// ----------------------------------------------------------------------
+ public void setInitialized( boolean initialized )
+ {
+ this.initialized = initialized;
+ }
+
+ public boolean isInitialized()
+ {
+ return initialized;
+ }
+
public String getUrl()
{
return url;
@@ -98,6 +112,16 @@
this.jdks = jdks;
}
+ public void setInMemoryMode( boolean inMemoryMode )
+ {
+ this.inMemoryMode = inMemoryMode;
+ }
+
+ public boolean inMemoryMode()
+ {
+ return inMemoryMode;
+ }
+
// ----------------------------------------------------------------------
// Process configuration to glean application specific values
// ----------------------------------------------------------------------
@@ -105,6 +129,22 @@
protected void processInboundConfiguration()
throws ConfigurationLoadingException
{
+ Xpp3Dom initializedDom = configuration.getChild( CONFIGURATION_INITIALIZED );
+
+ if ( initializedDom != null )
+ {
+ String booleanString = initializedDom.getValue();
+
+ if ( booleanString.equals( "true" ) || booleanString.equals( "1" ) )
+ {
+ initialized = true;
+ }
+ else
+ {
+ initialized = false;
+ }
+ }
+
Xpp3Dom urlDom = configuration.getChild( CONFIGURATION_URL );
if ( urlDom != null )
@@ -173,6 +213,8 @@
{
configuration = new Xpp3Dom( CONFIGURATION );
+ configuration.addChild( createDom( CONFIGURATION_INITIALIZED, Boolean.toString( initialized ) ) );
+
if ( url != null )
{
configuration.addChild( createDom( CONFIGURATION_URL, url ) );
@@ -234,6 +276,11 @@
public void load()
throws ConfigurationLoadingException
{
+ if ( inMemoryMode )
+ {
+ return;
+ }
+
try
{
configuration = Xpp3DomBuilder.build( new FileReader( source ) );
@@ -257,6 +304,11 @@
public void store()
throws ConfigurationStoringException
{
+ if ( inMemoryMode )
+ {
+ return;
+ }
+
processOutboundConfiguration();
try
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java Fri Jul 22 08:13:00 2005
@@ -5,6 +5,7 @@
import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.apache.maven.continuum.build.settings.BuildSettingsConstants;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
/*
* Copyright 2004-2005 The Apache Software Foundation.
@@ -27,6 +28,7 @@
* @version $Id:$
*/
public class DefaultContinuumInitializer
+ extends AbstractLogEnabled
implements ContinuumInitializer
{
// ----------------------------------------------------------------------
@@ -70,6 +72,8 @@
public void initialize()
throws ContinuumInitializationException
{
+ getLogger().info( "Continuum initializer running ..." );
+
defaultBuildSettings = createDefaultBuildSettings();
try
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java Fri Jul 22 08:13:00 2005
@@ -5,6 +5,8 @@
import org.quartz.JobDetail;
import org.apache.maven.continuum.project.ContinuumProject;
import org.apache.maven.continuum.project.ContinuumSchedule;
+import org.apache.maven.continuum.project.ContinuumBuildSettings;
+import org.apache.maven.continuum.project.ContinuumProjectGroup;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.Continuum;
import org.codehaus.plexus.logging.Logger;
@@ -36,37 +38,32 @@
Continuum continuum = (Continuum) jobDetail.getJobDataMap().get( ContinuumSchedulerConstants.CONTINUUM );
- //ContinuumSchedule schedule = (ContinuumSchedule) jobDetail.getJobDataMap().get( ContinuumSchedulerConstants.SCHEDULE );
+ ContinuumBuildSettings buildSettings = (ContinuumBuildSettings) jobDetail.getJobDataMap().get( ContinuumSchedulerConstants.BUILD_SETTINGS );
// ----------------------------------------------------------------------
- // Lookup all projects that belong to this schedule
+ // Lookup all the project groups that belong to these build settings
// ----------------------------------------------------------------------
- //Set projects = schedule.getProjects();
+ Set projectGroups = buildSettings.getProjectGroups();
- Collection projects = null;
- try
+ for ( Iterator iterator = projectGroups.iterator(); iterator.hasNext(); )
{
- projects = continuum.getProjects();
- }
- catch ( ContinuumException e )
- {
- logger.error( "Error retrieving projects.", e );
- }
+ ContinuumProjectGroup projectGroup = (ContinuumProjectGroup) iterator.next();
- for ( Iterator i = projects.iterator(); i.hasNext(); )
- {
- ContinuumProject project = (ContinuumProject) i.next();
+ Set projects = projectGroup.getProjects();
- try
- {
- continuum.buildProject( project.getId(), false );
- }
- catch ( ContinuumException ex )
+ for ( Iterator j = projects.iterator(); j.hasNext(); )
{
- logger.error( "Could not enqueue project: " + project.getId() + " ('" + project.getName() + "').", ex );
+ ContinuumProject project = (ContinuumProject) j.next();
- continue;
+ try
+ {
+ continuum.buildProject( project.getId(), false );
+ }
+ catch ( ContinuumException ex )
+ {
+ logger.error( "Could not enqueue project: " + project.getId() + " ('" + project.getName() + "').", ex );
+ }
}
}
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumSchedulerConstants.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumSchedulerConstants.java?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumSchedulerConstants.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumSchedulerConstants.java Fri Jul 22 08:13:00 2005
@@ -2,7 +2,7 @@
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
- * @version $Id:$
+ * @version $Id$
*/
public class ContinuumSchedulerConstants
{
@@ -37,4 +37,6 @@
public static final String CONTINUUM = "continuum";
public static final String SCHEDULE = "schedule";
+
+ public static final String BUILD_SETTINGS = "build-settings";
}
Modified: maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml Fri Jul 22 08:13:00 2005
@@ -71,6 +71,9 @@
<requirement>
<role>org.apache.maven.continuum.store.ContinuumStore</role>
</requirement>
+ <requirement>
+ <role>org.apache.maven.continuum.initialization.ContinuumInitializer</role>
+ </requirement>
</requirements>
</component>
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java Fri Jul 22 08:13:00 2005
@@ -31,7 +31,7 @@
* @version $Id$
*/
public class DefaultContinuumTest
- extends PlexusTestCase
+ extends AbstractContinuumTest
{
public void testContinuumConfiguration()
throws Exception
Modified: maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml (original)
+++ maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml Fri Jul 22 08:13:00 2005
@@ -22,5 +22,14 @@
<workflowDirectory>${basedir}/../continuum-plexus-application/src/conf/workflows</workflowDirectory>
</configuration>
</component>
+
+ <component>
+ <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
+ <implementation>org.apache.maven.continuum.configuration.DefaultConfigurationService</implementation>
+ <configuration>
+ <inMemoryMode>true</inMemoryMode>
+ </configuration>
+ </component>
+
</components>
</plexus>
Modified: maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java?rev=220336&r1=220335&r2=220336&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java (original)
+++ maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java Fri Jul 22 08:13:00 2005
@@ -63,6 +63,8 @@
public static void setUpConfigurationService( ConfigurationService configurationService )
throws Exception
{
+ configurationService.setInMemoryMode( true );
+
configurationService.setBuildOutputDirectory( getTestFile( "target/build-output" ) );
}