You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2005/09/29 21:04:21 UTC
svn commit: r292511 - in /maven/continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/configuration/
continuum-api/src/main/java/org/apache/maven/continuum/store/
continuum-api/src/main/resources/META-INF/plexus/ continuum-api/src/tes...
Author: evenisse
Date: Thu Sep 29 12:03:46 2005
New Revision: 292511
URL: http://svn.apache.org/viewcvs?rev=292511&view=rev
Log:
o Break configurationService dependency in ContinuumStore
o Start to refactor configurationService to store conf in database instead of configuration.xml
Added:
maven/continuum/trunk/continuum-core/src/test/resources/configuration.xml
- copied unchanged from r290941, maven/continuum/trunk/continuum-api/src/test/resources/configuration.xml
Removed:
maven/continuum/trunk/continuum-api/src/test/resources/configuration.xml
Modified:
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationLoadingException.java
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationStoringException.java
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
maven/continuum/trunk/continuum-api/src/main/resources/META-INF/plexus/components.xml
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/core/action/ExecuteBuilderContinuumAction.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/notification/DefaultContinuumNotificationDispatcher.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/configuration/ConfigurationServiceTest.java
maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/DefaultContinuumTest.xml
maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/configuration/ConfigurationServiceTest.xml
maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo
maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java
maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
maven/continuum/trunk/continuum-store/src/main/resources/META-INF/plexus/components.xml
maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
maven/continuum/trunk/continuum-web/src/main/java/org/apache/maven/continuum/web/pipeline/valve/LoginValve.java
maven/continuum/trunk/continuum-xmlrpc/src/test/resources/org/apache/maven/continuum/xmlrpc/ContinuumXmlRpcTest.xml
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationLoadingException.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationLoadingException.java?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationLoadingException.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationLoadingException.java Thu Sep 29 12:03:46 2005
@@ -1,5 +1,21 @@
package org.apache.maven.continuum.configuration;
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id$
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=292511&r1=292510&r2=292511&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 Thu Sep 29 12:03:46 2005
@@ -33,8 +33,6 @@
String CONFIGURATION = "configuration";
- String CONFIGURATION_INITIALIZED = "initialized";
-
String CONFIGURATION_URL = "url";
String CONFIGURATION_BUILD_OUTPUT_DIRECTORY = "build-output-directory";
@@ -47,16 +45,14 @@
String CONFIGURATION_COMPANY_URL = "company-url";
- String CONFIGURATION_ALLOW_GUEST = "allow-guest";
-
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
- void setInitialized( boolean initialized );
-
boolean isInitialized();
+ void setInitialized( boolean initialized );
+
String getUrl();
void setUrl( String url );
@@ -87,9 +83,15 @@
void setCompanyUrl( String companyUrl );
- boolean isAllowedGuest();
+ boolean isGuestAccountEnabled();
+
+ void setGuestAccountEnabled( boolean enabled );
+
+ String getBuildOutput( int buildId, int projectId )
+ throws ConfigurationException;
- void setAllowGuest( boolean allow );
+ File getBuildOutputFile( int buildId, int projectId )
+ throws ConfigurationException;
// ----------------------------------------------------------------------
//
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationStoringException.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationStoringException.java?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationStoringException.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationStoringException.java Thu Sep 29 12:03:46 2005
@@ -1,5 +1,21 @@
package org.apache.maven.continuum.configuration;
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id$
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java Thu Sep 29 12:03:46 2005
@@ -24,6 +24,7 @@
import org.apache.maven.continuum.model.project.ProjectNotifier;
import org.apache.maven.continuum.model.project.Schedule;
import org.apache.maven.continuum.model.system.Installation;
+import org.apache.maven.continuum.model.system.SystemConfiguration;
import java.io.File;
import java.util.Collection;
@@ -41,12 +42,6 @@
Project getProjectByName( String name )
throws ContinuumStoreException;
- String getBuildOutput( int buildId, int projectId )
- throws ContinuumStoreException;
-
- File getBuildOutputFile( int buildId, int projectId )
- throws ContinuumStoreException;
-
void removeNotifier( ProjectNotifier notifier )
throws ContinuumStoreException;
@@ -150,5 +145,13 @@
throws ContinuumObjectNotFoundException, ContinuumStoreException;
ProjectGroup getDefaultProjectGroup()
+ throws ContinuumStoreException;
+
+ SystemConfiguration addSystemConfiguration( SystemConfiguration systemConf );
+
+ void updateSystemConfiguration( SystemConfiguration systemConf )
+ throws ContinuumStoreException;
+
+ SystemConfiguration getSystemConfiguration()
throws ContinuumStoreException;
}
Modified: maven/continuum/trunk/continuum-api/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/resources/META-INF/plexus/components.xml?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/continuum/trunk/continuum-api/src/main/resources/META-INF/plexus/components.xml Thu Sep 29 12:03:46 2005
@@ -1,12 +1,4 @@
<component-set>
<components>
- <component>
- <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
- <implementation>org.apache.maven.continuum.configuration.DefaultConfigurationService</implementation>
- <configuration>
- <source>${plexus.home}/conf/configuration.xml</source>
- <application-home>${plexus.home}</application-home>
- </configuration>
- </component>
</components>
</component-set>
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=292511&r1=292510&r2=292511&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 Thu Sep 29 12:03:46 2005
@@ -64,6 +64,8 @@
public abstract class AbstractIntegrationTest
extends PlexusTestCase
{
+ private ConfigurationService configurationService;
+
private static final DateFormat progressDateFormat = new SimpleDateFormat( "yyyy.MM.dd HH:mm:ss" );
private Date startTime;
@@ -177,6 +179,8 @@
}
AbstractContinuumTest.setUpConfigurationService( (ConfigurationService) lookup( ConfigurationService.ROLE ) );
+
+ configurationService = (ConfigurationService) lookup( ConfigurationService.ROLE );
}
public final void tearDown()
@@ -602,13 +606,13 @@
line();
print( "Output" );
line();
- print( getStore().getBuildOutput( buildId, projectId ) );
+ print( configurationService.getBuildOutput( buildId, projectId ) );
line();
fail( "The build was not successful" );
}
- String output = getStore().getBuildOutput( buildId, projectId );
+ String output = configurationService.getBuildOutput( buildId, projectId );
assertNotNull( "Output was null.", output );
@@ -632,7 +636,7 @@
{
BuildResult build = assertSuccessfulBuild( buildId, projectId );
- String output = getStore().getBuildOutput( buildId, projectId );
+ String output = configurationService.getBuildOutput( buildId, projectId );
if ( output.indexOf( "BUILD SUCCESSFUL" ) < 0 )
{
@@ -648,7 +652,7 @@
{
BuildResult build = assertSuccessfulBuild( buildId, projectId );
- String output = getStore().getBuildOutput( buildId, projectId );
+ String output = configurationService.getBuildOutput( buildId, projectId );
assertEquals( "Standard output didn't contain the expected output.", expectedStandardOutput, output );
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=292511&r1=292510&r2=292511&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 Thu Sep 29 12:03:46 2005
@@ -21,6 +21,7 @@
import org.apache.maven.continuum.buildqueue.BuildProjectTask;
import org.apache.maven.continuum.configuration.ConfigurationLoadingException;
import org.apache.maven.continuum.configuration.ConfigurationService;
+import org.apache.maven.continuum.configuration.ConfigurationException;
import org.apache.maven.continuum.configuration.ConfigurationStoringException;
import org.apache.maven.continuum.core.action.AbstractContinuumAction;
import org.apache.maven.continuum.core.action.AddProjectToCheckOutQueueAction;
@@ -334,9 +335,9 @@
{
try
{
- return store.getBuildOutput( buildId, projectId );
+ return configurationService.getBuildOutput( buildId, projectId );
}
- catch ( ContinuumStoreException e )
+ catch ( ConfigurationException e )
{
throw logAndCreateException( "Exception while getting build result for project.", e );
}
@@ -1102,14 +1103,9 @@
try
{
- configurationService.load();
-
- if ( !configurationService.isInitialized() )
- {
- initializer.initialize();
+ initializer.initialize();
- configurationService.setInitialized( true );
- }
+ configurationService.load();
// ----------------------------------------------------------------------
// Activate all the Build settings in the system
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=292511&r1=292510&r2=292511&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 Thu Sep 29 12:03:46 2005
@@ -16,6 +16,10 @@
* limitations under the License.
*/
+import org.apache.maven.continuum.model.system.SystemConfiguration;
+import org.apache.maven.continuum.store.ContinuumStore;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.xml.Xpp3Dom;
@@ -37,6 +41,7 @@
* @version $Id$
*/
public class DefaultConfigurationService
+ extends AbstractLogEnabled
implements ConfigurationService
{
/**
@@ -49,12 +54,19 @@
*/
private File applicationHome;
+ /**
+ * @plexus.requirement
+ */
+ private ContinuumStore store;
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
private Xpp3Dom configuration;
+ private SystemConfiguration systemConf;
+
// ----------------------------------------------------------------------
// Continuum specifics we'll refactor out later
// ----------------------------------------------------------------------
@@ -77,7 +89,7 @@
private String companyUrl;
- private boolean allowGuest;
+ private boolean guestAccountEnabled;
private static final String LS = System.getProperty( "line.separator" );
@@ -87,12 +99,12 @@
public void setInitialized( boolean initialized )
{
- this.initialized = initialized;
+ systemConf.setInitialized( initialized );
}
public boolean isInitialized()
{
- return initialized;
+ return systemConf.isInitialized();
}
public String getUrl()
@@ -170,32 +182,58 @@
this.companyUrl = companyUrl;
}
- public boolean isAllowedGuest()
+ public boolean isGuestAccountEnabled()
{
- return allowGuest;
+ return systemConf.isGuestAccountEnabled();
}
- public void setAllowGuest( boolean allow )
+ public void setGuestAccountEnabled( boolean enabled )
{
- allowGuest = allow;
+ systemConf.setGuestAccountEnabled( enabled );
+ }
+
+ public String getBuildOutput( int buildId, int projectId )
+ throws ConfigurationException
+ {
+ File file = getBuildOutputFile( buildId, projectId );
+
+ try
+ {
+ return FileUtils.fileRead( file.getAbsolutePath() );
+ }
+ catch ( IOException e )
+ {
+ getLogger().warn( "Error reading build output for build '" + buildId + "'.", e );
+
+ return null;
+ }
}
// ----------------------------------------------------------------------
- // Process configuration to glean application specific values
+ //
// ----------------------------------------------------------------------
- protected void processInboundConfiguration()
- throws ConfigurationLoadingException
+ public File getBuildOutputFile( int buildId, int projectId )
+ throws ConfigurationException
{
- Xpp3Dom initializedDom = configuration.getChild( CONFIGURATION_INITIALIZED );
+ File dir = new File( getBuildOutputDirectory(), Integer.toString( projectId ) );
- if ( initializedDom != null )
+ if ( !dir.exists() && !dir.mkdirs() )
{
- String booleanString = initializedDom.getValue();
-
- initialized = "true".equals( booleanString ) || "1".equals( booleanString );
+ throw new ConfigurationException(
+ "Could not make the build output directory: " + "'" + dir.getAbsolutePath() + "'." );
}
+ return new File( dir, buildId + ".log.txt" );
+ }
+
+ // ----------------------------------------------------------------------
+ // Process configuration to glean application specific values
+ // ----------------------------------------------------------------------
+
+ protected void processInboundConfiguration()
+ throws ConfigurationLoadingException
+ {
Xpp3Dom urlDom = configuration.getChild( CONFIGURATION_URL );
if ( urlDom != null )
@@ -232,13 +270,6 @@
{
companyUrl = companyUrlDom.getValue();
}
-
- Xpp3Dom allowGuestDom = configuration.getChild( CONFIGURATION_ALLOW_GUEST );
-
- if ( allowGuestDom != null )
- {
- allowGuest = Boolean.valueOf( allowGuestDom.getValue() ).booleanValue();
- }
}
private File getFile( Xpp3Dom configuration, String elementName )
@@ -272,8 +303,6 @@
{
configuration = new Xpp3Dom( CONFIGURATION );
- configuration.addChild( createDom( CONFIGURATION_INITIALIZED, Boolean.toString( initialized ) ) );
-
if ( url != null )
{
configuration.addChild( createDom( CONFIGURATION_URL, url ) );
@@ -303,8 +332,6 @@
{
configuration.addChild( createDom( CONFIGURATION_COMPANY_URL, companyUrl ) );
}
-
- configuration.addChild( createDom( CONFIGURATION_ALLOW_GUEST, String.valueOf( allowGuest ) ) );
}
protected Xpp3Dom createDom( String elementName, String value )
@@ -335,6 +362,22 @@
public void load()
throws ConfigurationLoadingException
{
+ try
+ {
+ systemConf = store.getSystemConfiguration();
+
+ if ( systemConf == null )
+ {
+ systemConf = new SystemConfiguration();
+
+ systemConf = store.addSystemConfiguration( systemConf );
+ }
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new ConfigurationLoadingException( "Error reading configuration from database.", e );
+ }
+
if ( inMemoryMode )
{
return;
@@ -364,6 +407,15 @@
public void store()
throws ConfigurationStoringException
{
+ try
+ {
+ store.updateSystemConfiguration( systemConf );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new ConfigurationStoringException( "Error writting configuration to database.", e );
+ }
+
if ( inMemoryMode )
{
return;
@@ -389,7 +441,7 @@
}
catch ( IOException e )
{
- throw new ConfigurationStoringException( "Error reading configuration '" + source + "'.", e );
+ throw new ConfigurationStoringException( "Error writting configuration '" + source + "'.", e );
}
}
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java Thu Sep 29 12:03:46 2005
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.apache.maven.continuum.configuration.ConfigurationService;
import org.apache.maven.continuum.execution.ContinuumBuildExecutionResult;
import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
import org.apache.maven.continuum.execution.manager.BuildExecutorManager;
@@ -40,10 +41,24 @@
public class ExecuteBuilderContinuumAction
extends AbstractContinuumAction
{
+ /**
+ * @plexus.requirement
+ */
+ private ConfigurationService configurationService;
+
+ /**
+ * @plexus.requirement
+ */
private BuildExecutorManager buildExecutorManager;
+ /**
+ * @plexus.requirement
+ */
private ContinuumStore store;
+ /**
+ * @plexus.requirement
+ */
private ContinuumNotificationDispatcher notifier;
public void execute( Map context )
@@ -102,7 +117,7 @@
{
notifier.runningGoals( project, build );
- File buildOutputFile = store.getBuildOutputFile( build.getId(), project.getId() );
+ File buildOutputFile = configurationService.getBuildOutputFile( build.getId(), project.getId() );
ContinuumBuildExecutionResult result = buildExecutor.build( project, buildDefinition, buildOutputFile );
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=292511&r1=292510&r2=292511&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 Thu Sep 29 12:03:46 2005
@@ -17,6 +17,7 @@
*/
import org.apache.maven.continuum.model.project.Schedule;
+import org.apache.maven.continuum.model.system.SystemConfiguration;
import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -47,13 +48,10 @@
//TODO: move this to an other place
public static final String DEFAULT_SCHEDULE_NAME = "DEFAULT_SCHEDULE";
- public static final String DEFAULT_SCHEDULE_DESCRIPTION = "Run hourly";
-
- // Cron expression for execution every hour.
- public static final String DEFAULT_SCHEDULE_CRON_EXPRESSION = "0 0 * * * ?";
-
private Schedule defaultSchedule;
+ private SystemConfiguration systemConf;
+
// ----------------------------------------------------------------------
// Requirements
// ----------------------------------------------------------------------
@@ -74,11 +72,28 @@
try
{
+ // System Configuration
+ systemConf = store.getSystemConfiguration();
+
+ if ( systemConf == null )
+ {
+ systemConf = new SystemConfiguration();
+
+ systemConf = store.addSystemConfiguration( systemConf );
+ }
+
+ // Schedule
Schedule s = store.getScheduleByName( DEFAULT_SCHEDULE_NAME );
if ( s != null )
{
defaultSchedule = s;
+
+ defaultSchedule.setDescription( systemConf.getDefaultScheduleDescription() );
+
+ defaultSchedule.setCronExpression( systemConf.getDefaultScheduleCronExpression() );
+
+ defaultSchedule = store.storeSchedule( defaultSchedule );
}
else
{
@@ -104,9 +119,9 @@
schedule.setName( DEFAULT_SCHEDULE_NAME );
- schedule.setDescription( DEFAULT_SCHEDULE_DESCRIPTION );
+ schedule.setDescription( systemConf.getDefaultScheduleDescription() );
- schedule.setCronExpression( DEFAULT_SCHEDULE_CRON_EXPRESSION );
+ schedule.setCronExpression( systemConf.getDefaultScheduleCronExpression() );
schedule.setActive( true );
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java Thu Sep 29 12:03:46 2005
@@ -16,6 +16,8 @@
* limitations under the License.
*/
+import org.apache.maven.continuum.configuration.ConfigurationService;
+import org.apache.maven.continuum.configuration.ConfigurationException;
import org.apache.maven.continuum.model.project.BuildResult;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.project.ProjectNotifier;
@@ -43,6 +45,11 @@
/**
* @plexus.requirement
*/
+ private ConfigurationService configurationService;
+
+ /**
+ * @plexus.requirement
+ */
private NotifierManager notifierManager;
/**
@@ -119,13 +126,19 @@
if ( build.getEndTime() != 0 )
{
- context.put( CONTEXT_BUILD_OUTPUT, store.getBuildOutput( build.getId(), project.getId() ) );
+ context.put( CONTEXT_BUILD_OUTPUT, configurationService.getBuildOutput( build.getId(), project.getId() ) );
}
context.put( CONTEXT_UPDATE_SCM_RESULT, build.getScmResult() );
}
}
catch ( ContinuumStoreException e )
+ {
+ getLogger().error( "Error while population the notification context.", e );
+
+ return;
+ }
+ catch ( ConfigurationException e )
{
getLogger().error( "Error while population the notification context.", e );
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=292511&r1=292510&r2=292511&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 Thu Sep 29 12:03:46 2005
@@ -37,6 +37,11 @@
<component>
<role>org.apache.maven.continuum.configuration.ConfigurationService</role>
<implementation>org.apache.maven.continuum.configuration.DefaultConfigurationService</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.continuum.store.ContinuumStore</role>
+ </requirement>
+ </requirements>
<configuration>
<source>${plexus.home}/conf/configuration.xml</source>
<application-home>${plexus.home}</application-home>
@@ -113,6 +118,9 @@
<implementation>org.apache.maven.continuum.notification.DefaultContinuumNotificationDispatcher</implementation>
<requirements>
<requirement>
+ <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
+ </requirement>
+ <requirement>
<role>org.codehaus.plexus.notification.notifier.manager.NotifierManager</role>
</requirement>
<requirement>
@@ -599,6 +607,9 @@
<role-hint>execute-builder</role-hint>
<implementation>org.apache.maven.continuum.core.action.ExecuteBuilderContinuumAction</implementation>
<requirements>
+ <requirement>
+ <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
+ </requirement>
<requirement>
<role>org.apache.maven.continuum.execution.manager.BuildExecutorManager</role>
</requirement>
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/configuration/ConfigurationServiceTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/configuration/ConfigurationServiceTest.java?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/configuration/ConfigurationServiceTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/configuration/ConfigurationServiceTest.java Thu Sep 29 12:03:46 2005
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-import org.codehaus.plexus.PlexusTestCase;
+import org.apache.maven.continuum.AbstractContinuumTest;
import org.codehaus.plexus.util.FileUtils;
import java.io.File;
@@ -26,7 +26,7 @@
* @version $Id$
*/
public class ConfigurationServiceTest
- extends PlexusTestCase
+ extends AbstractContinuumTest
{
protected void setUp()
throws Exception
@@ -44,6 +44,8 @@
throws Exception
{
ConfigurationService service = (ConfigurationService) lookup( ConfigurationService.ROLE );
+
+ service.setInMemoryMode( false );
service.load();
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=292511&r1=292510&r2=292511&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 Thu Sep 29 12:03:46 2005
@@ -26,6 +26,11 @@
<component>
<role>org.apache.maven.continuum.configuration.ConfigurationService</role>
<implementation>org.apache.maven.continuum.configuration.DefaultConfigurationService</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.continuum.store.ContinuumStore</role>
+ </requirement>
+ </requirements>
<configuration>
<inMemoryMode>true</inMemoryMode>
</configuration>
Modified: maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/configuration/ConfigurationServiceTest.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/configuration/ConfigurationServiceTest.xml?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/configuration/ConfigurationServiceTest.xml (original)
+++ maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/configuration/ConfigurationServiceTest.xml Thu Sep 29 12:03:46 2005
@@ -3,6 +3,11 @@
<component>
<role>org.apache.maven.continuum.configuration.ConfigurationService</role>
<implementation>org.apache.maven.continuum.configuration.DefaultConfigurationService</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.continuum.store.ContinuumStore</role>
+ </requirement>
+ </requirements>
<configuration>
<application-home>${basedir}/target/continuum</application-home>
<source>${basedir}/target/configuration.xml</source>
Modified: maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo (original)
+++ maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo Thu Sep 29 12:03:46 2005
@@ -682,6 +682,24 @@
<type>boolean</type>
<defaultValue>true</defaultValue>
</field>
+ <field>
+ <name>defaultScheduleDescription</name>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <defaultValue>Run hourly</defaultValue>
+ </field>
+ <field>
+ <name>defaultScheduleCronExpression</name>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <defaultValue>0 0 * * * ?</defaultValue>
+ </field>
+ <field>
+ <name>initialized</name>
+ <version>1.0.0+</version>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
+ </field>
</fields>
</class>
Modified: maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java Thu Sep 29 12:03:46 2005
@@ -32,43 +32,4 @@
extends AbstractLogEnabled
implements ContinuumStore
{
- /**
- * @plexus.requirement
- */
- private ConfigurationService configurationService;
-
- public String getBuildOutput( int buildId, int projectId )
- throws ContinuumStoreException
- {
- File file = getBuildOutputFile( buildId, projectId );
-
- try
- {
- return FileUtils.fileRead( file.getAbsolutePath() );
- }
- catch ( IOException e )
- {
- getLogger().warn( "Error reading build output for build '" + buildId + "'.", e );
-
- return null;
- }
- }
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- public File getBuildOutputFile( int buildId, int projectId )
- throws ContinuumStoreException
- {
- File dir = new File( configurationService.getBuildOutputDirectory(), Integer.toString( projectId ) );
-
- if ( !dir.exists() && !dir.mkdirs() )
- {
- throw new ContinuumStoreException(
- "Could not make the build output directory: " + "'" + dir.getAbsolutePath() + "'." );
- }
-
- return new File( dir, buildId + ".log.txt" );
- }
}
Modified: maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java Thu Sep 29 12:03:46 2005
@@ -24,6 +24,7 @@
import org.apache.maven.continuum.model.project.ProjectNotifier;
import org.apache.maven.continuum.model.project.Schedule;
import org.apache.maven.continuum.model.system.Installation;
+import org.apache.maven.continuum.model.system.SystemConfiguration;
import org.apache.maven.continuum.project.ContinuumProjectState;
import org.codehaus.plexus.jdo.JdoFactory;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
@@ -732,6 +733,16 @@
}
}
+ private List getAllObjectsDetached( Class clazz )
+ {
+ return getAllObjectsDetached( clazz, null, null );
+ }
+
+ private List getAllObjectsDetached( Class clazz, String fetchGroup )
+ {
+ return getAllObjectsDetached( clazz, null, fetchGroup );
+ }
+
private List getAllObjectsDetached( Class clazz, String ordering, String fetchGroup )
{
PersistenceManager pm = pmf.getPersistenceManager();
@@ -746,7 +757,10 @@
Query query = pm.newQuery( extent );
- query.setOrdering( ordering );
+ if ( ordering != null )
+ {
+ query.setOrdering( ordering );
+ }
if ( fetchGroup != null )
{
@@ -825,5 +839,35 @@
group = addProjectGroup( group );
}
return group;
+ }
+
+ public SystemConfiguration addSystemConfiguration( SystemConfiguration systemConf )
+ {
+ return (SystemConfiguration) addObject( systemConf );
+ }
+
+ public void updateSystemConfiguration( SystemConfiguration systemConf )
+ throws ContinuumStoreException
+ {
+ updateObject( systemConf );
+ }
+
+ public SystemConfiguration getSystemConfiguration()
+ throws ContinuumStoreException
+ {
+ List systemConfs = getAllObjectsDetached( SystemConfiguration.class );
+
+ if ( systemConfs == null || systemConfs.isEmpty() )
+ {
+ return null;
+ }
+ else if ( systemConfs.size() > 1 )
+ {
+ throw new ContinuumStoreException( "Database is corrupted. There are more than one systemConfiguration object." );
+ }
+ else
+ {
+ return (SystemConfiguration) systemConfs.get( 0 );
+ }
}
}
Modified: maven/continuum/trunk/continuum-store/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-store/src/main/resources/META-INF/plexus/components.xml?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-store/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/continuum/trunk/continuum-store/src/main/resources/META-INF/plexus/components.xml Thu Sep 29 12:03:46 2005
@@ -1,18 +1,5 @@
<component-set>
<components>
- <!--
- <component>
- <role>org.apache.maven.continuum.store.ContinuumStore</role>
- <role-hint>modello</role-hint>
- <implementation>org.apache.maven.continuum.store.ModelloJPoxContinuumStore</implementation>
- <requirements>
- <requirement>
- <role>org.codehaus.plexus.jdo.JdoFactory</role>
- </requirement>
- </requirements>
- </component>
- -->
-
<component>
<role>org.apache.maven.continuum.store.ContinuumStore</role>
<role-hint>jdo</role-hint>
@@ -20,9 +7,6 @@
<requirements>
<requirement>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
- </requirement>
- <requirement>
- <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
</requirement>
</requirements>
</component>
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=292511&r1=292510&r2=292511&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 Thu Sep 29 12:03:46 2005
@@ -58,9 +58,9 @@
{
super.setUp();
- setUpConfigurationService( (ConfigurationService) lookup( ConfigurationService.ROLE ) );
-
getStore();
+
+ setUpConfigurationService( (ConfigurationService) lookup( ConfigurationService.ROLE ) );
}
public static void setUpConfigurationService( ConfigurationService configurationService )
Modified: maven/continuum/trunk/continuum-web/src/main/java/org/apache/maven/continuum/web/pipeline/valve/LoginValve.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-web/src/main/java/org/apache/maven/continuum/web/pipeline/valve/LoginValve.java?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-web/src/main/java/org/apache/maven/continuum/web/pipeline/valve/LoginValve.java (original)
+++ maven/continuum/trunk/continuum-web/src/main/java/org/apache/maven/continuum/web/pipeline/valve/LoginValve.java Thu Sep 29 12:03:46 2005
@@ -34,6 +34,6 @@
public boolean isAllowedGuest()
{
- return configurationService.isAllowedGuest();
+ return configurationService.isGuestAccountEnabled();
}
}
Modified: maven/continuum/trunk/continuum-xmlrpc/src/test/resources/org/apache/maven/continuum/xmlrpc/ContinuumXmlRpcTest.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-xmlrpc/src/test/resources/org/apache/maven/continuum/xmlrpc/ContinuumXmlRpcTest.xml?rev=292511&r1=292510&r2=292511&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-xmlrpc/src/test/resources/org/apache/maven/continuum/xmlrpc/ContinuumXmlRpcTest.xml (original)
+++ maven/continuum/trunk/continuum-xmlrpc/src/test/resources/org/apache/maven/continuum/xmlrpc/ContinuumXmlRpcTest.xml Thu Sep 29 12:03:46 2005
@@ -3,6 +3,11 @@
<component>
<role>org.apache.maven.continuum.configuration.ConfigurationService</role>
<implementation>org.apache.maven.continuum.configuration.DefaultConfigurationService</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.continuum.store.ContinuumStore</role>
+ </requirement>
+ </requirements>
<configuration>
<inMemoryMode>true</inMemoryMode>
</configuration>