I had a look at the scm source and found the error message that you got.
IIUC you need to call
DefaultScmManager.setScmProvider( String providerType, ScmProvider
provider )
somewhere in your code. That would register "aci" as a valid ScmProvider
in the ScmManager. I'm not sure where to so this though...
[EMAIL PROTECTED] wrote:
Greetings
It's been a few weeks, but I've finally gotten around to working on my
custom provider. I am trying to get the absolute minimum framework
written, after which I will have a contractor do the heavy lifting. I
though it might be good to write just enough code to connect to the
repository, but thought I'd make the "discovery" process work first, so
here's what Ive got. I know it isn't much but until the discovery
portion works, the rest of the code can't really be tested.
The provider
=================
package com.ph.buildtools.scm.provider;
// imports removed for brevity
/**
* @plexus.component role="org.apache.maven.scm.provider.ScmProvider"
role-hint="aci"
**/
public class CustomScmProvider extends AbstractScmProvider {
public ScmProviderRepository makeProviderScmRepository(String url,
char delimiter)
throws ScmRepositoryException {
return new CustomScmProviderRepository();
}
public String getScmType() {
return "aci";
}
}
The repository
============
package com.ph.buildtools.scm.repository;
// imports removed for brevity
/**
* Contains the repository information.
**/
public class CustomScmProviderRepository extends
ScmProviderRepositoryWithHost {
public CustomScmProviderRepository() {}
}
The POM
==============
<project>
<description>An ACI provider for SCM using Starteam SDK</description>
<name>scm</name>
<modelVersion>4.0.0</modelVersion>
<groupId>com.ph.buildtools.plugins</groupId>
<artifactId>scm-plugin</artifactId>
<packaging>maven-plugin</packaging>
<parent>
<groupId>com.ph.buildtools.pom</groupId>
<artifactId>plugin</artifactId>
<version>7.4.0.0</version>
</parent>
<scm>
<connection>scm:aci:username:password</connection>
</scm>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>descriptor</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.ph.buildtools.plugins</groupId>
<artifactId>resources-plugin</artifactId>
<version>7.4.0.0</version>
</dependency>
</dependencies>
</project>
And finally --> the output
====================
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'scm'.
[INFO]
----------------------------------------------------------------------------
[INFO] Building scm
[INFO] task-segment: [scm:validate] (aggregator-style)
[INFO]
----------------------------------------------------------------------------
[INFO] Preparing scm:validate
[INFO] No goals needed for project - skipping
[INFO] [scm:validate]
[ERROR] Validation of scm url connection (connectionUrl) failed :
[ERROR] No such provider installed 'aci'.
[ERROR] The invalid scm url connection: 'scm:aci:username:password'.
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Command failed. Bad Scm URL.
[INFO]
------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 6 seconds
[INFO] Finished at: Fri Oct 19 21:44:25 EDT 2007
[INFO] Final Memory: 7M/30M
[INFO]
------------------------------------------------------------------------
Thanks
Robert Egan
This email message and any attachments may contain confidential,
proprietary or non-public information. The information is intended
solely for the designated recipient(s). If an addressing or
transmission error has misdirected this email, please notify the sender
immediately and destroy this email. Any review, dissemination, use or
reliance upon this information by unintended recipients is prohibited.
Any opinions expressed in this email are those of the author personally.
--
Dennis Lundberg