Bug 962273 - maven-scm: CVS support is not removed properly
Summary: maven-scm: CVS support is not removed properly
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: maven-scm
Version: 18
Hardware: Unspecified
OS: Unspecified
low
unspecified
Target Milestone: ---
Assignee: Mikolaj Izdebski
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-05-13 04:40 UTC by Mikolaj Izdebski
Modified: 2013-08-26 19:36 UTC (History)
8 users (show)

Fixed In Version: maven-scm-1.8.1-1
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-08-26 19:36:59 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Proposed patch (1.59 KB, patch)
2013-05-14 11:14 UTC, Mikolaj Izdebski
no flags Details | Diff

Description Mikolaj Izdebski 2013-05-13 04:40:21 UTC
CVS provider is removed from maven-scm package. Comment from spec file: "Partially remove cvs support for removal of netbeans-cvsclient. It still works with cvsexe provider"

However CVS provider is not removed from Plexus components.xml. Plexus container has knowledge about the CVS provider, but it is unable to load it:

[main] WARN Sisu - Error injecting: org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider
java.lang.TypeNotPresentException: Type org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider not present
	at org.sonatype.guice.bean.reflect.URLClassSpace.loadClass(URLClassSpace.java:103)
	at org.sonatype.guice.bean.reflect.NamedClass.load(NamedClass.java:45)
	at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:47)
	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
	at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55)
	at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:66)
	at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1055)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:59)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
	at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:1002)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1048)
	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:998)
	at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:79)
	at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
	at org.apache.maven.scm.manager.AbstractScmManager.getProviderByType(AbstractScmManager.java:136)
	at org.apache.maven.scm.manager.AbstractScmManager.makeScmRepository(AbstractScmManager.java:190)
	at Test.main(Test.java:8)
Caused by: java.lang.ClassNotFoundException: org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider
	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
	at org.sonatype.guice.bean.reflect.URLClassSpace.loadClass(URLClassSpace.java:99)
	... 20 more
Exception in thread "main" com.google.inject.ProvisionException: Guice provision errors:

1) Error in custom provider, java.lang.TypeNotPresentException: Type org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider not present
  at ClassRealm[plexus.core, parent: null]
  at ClassRealm[plexus.core, parent: null]
  while locating org.apache.maven.scm.provider.ScmProvider annotated with @com.google.inject.name.Named(value=cvs)

1 error
	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:1011)
	at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:79)
	at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
	at org.apache.maven.scm.manager.AbstractScmManager.getProviderByType(AbstractScmManager.java:136)
	at org.apache.maven.scm.manager.AbstractScmManager.makeScmRepository(AbstractScmManager.java:190)
	at Test.main(Test.java:8)
Caused by: java.lang.TypeNotPresentException: Type org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider not present
	at org.sonatype.guice.bean.reflect.URLClassSpace.loadClass(URLClassSpace.java:103)
	at org.sonatype.guice.bean.reflect.NamedClass.load(NamedClass.java:45)
	at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:47)
	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
	at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55)
	at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:66)
	at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1055)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:59)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
	at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:1002)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1048)
	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:998)
	... 6 more
Caused by: java.lang.ClassNotFoundException: org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider
	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
	at org.sonatype.guice.bean.reflect.URLClassSpace.loadClass(URLClassSpace.java:99)
	... 20 more


Possible solutions:
 1) Remove cvs provider from components.xml (tested, works)
 2) Replace cvs implementation with cvs_native (cvsexe)

Version-Release number of selected component (if applicable):
1.7-6

Comment 1 Mikolaj Izdebski 2013-05-14 11:14:58 UTC
Created attachment 747647 [details]
Proposed patch

Comment 2 Mat Booth 2013-08-26 19:36:59 UTC
I have applied this fix as I updated maven-scm to latest upstream version 1.8.1 in F20 and rawhide.

Should be fixed in maven-scm-1.8.1-1


Note You need to log in before you can comment on or make changes to this bug.