It is getting confusing for me because of not knowing much about plugin
dependent stuff, let me start step by step :-)
1.Here is my pom.xml, which is building and installing the plugin in
local repository :
<project>
<parent>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-providers</artifactId>
<version>1.0-beta-3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-mks-provider</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<build>
<resources>
<resource>
<directory>${basedir}/META-INF/../</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<sourceDirectory>org/apache/maven/scm/../</sourceDirectory>
</build>
</project>
2. Here is my pom.xml, by which I am trying to test the plugin :
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.testplugin</groupId>
<artifactId>testmksplugin</artifactId>
<version>1.0</version>
<scm>
<connection>scm:mks:[EMAIL PROTECTED]@project</connection>
</scm>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.0-beta-3</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-mks-provider</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
3. My plugin implementation class - MksScmProvider :
***********************************************************************************
public class MksScmProvider extends AbstractScmProvider implements
MksConstants
{
public String getScmType()
{
return "mks";
}
public ScmProviderRepository makeProviderScmRepository (String
scmSpecificUrl,char delimitter)
throws ScmRepositoryException
{
return new MksScmProviderRepository(scmSpecificUrl);
}
}
*************************************************************************************
4. Second class which check / parse the url supplied by user and raises
the exception in case of proboems.
*************************************************************************************
public class MksScmProviderRepository extends ScmProviderRepository
{
String user=null;
String password=null;
String project=null;
/*
*
* MKS_URL_FORMAT.
*
*/
public static final String MKS_URL_FORMAT =
"[EMAIL PROTECTED]@projectname";
public MksScmProviderRepository(String scmURL) throws
ScmRepositoryException
{
int index = scmURL.indexOf('@');
int nextindex = 0;
String[] tokens = StringUtils.split( scmURL, String.valueOf( '@'
) );
if (tokens.length == 3)
{
if (index != -1)
{
user = scmURL.substring(0,index);
nextindex = index;
nextindex++;
System.out.println("user");
}
index = scmURL.indexOf('@',nextindex);
if (index != -1)
{
password = scmURL.substring(nextindex,index);
nextindex = index;
nextindex++;
System.out.println(password);
}
if (scmURL.substring(nextindex).length() > 0)
{
project = scmURL.substring(nextindex);
System.out.println(project);
}
if (user.length() > 0 && password.length() > 0 &&
project.length() > 0)
{
setPassword(password);
setUser(user);
MksScmProviderRepository.isValidURL();
System.out.println(isValidURL());
}
else
{
try
{
throw new ScmRepositoryException( "Invalid SCM URL: The
expected form of the URL is " + MKS_URL_FORMAT);
}
catch (ScmRepositoryException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static boolean isValidURL()
{
return true;
}
}
************************************************************************************************
After putting the main method in MksScmProvider and supplying the
desired url it parses url and give me the results.
Could you plese see, where I am wrong ?
Regards,
-----Original Message-----
From: Emmanuel Venisse [mailto:[EMAIL PROTECTED]
Sent: Monday, June 05, 2006 2:12 PM
To: [email protected]
Subject: Re: M2 : How to implement goals in SCM provider implementation ?
It depends of your log implementation. How do you use them? Do you use
scm logger like in other
providers?
When you execute scm-api with a mojo like the scm plugin, the log level
used is INFO and if you use
-X maven parameter, it will be DEBUG.
Emmanuel
Jaikumar Sharma a écrit :
> Emmanuel,
>
> As you mentioned, pom corrected, but there is no breakthrough, not
> getting any test result for the tag <scm> <scm> mentioend below in the
> test pom.
>
> 1. Can I get some Info or type of log message while testing (which I
> specify in MksScmProvider class in the main implementation class) ?
> 2. My basic objective is just to get log type of message first, just to
> get an idea whether the implementation class is executed during my test.
>
> Please suggest !
>
> Regards,
>
>
>
>
> Sharma, Jaikumar a écrit :
>
>
> Thanks Emmanuel, pom.xml is corrected, but at the first hand I would
> like to know the following to get the better idea of the sequence of
> execution from the entry point of the plugin :
>
> 1.components.xml contains the entry point of the pluing ? If yes, in
> my case main entry point mentioned is components.xml is
> MksScmProvider.
>
> It's the entry point of the provider. Maven-SCM find the provider to
> use
> with the second token in the connection url that must be the role-hint
> of one of the providers.
>
> <component-set>
> <components>
> <component>
>
> <role>org.apache.maven.scm.provider.ScmProvider</role>
>
> <role-hint>mks</role-hint>
>
>
> <implementation>org.apache.maven.scm.provider.mks.MksScmProvider</impl
> ementation>
>
>
> </component>
> </components>
> </component-set>
>
> so, in my view, this class is executed and chanin of methods also as
> called from this only ? So, in my case it is not responding any
> error or something irrspective of whatever I specify in :
>
> <scm>
> <connection>scm:mks:"[EMAIL
[EMAIL PROTECTED]"</connection>
> </scm>
>
> Something else can be checked ? As I can see in case of other
> provider implementations xpp3 (xml pull parser ? Do I have to tweak
> or change something in this too ?
>
> If you don't have general settings that can be used by all scm
> connection, you don't need to create a provider settings loaded by xpp3,
> depends on the provider usage. A sample of parameter that can be general
> for the cvs provider is the compression level to use for all commands.
>
> Emmanuel
>
>
> Jaikumar
>
> -----Original Message-----
> From: Emmanuel Venisse [mailto:[EMAIL PROTECTED]
> Sent: Friday, June 02, 2006 11:00 AM
> To: [email protected] <mailto:[email protected]>
> Subject: Re: M2 : How to implement goals in SCM provider
> implementation ?
>
>
> Your pom is totally wrong. It must be:
>
> <project>
>
> <modelVersion>4.0.0</modelVersion>
> <groupId>com.mycompany.mytestscm</groupId>
> <artifactId>testmksplugin</artifactId>
> <version>1.0</version>
>
> <scm>
> <connection>scm:mks:"[EMAIL
[EMAIL PROTECTED]"</connection>
> </scm>
>
> <build>
>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.scm</groupId>
> <artifactId>maven-scm-plugin</artifactId>
> <version>1.0-beta-3</version>
> <dependencies>
> <dependency>
> <groupId>org.apache.maven.scm</groupId>
> <artifactId>maven-mks-provider</artifactId>
>
> <version>1.0</version> <!-- it would be better to use 1.0-SNAPSHOT
> until the
>
> release of it -->
> </dependency>
> </dependencies>
> </plugin>
> </plugins>
>
> </build>
>
> </project>
>
>
>
> Sharma, Jaikumar a écrit :
> > Hi Emmanuel, I am using the following pom.xml to connect to
> > Mks-Provider :
> >
> > <project>
> >
> > <modelVersion>4.0.0</modelVersion>
>
> > <groupId>com.mycompany.mytestscm</groupId> >
> <artifactId>testmksplugin</artifactId>
>
> > <version>1.0</version>
>
> > > > <dependencies>
>
> > <dependency>
> > <groupId>org.apache.maven.scm</groupId>
> > <artifactId>maven-scm-plugin</artifactId>
> > <version>1.0-beta-3</version>
>
> > </dependency> > > </dependencies>
>
> >
>
> > <build> > > <plugins>
>
> > <plugin>
> > <groupId>org.apache.maven.scm</groupId>
> > <artifactId>maven-mks-provider</artifactId>
> > <version>1.0</version>
> > <configuration>
> > <scm>
>
> > > <connection>scm:mks:"[EMAIL [EMAIL PROTECTED]"</connection>
>
> > </scm>
> > </configuration>
>
> > </plugin> > </plugins> > > </build> > > </project>
>
> >
> > -----Original Message-----
> > From: Emmanuel Venisse [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, June 01, 2006 7:49 PM
> > To: [email protected] <mailto:[email protected]>
> > Subject: Re: M2 : How to implement goals in SCM provider
> > implementation ?
> >
> >
> > What is <configuration> ? Where do you put it?
> >
> > Can you provide a sample scm url for mks? I guess
> > scm:mks:"[EMAIL PROTECTED]" isn't one, right? If it is, I'm not
> sure
>
> > it's correct because you don't have info about path to the
> project on a MKS
>
> >
> > Server or locally or something else, Note that I don't know
how mks
> > works and mks command lines.
> >
> > Emmanuel
> >
> > Sharma, Jaikumar a écrit :
>
> > > Fine, I have compiled it now by setting the packaging to 'jar',
> but > > now > it is giving 'NullPointerExecption' after I try to
> pass the
>
> > parameters to
> > >
> > > <configuratin>
> > > <scm>
> > > <connection>scm:mks:"[EMAIL PROTECTED]"</connection>
> > > </scm>
> > > </configuration>
> > >
> > > Parameter username and password in the form as mentioned
above, it
> > > expects as a parameter of MksScmProvider classs'
> > >
> > > Please suggest!
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: Emmanuel Venisse [mailto:[EMAIL PROTECTED]
> > > Sent: Thursday, June 01, 2006 6:38 PM
> > > To: [email protected] <mailto:[email protected]>
> > > Subject: Re: M2 : How to implement goals in SCM provider
> > > implementation ?
> > >
> > >
> > > your provider must be a jar (default type) and not a plugin.
> > >
> > > Emmanuel
> > >
> > > Sharma, Jaikumar a écrit :
> > > > Hi Emmanuel,
> > > > Something unusual, which I am not aware of, while
building the
> > > plugin > it > says java 0 mojo descriptors. Could you
please see,
> > > where I am wrong ? >
> > > > Regards, Jaikumar
> > > >
> >
----------------------------------------------------------------------
> > > > -------------------------------------
> > > >
> > > > D:\Plugin_Development\maven-mks-provider>mvn clean
install [INFO]
> > > > Scanning for projects... [INFO]
> > > >
> > >
>
> >
>
> ----------------------------------------------------------------------
> ------
>
>
> >
> > >
> > > >
> > > > [INFO] Building Unnamed -
> > > > org.apache.maven.scm:maven-mks-provider:maven-plugin:1.0
> > > > [INFO] task-segment: [clean, install]
> > > > [INFO]
> > > >
> > >
>
> >
>
> ----------------------------------------------------------------------
> ------
>
>
> >
> > >
> > > >
> > > > [INFO] [clean:clean]
> > > > [INFO] Deleting directory
> > > > D:\Plugin_Development\maven-mks-provider\target
> > > > [INFO] Deleting directory
> > > > D:\Plugin_Development\maven-mks-provider\target\classes
> > > > [INFO] Deleting directory
> > > >
D:\Plugin_Development\maven-mks-provider\target\test-classes
> > > > [INFO] [plugin:descriptor]
> > > > [INFO] Using 2 extractors.
> > > > [INFO] Applying extractor for language: java
> > > > [INFO] Extractor for language: java found 0 mojo
descriptors. >
> > [INFO] > Applying extractor for language: bsh [INFO]
Extractor for >
> > language: bsh > found 0 mojo descriptors. [INFO] >
> > [resources:resources] [INFO] Using > default encoding to copy >
> > filtered resources. [INFO] [compiler:compile] > Compiling 6
source >
> > files to >
D:\Plugin_Development\maven-mks-provider\target\classes
> > > >
> > > > [INFO] [resources:testResources]
>
> > > > [INFO] Using default encoding to copy filtered resources.
> [INFO] > > > [compiler:testCompile] [INFO] No sources to compile
> [INFO] > >
>
> > [surefire:test] [INFO] No tests to run. [INFO] [jar:jar]
[INFO] >
> > Building > jar: > >
>
> >
>
> D:\Plugin_Development\maven-mks-provider\target\maven-mks-provider-1.0
> .jar
>
>
> > > >
> > > > [INFO] [plugin:addPluginArtifactMetadata]
> > > > [INFO] [install:install]
> > > > [INFO] Installing
> > > >
> > >
>
> >
>
> D:\Plugin_Development\maven-mks-provider\target\maven-mks-provider-1.0
> .jar
>
>
> > > > to
> > > >
> > >
>
> >
>
> C:\Lang\maven-2.0.4\Repository\org\apache\maven\scm\maven-mks-provider
> \1.0\maven-mks-provider-1.0.jar
>
>
> >
> > >
> > > >
> > > > [INFO] [plugin:updateRegistry]
> > > > [INFO]
> > > >
> > >
> >
------------------------------------------------------------------------
> > > > [INFO] BUILD SUCCESSFUL
> > > > [INFO]
> > > >
> >
------------------------------------------------------------------------
> > > > [INFO] Total time: 19 seconds
> > > > [INFO] Finished at: Thu Jun 01 18:14:36 GMT+05:30 2006
> > > > [INFO] Final Memory: 6M/15M
> > > > [INFO]
> > > >
> >
------------------------------------------------------------------------
> > > >
> > >
>
> >
>
> ----------------------------------------------------------------------
> ---------------------
>
>
> >
> > >
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: Emmanuel Venisse [mailto:[EMAIL PROTECTED]
> > > > Sent: Thursday, June 01, 2006 12:42 PM
> > > > To: [email protected]
<mailto:[email protected]>
> > > > Subject: Re: M2 : How to implement goals in SCM
provider > >
> > implementation ? > >
> > > >
> > > > I guess you have define the scm url for MKS, right?
> > > >
> > > > so, you can test it by adding this in your pom:
> > > > <scm>
> > > >
<connection>scm:mks:mks_connection_parameters</connection>
>
> > > > > > > > >
>
> <developerConnection>scm:mks:mks_connection_parameters</developerConne
>
> > > > ction>
> > > >
> > > > </scm>
> > > >
>
> > > > The first steap you can test is to add your provider as a
> dependency
>
> > > > of
> > > > maven-scm plugin and you'll
> > > > can try scm:checkout, scm:update and other.
> > > >
>
> > > > If all is ok, you'll need to test it with changelog plugin,
> release
>
> > > > plugin and Continuum.
> > > >
> > > > For changelog and release plugins, you'll need to add your
> > provider as
> > > > a
> > > > dependency in the plugin or
>
> > > > if you don't want to modify them for now, you can add it as a
> plugin
>
> > > > dependency in your pom.
> > > >
> > > > For continuum, put your provider in
$CONTINUUM/apps/continuum/lib
> > > >
> > > > Emmanuel
> > > >
> > > > Sharma, Jaikumar a écrit :
> > > > > Hi Emmanuel,
> > > > > Initially, I have implemented the connect method other
> > > > functionality > in > SCM provider for MKS plugin and it
> has been
>
> > > > been built and installed in > local repository. I want to
> know, how
>
> > > > to configure this plugin in my pom > so that I can test to
> > connect to
> > > > MKS provider, if it works or I have to > change
something ?
> > > > >
> > > > > Thanks for your help!
> > > > >
> > > > > Regards, Jaikumar
> > > > >
> > > > > -----Original Message-----
> > > > > From: Sharma, Jaikumar
> > > > > Sent: Monday, May 29, 2006 2:12 PM
> > > > > To: '[email protected]
<mailto:[email protected]>'
> > > > > Subject: RE: M2 : How to implement goals in SCM provider
> > > > > implementation ?
> > > > >
> > > > >
> > > > > Thanks Emmanuel, that was the enlightment, I was
expecting from
> > you
> > > > > ;-)
> > > > >
> > > > > -----Original Message-----
> > > > > From: Emmanuel Venisse [mailto:[EMAIL PROTECTED]
> > > > > Sent: Monday, May 29, 2006 1:54 PM
> > > > > To: [email protected]
<mailto:[email protected]>
> > > > > Subject: Re: M2 : How to implement goals in SCM provider
> > > > > implementation ?
> > > > >
> > > > >
> > > > > ok, it what I thought :-)
> > > > >
>
> > > > > SCM providers don't know anythink about maven and goals.
> It's the
>
> > > role
> > > > > of scm plugin.
> > > > >
>
> > > > > SCM providers implements SCM commands and scm plugin use
> them with
>
> > > > > Maven-SCM APIs.
> > > > >
> > > > > Emmanuel
> > > > >
> > > > > Sharma, Jaikumar a écrit :
> > > > > > Emmanuel, As per the documentation on
> > > > > >
> > > > >
>
> > >
>
> http://maven.apache.org/guides/plugin/guide-java-plugin-development.ht
>
> > > > > > ml
> > > > > > . A simple Mojo needs to have a '@goal', well I
mentioned
> > > 'goals' --
>
> > > > > > mentioned term in a general way. Please see below some
> snippet
>
> > > > from the
> > > > > > above mentioned web link.
> > > > > >
> > > > > > Well, I think I have not hurt you ;-)
> > > > > >
> > > > > > Rgds, Jaikumar
> > > > > >
> > > > > >
> > -----------------------------------------------------------------
> > > > > > package sample.plugin;
> > > > > >
> > > > > > import org.apache.maven.plugin.AbstractMojo;
> > > > > > import
org.apache.maven.plugin.MojoExecutionException;
> > > > > >
> > > > > > /**
> > > > > > * @goal sayhi
> > > > > > * @description Says "Hi" to the user
> > > > > > */
> > > > > > public class GreetingMojo extends AbstractMojo
> > > > > > {
> > > > > > public void execute() throws
MojoExecutionException
> > > > > > {
> > > > > > getLog().info("Hello, world.");
> > > > > > }
> > > > > > }
> > > > > >
> > > > > >
> > -----------------------------------------------------------------
> > > > > >
> > > > > > -----Original Message-----
> > > > > > From: Emmanuel Venisse [mailto:[EMAIL PROTECTED]
> > > > > > Sent: Monday, May 29, 2006 1:14 PM
> > > > > > To: [email protected]
<mailto:[email protected]>
> > > > > > Subject: Re: M2 : How to implement goals in SCM
provider
> > > > > > implementation ?
> > > > > >
> > > > > >
> > > > > > what do you mean by goals?
> > > > > >
> > > > > > Emmanuel
> > > > > >
> > > > > > Sharma, Jaikumar a écrit :
>
> > > > > > > I am working on SCM provider implementation for MKS.
> Could
>
> > > > somebody
>
> > > > > > > throw some lights on goals implementation for SCM
> provider. I
>
> > > had a
> > > > > > look > on SCM provider implementation for VSS,
but could
> > not find
> > > > the
> > > > > > goals > definition in any of the classes ? >
> > > > > > > Thanks!
> > > > > > >
> > > > > > > Jaikumar
> > > > > >
> > > > >
> > > > > - - - - - - - DISCLAIMER- - - - - - - -
> > > > > Unless indicated otherwise, the information contained
in this
> > message
> > > > > is
> > > > > privileged and confidential, and is intended only for
the use
> > of the
> > > > > addressee(s) named above and others who have been
> specifically
>
> > > > > authorized to receive it. If you are not the intended
> recipient,
>
> > > you are
>
> > > > > hereby notified that any dissemination, distribution or
> copying of
>
> > > this
> > > > > message and/or attachments is strictly prohibited.
The company
> > > accepts
> > > > > no liability for any damage caused by any virus
transmitted by
> > this
> > > > > email. Furthermore, the company does not warrant a
proper and
> > > complete
>
> > > > > transmission of this information, nor does it accept
> liability for
>
> > > any
>
> > > > > delays. If you have received this message in error, please
> contact
>
> > > the
> > > > > sender and delete the message. Thank you.
> > > > >
> > > >
> > >
> > > - - - - - - - DISCLAIMER- - - - - - - -
> > > Unless indicated otherwise, the information contained in
this message
> > > is
> > > privileged and confidential, and is intended only for the
use of the
> > > addressee(s) named above and others who have been
> specifically
>
> > > authorized to receive it. If you are not the intended
> recipient, you are > > hereby notified that any dissemination,
> distribution or copying of this > > message and/or attachments is
> strictly prohibited. The company accepts
>
> > > no liability for any damage caused by any virus transmitted
> by this
>
> > > email. Furthermore, the company does not warrant a proper and
> complete > > transmission of this information, nor does it accept
> liability for any > > delays. If you have received this message in
> error, please contact the
>
> > > sender and delete the message. Thank you.
> > >
> >
>
> - - - - - - - DISCLAIMER- - - - - - - -
>
> Unless indicated otherwise, the information contained in this
> message is privileged and confidential, and is intended only for the
> use of the addressee(s) named above and others who have been
> specifically authorized to receive it. If you are not the intended
> recipient, you are hereby notified that any dissemination,
> distribution or copying of this message and/or attachments is
> strictly prohibited. The company accepts no liability for any damage
> caused by any virus transmitted by this email. Furthermore, the
> company does not warrant a proper and complete transmission of this
> information, nor does it accept liability for any delays. If you
> have received this message in error, please contact the sender and
> delete the message. Thank you.
>