You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by tr...@apache.org on 2005/07/18 04:39:25 UTC
svn commit: r219443 - in /maven/continuum/trunk:
continuum-core-it/src/test/java/org/apache/maven/continuum/it/
continuum-core/src/main/java/org/apache/maven/continuum/core/
continuum-core/src/main/java/org/apache/maven/continuum/core/action/
continuum...
Author: trygvis
Date: Sun Jul 17 19:39:16 2005
New Revision: 219443
URL: http://svn.apache.org/viewcvs?rev=219443&view=rev
Log:
o Switching to the hand made JDO store.
Added:
maven/continuum/trunk/continuum-model/src/main/resources/META-INF/
maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo
Modified:
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/core/DefaultContinuumCore.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.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/AbstractContinuumTest.java
maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java
maven/continuum/trunk/continuum-model/pom.xml
maven/continuum/trunk/continuum-plexus-application/pom.xml
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=219443&r1=219442&r2=219443&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 Sun Jul 17 19:39:16 2005
@@ -35,6 +35,7 @@
import org.apache.maven.continuum.xmlrpc.XmlRpcHelper;
import org.apache.maven.continuum.Continuum;
+import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.scm.ScmResult;
import org.apache.maven.continuum.scm.ScmFile;
import org.apache.maven.continuum.project.ContinuumProject;
@@ -135,6 +136,7 @@
line();
print( "IT root: " + rootDirectory.getAbsolutePath() );
print( "Remoting method: " + remotingMethod );
+ print( "Store implementation: " + lookup( ContinuumStore.ROLE ).getClass() );
line();
deleteAndCreateDirectory( rootDirectory );
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/DefaultContinuumCore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/DefaultContinuumCore.java?rev=219443&r1=219442&r2=219443&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/DefaultContinuumCore.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/DefaultContinuumCore.java Sun Jul 17 19:39:16 2005
@@ -214,6 +214,8 @@
{
try
{
+ project.setCommandLineArguments( StringUtils.clean( project.getCommandLineArguments() ) );
+
store.updateProject( project );
}
catch ( ContinuumStoreException ex )
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java?rev=219443&r1=219442&r2=219443&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java Sun Jul 17 19:39:16 2005
@@ -9,6 +9,8 @@
import java.io.File;
import java.util.Map;
+import org.codehaus.plexus.util.StringUtils;
+
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
@@ -47,6 +49,8 @@
// figure out what it is.
project.setWorkingDirectory( projectWorkingDirectory.getAbsolutePath() );
+
+ project.setCommandLineArguments( StringUtils.clean( project.getCommandLineArguments() ) );
getStore().updateProject( project );
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java?rev=219443&r1=219442&r2=219443&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java Sun Jul 17 19:39:16 2005
@@ -163,19 +163,21 @@
query.declareParameters( "String name" );
- query.setFilter( "this.name = name" );
+ query.setFilter( "this.name == name" );
Collection result = ( (Collection) query.execute( name ) );
- commit( tx );
-
if ( result.size() == 0 )
{
+ commit( tx );
+
return null;
}
Object object = pm.detachCopy( result.iterator().next() );
+ commit( tx );
+
return (ContinuumProject) object;
}
finally
@@ -201,19 +203,21 @@
query.declareParameters( "String scmUrl" );
- query.setFilter( "this.scmUrl = scmUrl" );
+ query.setFilter( "this.scmUrl == scmUrl" );
Collection result = ( (Collection) query.execute( scmUrl ) );
- commit( tx );
-
if ( result.size() == 0 )
{
+ commit( tx );
+
return null;
}
Object object = pm.detachCopy( result.iterator().next() );
+ commit( tx );
+
return (ContinuumProject) object;
}
finally
@@ -254,8 +258,33 @@
public ScmResult getScmResultForProject( String projectId )
throws ContinuumStoreException
{
- // TODO:
- throw new UnsupportedOperationException();
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ Transaction tx = pm.currentTransaction();
+
+ try
+ {
+ tx.begin();
+
+ ContinuumProject project = getContinuumProject( pm, projectId );
+
+ ScmResult scmResult = project.getScmResult();
+
+ if ( scmResult == null )
+ {
+ return null;
+ }
+
+ scmResult = (ScmResult) pm.detachCopy( scmResult );
+
+ commit( tx );
+
+ return scmResult;
+ }
+ finally
+ {
+ rollback( tx );
+ }
}
public String addBuild( String projectId, ContinuumBuild build )
@@ -400,22 +429,45 @@
public List getChangedFilesForBuild( String buildId )
throws ContinuumStoreException
{
- // TODO:
- throw new UnsupportedOperationException();
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ Transaction tx = pm.currentTransaction();
+
+ try
+ {
+ tx.begin();
+
+ ContinuumBuild build = getContinuumBuild( pm, buildId );
+
+ ScmResult scmResult = build.getScmResult();
+
+ if ( scmResult == null )
+ {
+ return null;
+ }
+
+ List files = (List) pm.detachCopyAll( scmResult.getFiles() );
+
+ commit( tx );
+
+ return files;
+ }
+ finally
+ {
+ rollback( tx );
+ }
}
public void removeNotifier( Object notifier )
throws ContinuumStoreException
{
- // TODO:
- throw new UnsupportedOperationException();
+ attachAndDelete( notifier );
}
public void storeNotifier( Object notifier )
throws ContinuumStoreException
{
- // TODO:
- throw new UnsupportedOperationException();
+ updateObject( notifier );
}
// ----------------------------------------------------------------------
@@ -468,6 +520,28 @@
Object id = pm.getObjectId( object );
return pm.getObjectById( id );
+ }
+
+ private void attachAndDelete( Object object )
+ {
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ Transaction tx = pm.currentTransaction();
+
+ try
+ {
+ tx.begin();
+
+ pm.attachCopy( object, true );
+
+ pm.deletePersistent( object );
+
+ commit( tx );
+ }
+ finally
+ {
+ rollback( tx );
+ }
}
private void deletePersistentById( Class clazz, Object identifier )
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.java?rev=219443&r1=219442&r2=219443&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.java Sun Jul 17 19:39:16 2005
@@ -115,8 +115,6 @@
store.deleteContinuumProject( projectId );
store.commit();
-
- getLogger().info( "Removed project with id '" + projectId + "'." );
}
catch ( Exception e )
{
@@ -131,8 +129,6 @@
{
try
{
- project.setCommandLineArguments( StringUtils.clean( project.getCommandLineArguments() ) );
-
store.storeContinuumProject( project );
project = store.getContinuumProject( project.getId(), true );
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=219443&r1=219442&r2=219443&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 Sun Jul 17 19:39:16 2005
@@ -117,6 +117,19 @@
<component>
<role>org.apache.maven.continuum.store.ContinuumStore</role>
+ <implementation>org.apache.maven.continuum.store.JdoContinuumStore</implementation>
+ <requirements>
+ <requirement>
+ <role>org.codehaus.plexus.jdo.JdoFactory</role>
+ </requirement>
+ </requirements>
+ </component>
+
+ <!-- TODO: Remove these two once the plexus bug where plexus would pick
+ the first component with role hint if no component without a role hint exists
+ and was looked up -->
+ <component>
+ <role>ContinuumStore</role>
<role-hint>modello</role-hint>
<implementation>org.apache.maven.continuum.store.ModelloJPoxContinuumStore</implementation>
<requirements>
@@ -127,7 +140,7 @@
</component>
<component>
- <role>org.apache.maven.continuum.store.ContinuumStore</role>
+ <role>ContinuumStore</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.continuum.store.JdoContinuumStore</implementation>
<requirements>
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AbstractContinuumTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AbstractContinuumTest.java?rev=219443&r1=219442&r2=219443&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AbstractContinuumTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AbstractContinuumTest.java Sun Jul 17 19:39:16 2005
@@ -53,7 +53,7 @@
protected ContinuumStore getStore()
throws Exception
{
- return (ContinuumStore) lookup( ContinuumStore.ROLE, "jdo" );
+ return (ContinuumStore) lookup( ContinuumStore.ROLE );
}
// ----------------------------------------------------------------------
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java?rev=219443&r1=219442&r2=219443&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java Sun Jul 17 19:39:16 2005
@@ -63,7 +63,7 @@
{
super.setUp();
- store = (ContinuumStore) lookup( ContinuumStore.ROLE, roleHint );
+ store = (ContinuumStore) lookup( "ContinuumStore", roleHint );
assertEquals( implementationClass, store.getClass() );
@@ -152,7 +152,7 @@
assertNotNull( project );
- assertEquals( projectId, project );
+ assertEquals( projectId, project.getId() );
// ----------------------------------------------------------------------
//
@@ -162,7 +162,7 @@
assertNotNull( project );
- assertEquals( projectId, project );
+ assertEquals( projectId, project.getId() );
// ----------------------------------------------------------------------
//
@@ -172,7 +172,7 @@
assertNotNull( project );
- assertEquals( projectId, project );
+ assertEquals( projectId, project.getId() );
// ----------------------------------------------------------------------
//
Modified: maven/continuum/trunk/continuum-model/pom.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-model/pom.xml?rev=219443&r1=219442&r2=219443&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-model/pom.xml (original)
+++ maven/continuum/trunk/continuum-model/pom.xml Sun Jul 17 19:39:16 2005
@@ -43,7 +43,9 @@
<id>foo</id>
<goals>
<goal>java</goal>
+ <!--
<goal>jpox-jdo-mapping</goal>
+ -->
<goal>jpox-store</goal>
</goals>
</execution>
Added: maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo?rev=219443&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo (added)
+++ maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo Sun Jul 17 19:39:16 2005
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE jdo PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN"
+ "http://java.sun.com/dtd/jdo_2_0.dtd">
+
+<jdo>
+ <package name="org.apache.maven.continuum.project">
+ <class name="ContinuumProject" detachable="true" identity-type="application">
+ <field name="id" persistence-modifier="persistent" null-value="exception" primary-key="true" value-strategy="native"/>
+ <field name="name" persistence-modifier="persistent"/>
+ <field name="scmUrl" persistence-modifier="persistent"/>
+ <field name="version" persistence-modifier="persistent"/>
+ <field name="workingDirectory" persistence-modifier="persistent"/>
+ <field name="state" persistence-modifier="none"/>
+ <field name="executorId" persistence-modifier="persistent"/>
+ <field name="latestBuildId" persistence-modifier="persistent"/>
+ <field name="previousBuildId" persistence-modifier="persistent"/>
+ <field name="buildNumber" persistence-modifier="persistent"/>
+ <field name="builds" persistence-modifier="persistent">
+ <collection element-type="ContinuumBuild" dependent-element="true"/>
+ </field>
+ <field name="scmResult" persistence-modifier="persistent" default-fetch-group="true" dependent="true"/>
+ <field name="checkOutErrorMessage" persistence-modifier="persistent"/>
+ <field name="checkOutErrorException" persistence-modifier="persistent"/>
+ <field name="mailType" persistence-modifier="persistent"/>
+ <field name="commandLineArguments" persistence-modifier="persistent"/>
+ <field name="url" persistence-modifier="persistent"/>
+ <field name="artifactId" persistence-modifier="persistent"/>
+ <field name="groupId" persistence-modifier="persistent"/>
+ <field name="testOutputDirectory" persistence-modifier="persistent"/>
+ <field name="developers" persistence-modifier="persistent" default-fetch-group="true">
+ <collection element-type="ContinuumDeveloper" dependent-element="true"/>
+ </field>
+ <field name="notifiers" persistence-modifier="persistent" default-fetch-group="true">
+ <collection element-type="ContinuumNotifier" dependent-element="true"/>
+ </field>
+ <field name="dependencies" persistence-modifier="persistent" default-fetch-group="true">
+ <collection element-type="ContinuumDependency" dependent-element="true"/>
+ </field>
+ </class>
+ <class name="ContinuumNotifier" detachable="true" identity-type="datastore">
+ <field name="type" persistence-modifier="persistent"/>
+ <field name="configuration" persistence-modifier="persistent" default-fetch-group="true">
+ <map key-type="java.lang.String" value-type="String" dependent-key="true" dependent-value="true"/>
+ <join/>
+ </field>
+ </class>
+ <class name="ContinuumDeveloper" detachable="true" identity-type="application">
+ <field name="id" persistence-modifier="persistent" primary-key="true" value-strategy="native"/>
+ <field name="name" persistence-modifier="persistent"/>
+ <field name="email" persistence-modifier="persistent"/>
+ </class>
+ <class name="ContinuumDependency" detachable="true" identity-type="datastore">
+ <field name="groupId" persistence-modifier="persistent"/>
+ <field name="artifactId" persistence-modifier="persistent"/>
+ <field name="version" persistence-modifier="persistent"/>
+ </class>
+ <class name="MavenTwoProject" persistence-capable-superclass="org.apache.maven.continuum.project.ContinuumProject" detachable="true">
+ <inheritance strategy="new-table"/>
+ <field name="goals" persistence-modifier="persistent"/>
+ </class>
+ <class name="MavenOneProject" persistence-capable-superclass="org.apache.maven.continuum.project.ContinuumProject" detachable="true">
+ <inheritance strategy="new-table"/>
+ <field name="goals" persistence-modifier="persistent"/>
+ </class>
+ <class name="AntProject" persistence-capable-superclass="org.apache.maven.continuum.project.ContinuumProject" detachable="true">
+ <inheritance strategy="new-table"/>
+ <field name="executable" persistence-modifier="persistent"/>
+ <field name="targets" persistence-modifier="persistent"/>
+ </class>
+ <class name="ShellProject" persistence-capable-superclass="org.apache.maven.continuum.project.ContinuumProject" detachable="true">
+ <inheritance strategy="new-table"/>
+ <field name="executable" persistence-modifier="persistent"/>
+ </class>
+ <class name="ContinuumBuild" detachable="true" identity-type="application">
+ <field name="project" persistence-modifier="persistent" null-value="exception" default-fetch-group="false"/>
+ <field name="id" persistence-modifier="persistent" primary-key="true" value-strategy="native"/>
+ <field name="state" persistence-modifier="persistent"/>
+ <field name="forced" persistence-modifier="persistent"/>
+ <field name="startTime" persistence-modifier="persistent"/>
+ <field name="endTime" persistence-modifier="persistent"/>
+ <field name="error" persistence-modifier="persistent">
+ <extension vendor-name="jpox" key="length" value="max 8000"/>
+ </field>
+ <field name="success" persistence-modifier="persistent"/>
+ <field name="standardOutput" persistence-modifier="persistent">
+ <extension vendor-name="jpox" key="length" value="max 8000"/>
+ </field>
+ <field name="standardError" persistence-modifier="persistent">
+ <extension vendor-name="jpox" key="length" value="max 8000"/>
+ </field>
+ <field name="exitCode" persistence-modifier="persistent"/>
+ <field name="scmResult" persistence-modifier="persistent" default-fetch-group="true" dependent="true"/>
+ </class>
+ </package>
+ <package name="org.apache.maven.continuum.scm">
+ <class name="ScmResult" detachable="true" identity-type="datastore">
+ <field name="success" persistence-modifier="persistent"/>
+ <field name="providerMessage" persistence-modifier="persistent"/>
+ <field name="commandOutput" persistence-modifier="persistent"/>
+ <field name="files" persistence-modifier="persistent" default-fetch-group="true">
+ <collection element-type="ScmFile" dependent-element="true"/>
+ </field>
+ <field name="changes" persistence-modifier="persistent" default-fetch-group="true">
+ <collection element-type="ChangeSet" dependent-element="true"/>
+ </field>
+ </class>
+ <class name="ScmFile" detachable="true" identity-type="datastore">
+ <field name="path" persistence-modifier="persistent"/>
+ </class>
+ <class name="ChangeSet" detachable="true" identity-type="datastore">
+ <field name="author" persistence-modifier="persistent"/>
+ <field name="comment" persistence-modifier="persistent"/>
+ <field name="date" persistence-modifier="persistent"/>
+ <field name="file" persistence-modifier="persistent" default-fetch-group="true" dependent="true"/>
+ </class>
+ <class name="ChangeFile" detachable="true" identity-type="datastore">
+ <field name="name" persistence-modifier="persistent"/>
+ <field name="revision" persistence-modifier="persistent"/>
+ </class>
+ </package>
+</jdo>
Modified: maven/continuum/trunk/continuum-plexus-application/pom.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-plexus-application/pom.xml?rev=219443&r1=219442&r2=219443&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-plexus-application/pom.xml (original)
+++ maven/continuum/trunk/continuum-plexus-application/pom.xml Sun Jul 17 19:39:16 2005
@@ -163,7 +163,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plexus-plugin</artifactId>
- <version>1.0-alpha-6-SNAPSHOT</version>
<configuration>
<applicationConfiguration>src/conf/application.xml</applicationConfiguration>
<configurationsDirectory>src/conf</configurationsDirectory>
@@ -173,7 +172,6 @@
<runtimeConfigurationProperties>app.properties</runtimeConfigurationProperties>
<runtimePath>target/plexus-test-runtime</runtimePath>
</configuration>
-<!--
<executions>
<execution>
<goals>
@@ -183,7 +181,6 @@
</goals>
</execution>
</executions>
--->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>