Skip to content

Instantly share code, notes, and snippets.

@khmarbaise
Last active August 1, 2016 17:53
Show Gist options
  • Save khmarbaise/b9460bdaad6fe4454843a73d562d33a6 to your computer and use it in GitHub Desktop.
Save khmarbaise/b9460bdaad6fe4454843a73d562d33a6 to your computer and use it in GitHub Desktop.
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
import java.util.List;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.command.status.StatusScmResult;
import org.apache.maven.scm.manager.NoSuchScmProviderException;
import org.apache.maven.scm.manager.ScmManager;
import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.repository.ScmRepositoryException;
import org.codehaus.plexus.PlexusTestCase;
public class SecondTest extends PlexusTestCase {
protected void setUp() throws Exception {
super.setUp();
super.setupContainer();
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testFirst() throws Exception {
ScmManager scmManager = (ScmManager) lookup( ScmManager.ROLE );
assertThat(scmManager).isNotNull();
System.out.println("Type:" + scmManager.getClass().getName());
@khmarbaise
Copy link
Author

This is the result if i try to run: mvn clean test

org.codehaus.plexus.PlexusContainerException: Cycle detected in component graph in the system: 
    at org.codehaus.plexus.DefaultPlexusContainer.initialize(DefaultPlexusContainer.java:624)
    at org.codehaus.plexus.DefaultPlexusContainer.construct(DefaultPlexusContainer.java:281)
    at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:172)
    at org.codehaus.plexus.PlexusTestCase.setupContainer(PlexusTestCase.java:99)
    at org.codehaus.plexus.PlexusTestCase.getContainer(PlexusTestCase.java:142)
    at com.soebes.maven.extensions.incremental.SecondTest.setUp(SecondTest.java:28)
    at junit.framework.TestCase.runBare(TestCase.java:139)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at junit.framework.TestSuite.runTest(TestSuite.java:252)
    at junit.framework.TestSuite.run(TestSuite.java:247)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.codehaus.plexus.component.composition.CycleDetectedInComponentGraphException: Cyclic requirement detected
    at org.codehaus.plexus.component.composition.DefaultCompositionResolver.addComponentDescriptor(DefaultCompositionResolver.java:65)
    at org.codehaus.plexus.component.repository.DefaultComponentRepository.addComponentDescriptor(DefaultComponentRepository.java:229)
    at org.codehaus.plexus.DefaultComponentRegistry.addComponentDescriptor(DefaultComponentRegistry.java:126)
    at org.codehaus.plexus.DefaultPlexusContainer.addComponentDescriptor(DefaultPlexusContainer.java:514)
    at org.codehaus.plexus.DefaultPlexusContainer.discoverComponents(DefaultPlexusContainer.java:969)
    at org.codehaus.plexus.DefaultPlexusContainer.discoverComponents(DefaultPlexusContainer.java:941)
    at org.codehaus.plexus.DefaultPlexusContainer.initialize(DefaultPlexusContainer.java:560)
    ... 19 more
Caused by: org.codehaus.plexus.util.dag.CycleDetectedException: Edge between 'Vertex{label='org.apache.maven.plugin.version.PluginVersionResolver:default'}' and 'Vertex{label='org.apache.maven.plugin.MavenPluginManager:default'}' introduces to cycle in the graph org.apache.maven.plugin.MavenPluginManager:default --> org.apache.maven.plugin.version.PluginVersionResolver:default --> org.apache.maven.plugin.MavenPluginManager:default
    at org.codehaus.plexus.util.dag.DAG.addEdge(DAG.java:141)
    at org.codehaus.plexus.util.dag.DAG.addEdge(DAG.java:121)
    at org.codehaus.plexus.component.composition.DefaultCompositionResolver.addComponentDescriptor(DefaultCompositionResolver.java:60)
    ... 25 more

@rfscholte
Copy link

what are the dependencies? especially those containing the mentioned classes.

@khmarbaise
Copy link
Author

<dependency>
  <groupId>org.codehaus.plexus</groupId>
  <artifactId>plexus-utils</artifactId>
  <version>3.0.24</version>
</dependency>
<dependency>
  <groupId>org.codehaus.plexus</groupId>
  <artifactId>plexus-container-default</artifactId>
  <version>1.7</version>
</dependency>
<dependency>
  <groupId>org.codehaus.plexus</groupId>
  <artifactId>plexus-component-annotations</artifactId>
  <version>1.7</version>
</dependency>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.5</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>org.apache.maven</groupId>
  <artifactId>maven-core</artifactId>
  <version>${mavenVersion}</version>
  <scope>provided</scope>
</dependency>

<!-- test dependencies -->
<dependency>
  <groupId>org.assertj</groupId>
  <artifactId>assertj-core</artifactId>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.mockito</groupId>
  <artifactId>mockito-core</artifactId>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-manager-plexus</artifactId>
  <version>1.9.5</version>
</dependency>

<!-- providers declaration -->
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-accurev</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-bazaar</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-clearcase</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-cvsexe</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-cvsjava</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-gitexe</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-hg</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-jazz</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-local</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-perforce</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-starteam</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-svnexe</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-synergy</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-vss</artifactId>
  <version>1.9.5</version>
</dependency>
<dependency>
  <groupId>org.apache.maven.scm</groupId>
  <artifactId>maven-scm-provider-tfs</artifactId>
  <version>1.9.5</version>
</dependency>

@khmarbaise
Copy link
Author

The above was from inside Eclipse this one is from the command line:

nning com.soebes.maven.extensions.incremental.FirstTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.056 sec - in com.soebes.maven.extensions.incremental.FirstTest
Running com.soebes.maven.extensions.incremental.SecondTest
org.codehaus.plexus.PlexusContainerException: Cycle detected in component graph in the system:
    at org.codehaus.plexus.DefaultPlexusContainer.initialize(DefaultPlexusContainer.java:624)
    at org.codehaus.plexus.DefaultPlexusContainer.construct(DefaultPlexusContainer.java:281)
    at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:172)
    at org.codehaus.plexus.PlexusTestCase.setupContainer(PlexusTestCase.java:99)
    at com.soebes.maven.extensions.incremental.SecondTest.setUp(SecondTest.java:23)
    at junit.framework.TestCase.runBare(TestCase.java:139)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at junit.framework.TestSuite.runTest(TestSuite.java:252)
    at junit.framework.TestSuite.run(TestSuite.java:247)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
Caused by: org.codehaus.plexus.component.composition.CycleDetectedInComponentGraphException: Cyclic requirement detected
    at org.codehaus.plexus.component.composition.DefaultCompositionResolver.addComponentDescriptor(DefaultCompositionResolver.java:65)
    at org.codehaus.plexus.component.repository.DefaultComponentRepository.addComponentDescriptor(DefaultComponentRepository.java:229)
    at org.codehaus.plexus.DefaultComponentRegistry.addComponentDescriptor(DefaultComponentRegistry.java:126)
    at org.codehaus.plexus.DefaultPlexusContainer.addComponentDescriptor(DefaultPlexusContainer.java:514)
    at org.codehaus.plexus.DefaultPlexusContainer.discoverComponents(DefaultPlexusContainer.java:969)
    at org.codehaus.plexus.DefaultPlexusContainer.discoverComponents(DefaultPlexusContainer.java:941)
    at org.codehaus.plexus.DefaultPlexusContainer.initialize(DefaultPlexusContainer.java:560)
    ... 19 more
Caused by: org.codehaus.plexus.util.dag.CycleDetectedException: Edge between 'Vertex{label='org.apache.maven.plugin.version.PluginVersionResolver:default'}' and 'Vertex{label='org.apache.maven.plugin.MavenPluginManager:default'}' introduces to cycle in the graph org.apache.maven.plugin.MavenPluginManager:default --> org.apache.maven.plugin.version.PluginVersionResolver:default --> org.apache.maven.plugin.MavenPluginManager:default
    at org.codehaus.plexus.util.dag.DAG.addEdge(DAG.java:141)
    at org.codehaus.plexus.util.dag.DAG.addEdge(DAG.java:121)
    at org.codehaus.plexus.component.composition.DefaultCompositionResolver.addComponentDescriptor(DefaultCompositionResolver.java:60)
    ... 25 more
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.381 sec <<< FAILURE! - in com.soebes.maven.extensions.incremental.SecondTest
testFirst(com.soebes.maven.extensions.incremental.SecondTest)  Time elapsed: 0.379 sec  <<< FAILURE!
junit.framework.AssertionFailedError: Failed to create plexus container.
    at com.soebes.maven.extensions.incremental.SecondTest.setUp(SecondTest.java:23)


Results :

Failed tests:
  SecondTest.setUp:23->PlexusTestCase.setupContainer:104 Failed to create plexus container.

@khmarbaise
Copy link
Author

So I think I found a hint. Just commenting out the dependenc

<dependency>
  <groupId>org.apache.maven</groupId>
  <artifactId>maven-core</artifactId>
  <version>${mavenVersion}</version>
  <scope>provided</scope>
</dependency>

And the exception will be away...?

@khmarbaise
Copy link
Author

More experiments showed me that if i use 3.2.5 for maven-core it works, but if i use maven-core version 3.3.1...3.3.9 it does not work..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment