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 2006/03/21 14:51:53 UTC
svn commit: r387529 - in /maven/continuum/branches/continuum-1.0.x: ./
continuum-model/
continuum-store/src/main/java/org/apache/maven/continuum/store/
continuum-store/src/test/java/org/apache/maven/continuum/store/
continuum-test/src/main/java/org/apa...
Author: evenisse
Date: Tue Mar 21 05:51:51 2006
New Revision: 387529
URL: http://svn.apache.org/viewcvs?rev=387529&view=rev
Log:
[CONTINUUM-586] Upgrade to JDO2/JPOX rc1
Modified:
maven/continuum/branches/continuum-1.0.x/continuum-model/pom.xml
maven/continuum/branches/continuum-1.0.x/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
maven/continuum/branches/continuum-1.0.x/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java
maven/continuum/branches/continuum-1.0.x/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
maven/continuum/branches/continuum-1.0.x/pom.xml
Modified: maven/continuum/branches/continuum-1.0.x/continuum-model/pom.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-model/pom.xml?rev=387529&r1=387528&r2=387529&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-model/pom.xml (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-model/pom.xml Tue Mar 21 05:51:51 2006
@@ -30,8 +30,8 @@
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
- <artifactId>maven-jpox-plugin</artifactId>
- <version>1.0.1</version>
+ <artifactId>jpox-maven-plugin</artifactId>
+ <version>1.0.2-SNAPSHOT</version>
<executions>
<execution>
<goals>
Modified: maven/continuum/branches/continuum-1.0.x/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java?rev=387529&r1=387528&r2=387529&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java Tue Mar 21 05:51:51 2006
@@ -100,7 +100,7 @@
public Project getProjectByName( String name )
throws ContinuumStoreException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -142,7 +142,7 @@
public Map getProjectIdsAndBuildDefinitionIdsBySchedule( int scheduleId )
throws ContinuumStoreException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -194,7 +194,7 @@
public void updateBuildResult( BuildResult build )
throws ContinuumStoreException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -208,7 +208,7 @@
throw new ContinuumStoreException( "Not detached: " + build );
}
- pm.attachCopy( build, true );
+ pm.makePersistent( build );
if ( !JDOHelper.isDetached( project ) )
{
@@ -217,7 +217,7 @@
project.setState( build.getState() );
- pm.attachCopy( project, true );
+ pm.makePersistent( project );
tx.commit();
}
@@ -230,7 +230,7 @@
public void addBuildResult( Project project, BuildResult build )
throws ContinuumStoreException, ContinuumObjectNotFoundException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -263,7 +263,7 @@
public BuildResult getLatestBuildResultForProject( int projectId )
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -299,7 +299,7 @@
public Map getLatestBuildResults()
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -357,10 +357,8 @@
public BuildDefinition getDefaultBuildDefinition( int projectId )
{
- getLogger().info( "project :" + projectId );
- long startDate = System.currentTimeMillis();
-
- PersistenceManager pm = pmf.getPersistenceManager();
+ /*
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -400,7 +398,34 @@
finally
{
rollback( tx );
- getLogger().info( "getDefaultBuildDefinition : " + ( System.currentTimeMillis() - startDate ) + "ms" );
+ }
+
+ return null;
+ */
+
+ // Use this code instead of code above due to an error in sql request generated by jpox for derby
+ Project project;
+
+ try
+ {
+ project = getProjectWithBuildDetails( projectId );
+ }
+ catch ( Exception e )
+ {
+ project = null;
+ }
+
+ if ( project != null && project.getBuildDefinitions() != null )
+ {
+ for ( Iterator i = project.getBuildDefinitions().iterator(); i.hasNext(); )
+ {
+ BuildDefinition bd = (BuildDefinition) i.next();
+
+ if ( bd.isDefaultForProject() )
+ {
+ return bd;
+ }
+ }
}
return null;
@@ -408,7 +433,7 @@
public Map getDefaultBuildDefinitions()
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -495,7 +520,7 @@
private Object getObjectFromQuery( Class clazz, String idField, String id, String fetchGroup )
throws ContinuumStoreException, ContinuumObjectNotFoundException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -542,7 +567,7 @@
private void attachAndDelete( Object object )
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -550,7 +575,7 @@
{
tx.begin();
- pm.attachCopy( object, true );
+ pm.makePersistent( object );
pm.deletePersistent( object );
@@ -610,7 +635,7 @@
private Object getObjectById( Class clazz, int id, String fetchGroup )
throws ContinuumStoreException, ContinuumObjectNotFoundException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -656,7 +681,7 @@
private void updateObject( Object object )
throws ContinuumStoreException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -671,12 +696,12 @@
try
{
- pm.attachCopy( object, true );
+ pm.makePersistent( object );
}
catch ( Exception e )
{
//We retry if we obtain an exceptio like a dead lock
- pm.attachCopy( object, true );
+ pm.makePersistent( object );
}
tx.commit();
@@ -689,7 +714,7 @@
public Collection getAllProjectGroupsWithProjects()
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -735,7 +760,7 @@
public Schedule getScheduleByName( String name )
throws ContinuumStoreException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -804,7 +829,7 @@
public List getAllBuildsForAProjectByDate( int projectId )
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -812,10 +837,14 @@
{
tx.begin();
- Query q = pm.newQuery( "SELECT FROM " + BuildResult.class.getName() +
- " WHERE project.id == :projectId PARAMETERS int projectId ORDER BY endTime DESC" );
+ Query query = pm.newQuery( "SELECT FROM " + BuildResult.class.getName() +
+ " WHERE project.id == projectId PARAMETERS int projectId ORDER BY endTime DESC" );
- List result = (List) q.execute( new Integer( projectId ) );
+ query.declareImports( "import java.lang.Integer" );
+
+ query.declareParameters( "Integer projectId" );
+
+ List result = (List) query.execute( new Integer( projectId ) );
result = (List) pm.detachCopyAll( result );
@@ -883,7 +912,7 @@
public List getBuildResultByBuildNumber( int projectId, int buildNumber )
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -915,7 +944,7 @@
public List getBuildResultsForProject( int projectId, long fromDate )
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -949,7 +978,7 @@
public Map getBuildResultsInSuccess()
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -1042,7 +1071,7 @@
private void removeObject( Object o )
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -1074,7 +1103,7 @@
private List getAllObjectsDetached( Class clazz, String ordering, String fetchGroup )
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -1117,7 +1146,7 @@
private Object addObject( Object object )
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -1215,7 +1244,7 @@
public ContinuumUser getGuestUser()
throws ContinuumStoreException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -1265,7 +1294,7 @@
public ContinuumUser getUserByUsername( String username )
throws ContinuumStoreException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -1318,7 +1347,7 @@
public Permission getPermission( String name )
throws ContinuumStoreException
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -1387,7 +1416,7 @@
public UserGroup getUserGroup( String name )
{
- PersistenceManager pm = pmf.getPersistenceManager();
+ PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -1424,6 +1453,15 @@
{
rollback( tx );
}
+ }
+
+ private PersistenceManager getPersistenceManager()
+ {
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ pm.getFetchPlan().setMaxFetchDepth( -1 );
+
+ return pm;
}
public void removeUserGroup( UserGroup group )
Modified: maven/continuum/branches/continuum-1.0.x/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java?rev=387529&r1=387528&r2=387529&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java Tue Mar 21 05:51:51 2006
@@ -39,6 +39,7 @@
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
import java.io.File;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -107,8 +108,8 @@
store = createStore();
// Setting up test data
- defaultProjectGroup = createTestProjectGroup( "Default Group", "The Default Group",
- "org.apache.maven.test.default" );
+ defaultProjectGroup =
+ createTestProjectGroup( "Default Group", "The Default Group", "org.apache.maven.test.default" );
testProjectGroup2 = createTestProjectGroup( "test group 2", "test group 2 desc", "test group 2 groupId" );
@@ -189,12 +190,12 @@
Installation installationJava13 = createTestInstallation( testInstallationJava13 );
installationJava13 = store.addInstallation( installationJava13 );
- testProfile1 = createTestProfile( "name1", "description1", 1, true, true, installationJava13,
- installationMaven20a3 );
- testProfile2 = createTestProfile( "name2", "description2", 2, false, true, installationJava14,
- installationMaven20a3 );
- testProfile3 = createTestProfile( "name3", "description3", 3, true, false, installationJava14,
- installationMaven20a3 );
+ testProfile1 =
+ createTestProfile( "name1", "description1", 1, true, true, installationJava13, installationMaven20a3 );
+ testProfile2 =
+ createTestProfile( "name2", "description2", 2, false, true, installationJava14, installationMaven20a3 );
+ testProfile3 =
+ createTestProfile( "name3", "description3", 3, true, false, installationJava14, installationMaven20a3 );
Profile profile1 = createTestProfile( testProfile1 );
profile1 = store.addProfile( profile1 );
@@ -208,19 +209,19 @@
profile3 = store.addProfile( profile3 );
testProfile3.setId( profile3.getId() );
- BuildDefinition testGroupBuildDefinition1 = createTestBuildDefinition( "arguments1", "buildFile1", "goals1",
- profile1, schedule2 );
- BuildDefinition testGroupBuildDefinition2 = createTestBuildDefinition( "arguments2", "buildFile2", "goals2",
- profile1, schedule1 );
- BuildDefinition testGroupBuildDefinition3 = createTestBuildDefinition( "arguments3", "buildFile3", "goals3",
- profile2, schedule1 );
-
- BuildDefinition testBuildDefinition1 = createTestBuildDefinition( "arguments11", "buildFile11", "goals11",
- profile2, schedule1 );
- BuildDefinition testBuildDefinition2 = createTestBuildDefinition( "arguments12", "buildFile12", "goals12",
- profile2, schedule2 );
- BuildDefinition testBuildDefinition3 = createTestBuildDefinition( "arguments13", "buildFile13", "goals13",
- profile1, schedule2 );
+ BuildDefinition testGroupBuildDefinition1 =
+ createTestBuildDefinition( "arguments1", "buildFile1", "goals1", profile1, schedule2 );
+ BuildDefinition testGroupBuildDefinition2 =
+ createTestBuildDefinition( "arguments2", "buildFile2", "goals2", profile1, schedule1 );
+ BuildDefinition testGroupBuildDefinition3 =
+ createTestBuildDefinition( "arguments3", "buildFile3", "goals3", profile2, schedule1 );
+
+ BuildDefinition testBuildDefinition1 =
+ createTestBuildDefinition( "arguments11", "buildFile11", "goals11", profile2, schedule1 );
+ BuildDefinition testBuildDefinition2 =
+ createTestBuildDefinition( "arguments12", "buildFile12", "goals12", profile2, schedule2 );
+ BuildDefinition testBuildDefinition3 =
+ createTestBuildDefinition( "arguments13", "buildFile13", "goals13", profile1, schedule2 );
ProjectGroup group = createTestProjectGroup( defaultProjectGroup );
@@ -353,12 +354,14 @@
Project project = (Project) projects.get( 0 );
checkProjectDefaultFetchGroup( project );
- assertSame( "Check project group reference matches", project.getProjectGroup(), retrievedGroup );
+ //assertSame( "Check project group reference matches", project.getProjectGroup(), retrievedGroup );
+ assertEquals( project.getProjectGroup().getId(), retrievedGroup.getId() );
assertProjectEquals( project, testProject1 );
project = (Project) projects.get( 1 );
checkProjectDefaultFetchGroup( project );
- assertSame( "Check project group reference matches", project.getProjectGroup(), retrievedGroup );
+ //assertSame( "Check project group reference matches", project.getProjectGroup(), retrievedGroup );
+ assertEquals( project.getProjectGroup().getId(), retrievedGroup.getId() );
assertProjectEquals( project, testProject2 );
}
@@ -811,14 +814,16 @@
Project project = (Project) projects.get( 0 );
checkProjectFetchGroup( project, false, false, true, false );
- assertSame( "Check project group reference matches", project.getProjectGroup(), retrievedGroup );
+ //assertSame( "Check project group reference matches", project.getProjectGroup(), retrievedGroup );
+ assertEquals( project.getProjectGroup().getId(), retrievedGroup.getId() );
assertProjectEquals( project, testProject1 );
assertNotifiersEqual( project.getNotifiers(), testProject1.getNotifiers() );
assertBuildDefinitionsEqual( project.getBuildDefinitions(), testProject1.getBuildDefinitions() );
project = (Project) projects.get( 1 );
checkProjectFetchGroup( project, false, false, true, false );
- assertSame( "Check project group reference matches", project.getProjectGroup(), retrievedGroup );
+ //assertSame( "Check project group reference matches", project.getProjectGroup(), retrievedGroup );
+ assertEquals( project.getProjectGroup().getId(), retrievedGroup.getId() );
assertProjectEquals( project, testProject2 );
assertNotifiersEqual( project.getNotifiers(), testProject2.getNotifiers() );
assertBuildDefinitionsEqual( project.getBuildDefinitions(), testProject2.getBuildDefinitions() );
@@ -1009,8 +1014,8 @@
Profile profile = store.getProfile( testProfile1.getId() );
Schedule schedule = store.getSchedule( testSchedule1.getId() );
- BuildDefinition buildDefinition = createTestBuildDefinition( "TABDTP arguments", "TABDTP buildFile",
- "TABDTP goals", profile, schedule );
+ BuildDefinition buildDefinition =
+ createTestBuildDefinition( "TABDTP arguments", "TABDTP buildFile", "TABDTP goals", profile, schedule );
BuildDefinition copy = createTestBuildDefinition( buildDefinition );
project.addBuildDefinition( buildDefinition );
store.updateProject( project );
@@ -1118,8 +1123,8 @@
Profile profile = store.getProfile( testProfile1.getId() );
Schedule schedule = store.getSchedule( testSchedule1.getId() );
- BuildDefinition buildDefinition = createTestBuildDefinition( "TABDTPG arguments", "TABDTPG buildFile",
- "TABDTPG goals", profile, schedule );
+ BuildDefinition buildDefinition =
+ createTestBuildDefinition( "TABDTPG arguments", "TABDTPG buildFile", "TABDTPG goals", profile, schedule );
BuildDefinition copy = createTestBuildDefinition( buildDefinition );
projectGroup.addBuildDefinition( buildDefinition );
store.updateProjectGroup( projectGroup );
@@ -1435,6 +1440,7 @@
{
assertTrue( true );
}
+
try
{
retrievedGroup.getNotifiers();
@@ -1460,12 +1466,14 @@
try
{
project.getDevelopers();
+
fail( "developers should not be in the default fetch group" );
}
catch ( JDODetachedFieldAccessException expected )
{
assertTrue( true );
}
+
try
{
project.getDependencies();
@@ -1475,20 +1483,24 @@
fail( "dependencies should be in the default fetch group" );
}
}
+
if ( !detailsFetchGroup )
{
try
{
project.getNotifiers();
+
fail( "notifiers should not be in the default fetch group" );
}
catch ( JDODetachedFieldAccessException expected )
{
assertTrue( true );
}
+
try
{
project.getBuildDefinitions();
+
fail( "buildDefinitions should not be in the default fetch group" );
}
catch ( JDODetachedFieldAccessException expected )
@@ -1502,6 +1514,7 @@
try
{
project.getCheckoutResult();
+
fail( "checkoutResult should not be in the fetch group" );
}
catch ( JDODetachedFieldAccessException expected )
@@ -1515,6 +1528,7 @@
try
{
project.getBuildResults();
+
fail( "buildResults should not be in the default fetch group" );
}
catch ( JDODetachedFieldAccessException expected )
@@ -1529,6 +1543,7 @@
try
{
buildResult.getScmResult();
+
fail( "scmResult should not be in the default fetch group" );
}
catch ( JDODetachedFieldAccessException expected )
@@ -1769,7 +1784,8 @@
}
File file = getTestFile( "../continuum-model/target/classes/META-INF/package.jdo" );
- SchemaTool.createSchemaTables( new String[]{file.getAbsolutePath()}, false );
+
+ SchemaTool.createSchemaTables( new URL[]{file.toURL()}, false );
PersistenceManagerFactory pmf = jdoFactory.getPersistenceManagerFactory();
Modified: maven/continuum/branches/continuum-1.0.x/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java?rev=387529&r1=387528&r2=387529&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java Tue Mar 21 05:51:51 2006
@@ -34,6 +34,7 @@
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
import java.io.File;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -129,7 +130,8 @@
}
File file = getTestFile( "../continuum-model/target/classes/META-INF/package.jdo" );
- SchemaTool.createSchemaTables( new String[]{file.getAbsolutePath()}, false );
+
+ SchemaTool.createSchemaTables( new URL[]{file.toURL()}, false );
// ----------------------------------------------------------------------
// Check the configuration
Modified: maven/continuum/branches/continuum-1.0.x/pom.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/pom.xml?rev=387529&r1=387528&r2=387529&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/pom.xml (original)
+++ maven/continuum/branches/continuum-1.0.x/pom.xml Tue Mar 21 05:51:51 2006
@@ -255,7 +255,7 @@
<dependency>
<groupId>jpox</groupId>
<artifactId>jpox</artifactId>
- <version>1.1.0-beta-4</version>
+ <version>1.1.0-rc-1</version>
<exclusions>
<exclusion>
<artifactId>ant</artifactId>
@@ -274,7 +274,7 @@
<dependency>
<groupId>jpox</groupId>
<artifactId>jpox-enhancer</artifactId>
- <version>1.1.0-beta-4</version>
+ <version>1.1.0-rc-1</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
@@ -284,7 +284,7 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-jdo2</artifactId>
- <version>1.0-alpha-3</version>
+ <version>1.0-alpha-4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>