You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/04/23 09:45:38 UTC
svn commit: r1329106 [6/6] - in /maven/scm/trunk: ./ maven-scm-client/
maven-scm-client/src/main/resources/META-INF/plexus/ maven-scm-providers/
maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/command/...
Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTckTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTckTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTckTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTckTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,80 @@
+package org.apache.maven.scm.provider.jazz.command.tag;
+
+import java.io.File;
+
+import org.apache.maven.scm.provider.jazz.command.JazzTckUtil;
+import org.apache.maven.scm.tck.command.tag.TagCommandTckTest;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzTagCommandTckTest
+ extends TagCommandTckTest
+{
+ // Easy access to our Tck Test Helper class.
+ private JazzTckUtil jazzTckUtil = new JazzTckUtil();
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.maven.scm.ScmTckTestCase#initRepo()
+ */
+ @Override
+ public void initRepo()
+ throws Exception
+ {
+ // Create a unique repository workspace for this test.
+ jazzTckUtil.initRepo( getScmRepository() );
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.maven.scm.ScmTckTestCase#removeRepo()
+ */
+ @Override
+ public void removeRepo()
+ throws Exception
+ {
+ super.removeRepo();
+ jazzTckUtil.removeRepo();
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.maven.scm.ScmTckTestCase#getScmUrl()
+ */
+ @Override
+ public String getScmUrl()
+ throws Exception
+ {
+ return jazzTckUtil.getScmUrl();
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.maven.scm.ScmTestCase#getWorkingCopy()
+ */
+ @Override
+ protected File getWorkingCopy()
+ {
+ return jazzTckUtil.getWorkingCopy();
+ }
+}
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTckTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTckTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,80 @@
+package org.apache.maven.scm.provider.jazz.command.tag;
+
+import org.apache.maven.scm.ScmTagParameters;
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzTagCommandTest
+ extends JazzScmTestCase
+{
+ private JazzScmProviderRepository repo;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ repo = getScmProviderRepository();
+
+ // Simulate the output of the parsing of the "scm status" command.
+ // IE, fill in the workspace and stream details
+ // Only needed for tests that require "pushChanges" type operations.
+ repo.setWorkspace( "Dave's Repository Workspace" );
+ repo.setFlowTarget( "Dave's Stream" );
+ }
+
+ public void testCreateTagCreateSnapshotCommand()
+ throws Exception
+ {
+ ScmTagParameters scmTagParameters = new ScmTagParameters( "My Tag Message" );
+ Commandline cmd = new JazzTagCommand().createTagCreateSnapshotCommand( repo, getScmFileSet(), "My_Tag_Name", scmTagParameters ).getCommandline();
+ String expected = "scm create snapshot --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword --name My_Tag_Name --description \"My Tag Message\" \"Dave's Repository Workspace\"";
+ assertCommandLine( expected, getWorkingDirectory(), cmd );
+ }
+
+ public void testCreateTagCreateWorkspaceCommand()
+ throws Exception
+ {
+ Commandline cmd = new JazzTagCommand().createTagCreateWorkspaceCommand( repo, getScmFileSet(), "My_Snapshot_Name" ).getCommandline();
+ String expected = "scm create workspace --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword My_Snapshot_Name --snapshot My_Snapshot_Name";
+ assertCommandLine( expected, getWorkingDirectory(), cmd );
+ }
+
+ public void testCreateTagDeliverCommand()
+ throws Exception
+ {
+ Commandline cmd = new JazzTagCommand().createTagDeliverCommand( repo, getScmFileSet(), "My_Tag_Name" ).getCommandline();
+ String expected = "scm deliver --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword --source My_Tag_Name --target \"Dave's Stream\"";
+ assertCommandLine( expected, getWorkingDirectory(), cmd );
+ }
+
+ public void testCreateTagSnapshotPromoteCommand()
+ throws Exception
+ {
+ Commandline cmd = new JazzTagCommand().createTagSnapshotPromoteCommand( repo, getScmFileSet(), "My_Snapshot_Name" ).getCommandline();
+ String expected = "scm snapshot promote --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword \"Dave's Stream\" My_Snapshot_Name";
+ assertCommandLine( expected, getWorkingDirectory(), cmd );
+ }
+}
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/tag/JazzTagCommandTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/unedit/JazzUnEditCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/unedit/JazzUnEditCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/unedit/JazzUnEditCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/unedit/JazzUnEditCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,60 @@
+package org.apache.maven.scm.provider.jazz.command.unedit;
+
+import java.io.File;
+
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzUnEditCommandTest
+ extends JazzScmTestCase
+{
+ private JazzScmProviderRepository repo;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ repo = getScmProviderRepository();
+ }
+
+ public void testCreateUneditCommandWithSpecificFiles()
+ throws Exception
+ {
+ Commandline cmd = new JazzUnEditCommand().createUneditCommand( repo, getScmFileSet() ).getCommandline();
+ String expected = "scm lock release --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword file1 file2";
+ assertCommandLine( expected, getWorkingDirectory(), cmd );
+ }
+
+ public void testCreateUneditCommandWithEmptyFileSet()
+ throws Exception
+ {
+ // An empty file set will be all files, which jazz will take as a "."
+ Commandline cmd = new JazzUnEditCommand().createUneditCommand( repo, new ScmFileSet( new File(".") ) ).getCommandline();
+ String expected = "scm lock release --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword .";
+ assertCommandLine( expected, getWorkingDirectory(), cmd );
+ }
+}
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/unedit/JazzUnEditCommandTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/unedit/JazzUnEditCommandTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTckTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTckTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTckTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTckTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,91 @@
+package org.apache.maven.scm.provider.jazz.command.update;
+
+import java.io.File;
+
+import org.apache.maven.scm.provider.jazz.command.JazzTckUtil;
+import org.apache.maven.scm.tck.command.update.UpdateCommandTckTest;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzUpdateCommandTckTest
+ extends UpdateCommandTckTest
+{
+ // Easy access to our Tck Test Helper class.
+ private JazzTckUtil jazzTckUtil = new JazzTckUtil();
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.maven.scm.ScmTckTestCase#initRepo()
+ */
+ @Override
+ public void initRepo()
+ throws Exception
+ {
+ // Create a unique repository workspace for this test.
+ jazzTckUtil.initRepo( getScmRepository() );
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.maven.scm.ScmTckTestCase#removeRepo()
+ */
+ @Override
+ public void removeRepo()
+ throws Exception
+ {
+ super.removeRepo();
+ jazzTckUtil.removeRepo();
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.maven.scm.ScmTckTestCase#getScmUrl()
+ */
+ @Override
+ public String getScmUrl()
+ throws Exception
+ {
+ return jazzTckUtil.getScmUrl();
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.maven.scm.ScmTestCase#getWorkingCopy()
+ */
+ @Override
+ protected File getWorkingCopy()
+ {
+ return jazzTckUtil.getWorkingCopy();
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.maven.scm.ScmTestCase#getUpdatingCopy()
+ */
+ @Override
+ protected File getUpdatingCopy()
+ {
+ return jazzTckUtil.getUpdatingCopy();
+ }
+
+}
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTckTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTckTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,48 @@
+package org.apache.maven.scm.provider.jazz.command.update;
+
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzUpdateCommandTest
+ extends JazzScmTestCase
+{
+ private JazzScmProviderRepository repo;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ repo = getScmProviderRepository();
+ }
+
+ public void testCreateAcceptCommand()
+ throws Exception
+ {
+ Commandline cmd = new JazzUpdateCommand().createAcceptCommand( repo, getScmFileSet() ).getCommandline();
+ String expected = "scm accept --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword --flow-components";
+ assertCommandLine( expected, getWorkingDirectory(), cmd );
+ }
+}
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/update/JazzUpdateCommandTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepositoryTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepositoryTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepositoryTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepositoryTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,268 @@
+package org.apache.maven.scm.provider.jazz.repository;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.List;
+
+import org.apache.maven.scm.ScmTestCase;
+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;
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzScmProviderRepositoryTest
+ extends ScmTestCase
+{
+ private ScmManager scmManager;
+
+ public void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ scmManager = getScmManager();
+ }
+
+ // ----------------------------------------------------------------------
+ // Testing legal URLs
+ // "scm:jazz:[username[;password]@]http[s]://server_name[:port]/contextRoot:repositoryWorkspace";
+ // ----------------------------------------------------------------------
+
+ public void testLegalFullHttpURI()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@http://server_name:9443/contextRoot:repositoryWorkspace", "http://server_name:9443/contextRoot", "username", "password", "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpURI()
+ throws Exception
+ {
+ testUrl( "scm:jazz:http://server_name:9443/contextRoot:repositoryWorkspace", "http://server_name:9443/contextRoot", null, null, "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalFullHttpURIWithLongPath()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@http://server_name:9443/some/long/contextRoot:repositoryWorkspace", "http://server_name:9443/some/long/contextRoot", "username", "password", "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpURIWithLongPath()
+ throws Exception
+ {
+ testUrl( "scm:jazz:http://server_name:9443/some/long/contextRoot:repositoryWorkspace", "http://server_name:9443/some/long/contextRoot", null, null, "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalFullHttpURIWithShortPath()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@http://server_name:9443/:repositoryWorkspace", "http://server_name:9443/", "username", "password", "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpURIWithShortPathPath()
+ throws Exception
+ {
+ testUrl( "scm:jazz:http://server_name:9443/:repositoryWorkspace", "http://server_name:9443/", null, null, "server_name", 9443, "repositoryWorkspace" );
+ }
+
+
+ public void testLegalFullHttpURIWithShortPathAndNoPort()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@http://server_name/:repositoryWorkspace", "http://server_name/", "username", "password", "server_name", 0, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpURIWithShortPathPathAndNoPort()
+ throws Exception
+ {
+ testUrl( "scm:jazz:http://server_name/:repositoryWorkspace", "http://server_name/", null, null, "server_name", 0, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpURIWithUser()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username@http://server_name:9443/contextRoot:repositoryWorkspace", "http://server_name:9443/contextRoot", "username", null, "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpURIWithUserAndPassword()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@http://server_name:9443/contextRoot:repositoryWorkspace", "http://server_name:9443/contextRoot", "username", "password", "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalFullHttpsURI()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@https://server_name:9443/contextRoot:repositoryWorkspace", "https://server_name:9443/contextRoot", "username", "password", "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpsURI()
+ throws Exception
+ {
+ testUrl( "scm:jazz:https://server_name:9443/contextRoot:repositoryWorkspace", "https://server_name:9443/contextRoot", null, null, "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpsURINoPort()
+ throws Exception
+ {
+ testUrl( "scm:jazz:https://server_name/contextRoot:repositoryWorkspace", "https://server_name/contextRoot", null, null, "server_name", 0, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpsURIWithUser()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username@https://server_name:9443/contextRoot:repositoryWorkspace", "https://server_name:9443/contextRoot", "username", null, "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalHttpsURIWithUserAndPassword()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@https://server_name:9443/contextRoot:repositoryWorkspace", "https://server_name:9443/contextRoot", "username", "password", "server_name", 9443, "repositoryWorkspace" );
+ }
+
+ public void testLegalFullHttpURIWithSpaces()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@http://server_name:9443/contextRoot:repository Workspace", "http://server_name:9443/contextRoot", "username", "password", "server_name", 9443, "repository Workspace" );
+ }
+
+ public void testLegalFullHttpsURIWithSpaces()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@https://server_name:9443/contextRoot:repository Workspace", "https://server_name:9443/contextRoot", "username", "password", "server_name", 9443, "repository Workspace" );
+ }
+
+ public void testLegalFullHttpsURIWithSpacesAndQuote()
+ throws Exception
+ {
+ testUrl( "scm:jazz:username;password@https://server_name:9443/contextRoot:Dave's Repository Workspace", "https://server_name:9443/contextRoot", "username", "password", "server_name", 9443, "Dave's Repository Workspace" );
+ }
+
+ // ----------------------------------------------------------------------
+ // Testing illegal URLs
+ // "scm:jazz:[username[;password]@]http[s]://server_name[:port]/contextRoot:repositoryWorkspace";
+ // Something missing or broken in the above.
+ // ----------------------------------------------------------------------
+
+ public void testIllegalFullHttpsURIWithMissingPathOrWorkspace()
+ throws Exception
+ {
+ testBrokenUrl( "scm:jazz:username;password@https://server_name:9443/contextRootOrWorkspaceIsMissing" );
+ }
+
+ public void testIllegalFullHttpsURIWithMissingPathOrWorkspaceAndPort()
+ throws Exception
+ {
+ testBrokenUrl( "scm:jazz:username;password@https://server_name/contextRootOrWorkspaceIsMissing" );
+ }
+
+ public void testIllegalFullHttpsURIWithMissingPathOrWorkspaceAndUsernameAndPasswordAndPort()
+ throws Exception
+ {
+ testBrokenUrl( "scm:jazz:https://server_name/contextRootOrWorkspaceIsMissing" );
+ }
+
+ public void testIllegalFullHttpsURIWithMissingPortButWithColon()
+ throws Exception
+ {
+ testBrokenUrl( "scm:jazz:username;password@https://server_name:/contextRoot:repositoryWorkspace" );
+ }
+
+ public void testIllegalFullHttpsURIWithMissingPortAndPathOrWorkspace()
+ throws Exception
+ {
+ testBrokenUrl( "scm:jazz:username;password@https://server_name/contextRootOrWorkspaceIsMissing" );
+ }
+
+ public void testIllegalWrongProtocolURI()
+ throws Exception
+ {
+ testBrokenUrl( "scm:jazz:username;password@ssh://server_name/contextRoot/repositoryWorkspace" );
+ }
+
+ public void testIllegalFullHttpsURIWithBadPort()
+ throws Exception
+ {
+ testBrokenUrl( "scm:jazz:username;password@https://server_name:xxxx/contextRoot:repositoryWorkspace" );
+ }
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ private void testUrl( String scmUrl, String expectedrepositoryURI, String expectedUser, String expectedPassword,
+ String expectedHost, int expectedPort, String expectedRepositoryWorkspace )
+ throws Exception
+ {
+ // The messages are the lines returned from the ScmRepositoryException when thrown on a failure.
+ List<String> messages = scmManager.validateScmRepository( scmUrl );
+ assertEquals( "Excepected zero messages back from URL Validation, but got: " + messages.size() + " messages. Contents = " + messages, 0, messages.size() );
+
+ // Get an instance of the JazzScmProviderRepository, parsing the URL as we go.
+ ScmRepository repository = scmManager.makeScmRepository( scmUrl );
+
+ assertNotNull( "ScmManager.makeScmRepository() returned null!", repository );
+
+ assertNotNull( "The provider repository was null!", repository.getProviderRepository() );
+
+ assertTrue( "The SCM Repository isn't a " + JazzScmProviderRepository.class.getName() + "!",
+ repository.getProviderRepository() instanceof JazzScmProviderRepository );
+
+ // Now that we have it, query the rest of the jazz specific values.
+ JazzScmProviderRepository providerRepository = (JazzScmProviderRepository) repository.getProviderRepository();
+
+ assertEquals( "The URI is incorrect!", expectedrepositoryURI, providerRepository.getRepositoryURI() );
+
+ assertEquals( "The URI string is incorrect!", "jazz:" + expectedrepositoryURI + ":" + expectedRepositoryWorkspace, repository.toString() );
+
+ assertEquals( "The user is incorrect!", expectedUser, providerRepository.getUser() );
+
+ assertEquals( "The password is incorrect!", expectedPassword, providerRepository.getPassword() );
+
+ assertEquals( "The host is incorrect!", expectedHost,
+ ( (JazzScmProviderRepository) repository.getProviderRepository() ).getHost() );
+
+ if (expectedPort > 0)
+ {
+ assertEquals( "The port is incorrect!", expectedPort, providerRepository.getPort() );
+ }
+
+ assertEquals( "The RepositoryWorkspace is incorrect!", expectedRepositoryWorkspace, providerRepository.getRepositoryWorkspace() );
+ }
+
+ private void testBrokenUrl( String scmUrl )
+ {
+ try
+ {
+ ScmRepository repository = scmManager.makeScmRepository( scmUrl );
+ fail( "The expected ScmRepositoryException did not occur! " + repository );
+ }
+ catch (ScmRepositoryException expected)
+ {
+ // This is the expected behaviour, so we do nothing.
+ }
+ catch ( NoSuchScmProviderException unexpected )
+ {
+ fail( "Unexpected failure! " + unexpected.getMessage() );
+ }
+ }
+}
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepositoryTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepositoryTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/pom.xml
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/pom.xml?rev=1329106&r1=1329105&r2=1329106&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/pom.xml (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/pom.xml Mon Apr 23 07:45:33 2012
@@ -30,7 +30,7 @@
<artifactId>maven-scm-provider-gittest</artifactId>
- <name>Maven SCM git Provider TCK Tests</name>
+ <name>Maven SCM Git Provider TCK Tests</name>
<description>Tests library for SCM Git Provider.</description>
<dependencies>
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-standard/pom.xml
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-standard/pom.xml?rev=1329106&r1=1329105&r2=1329106&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-standard/pom.xml (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-standard/pom.xml Mon Apr 23 07:45:33 2012
@@ -104,5 +104,10 @@
<artifactId>maven-scm-provider-integrity</artifactId>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-jazz</artifactId>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</project>
Modified: maven/scm/trunk/maven-scm-providers/pom.xml
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/pom.xml?rev=1329106&r1=1329105&r2=1329106&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/pom.xml (original)
+++ maven/scm/trunk/maven-scm-providers/pom.xml Mon Apr 23 07:45:33 2012
@@ -50,6 +50,7 @@
<module>maven-scm-provider-vss</module>
<module>maven-scm-provider-tfs</module>
<module>maven-scm-provider-integrity</module>
+ <module>maven-scm-provider-jazz</module>
</modules>
<dependencyManagement>
Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java?rev=1329106&r1=1329105&r2=1329106&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java Mon Apr 23 07:45:33 2012
@@ -19,12 +19,6 @@ package org.apache.maven.scm;
* under the License.
*/
-import org.apache.maven.scm.command.add.AddScmResult;
-import org.apache.maven.scm.command.checkout.CheckOutScmResult;
-import org.apache.maven.scm.provider.ScmProvider;
-import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.util.StringUtils;
-
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
@@ -32,6 +26,13 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.repository.ScmRepository;
+import org.codehaus.plexus.util.StringUtils;
+
/**
* <p/>
* Base class for all TcK tests.
@@ -57,7 +58,7 @@ public abstract class ScmTckTestCase
private List<String> scmFileNames;
/**
- * @return A provider spesific and valid url for the repository
+ * @return A provider specific and valid url for the repository
* @throws Exception if any
*/
public abstract String getScmUrl()
@@ -106,16 +107,16 @@ public abstract class ScmTckTestCase
scmRepository = null;
- initRepo();
-
- checkOut( getWorkingCopy(), getScmRepository() );
-
scmFileNames = new ArrayList<String>( 4 );
scmFileNames.add( "/pom.xml" );
scmFileNames.add( "/readme.txt" );
scmFileNames.add( "/src/main/java/Application.java" );
scmFileNames.add( "/src/test/java/Test.java" );
+ initRepo();
+
+ checkOut( getWorkingCopy(), getScmRepository() );
+
Iterator<String> it = getScmFileNames().iterator();
while ( it.hasNext() )
{
@@ -124,6 +125,29 @@ public abstract class ScmTckTestCase
}
/**
+ * This method is available to those SCM clients that need to perform
+ * a cleanup at the end of the tests. It is needed when server side
+ * operations are performed, or the check out dirs are outside
+ * of the normal target directory.
+ */
+ public void removeRepo()
+ throws Exception
+ {
+ }
+
+ /**
+ * Provided to allow removeRepo() to be called.
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown()
+ throws Exception
+ {
+ super.tearDown();
+ removeRepo();
+ }
+
+ /**
* Convenience method to get the ScmRepository for this provider
*/
protected ScmRepository getScmRepository()
@@ -138,7 +162,7 @@ public abstract class ScmTckTestCase
}
/**
- * Convenience method to checkout files from the repository
+ * Convenience method to check out files from the repository
*/
protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository repository )
throws Exception
@@ -153,6 +177,20 @@ public abstract class ScmTckTestCase
}
/**
+ * Convenience method to check in files to the repository
+ */
+ protected CheckInScmResult checkIn( File workingDirectory, ScmRepository repository )
+ throws Exception
+ {
+ CheckInScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
+ .checkIn( repository, new ScmFileSet( workingDirectory ), (ScmVersion) null, "Initial Checkin" );
+
+ assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
+
+ return result;
+ }
+
+ /**
* Convenience method to add a file to the working tree at the working directory
*/
protected void addToWorkingTree( File workingDirectory, File file, ScmRepository repository )
Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java?rev=1329106&r1=1329105&r2=1329106&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java Mon Apr 23 07:45:33 2012
@@ -41,7 +41,7 @@ import java.util.TimeZone;
* extend this class while tck test would extend ScmTckTestCase.
* <br>
* This class basically defines default locations for the
- * test enviroment and implements convenience methods.
+ * test environment and implements convenience methods.
*
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id$
Modified: maven/scm/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/scm/trunk/pom.xml?rev=1329106&r1=1329105&r2=1329106&view=diff
==============================================================================
--- maven/scm/trunk/pom.xml (original)
+++ maven/scm/trunk/pom.xml Mon Apr 23 07:45:33 2012
@@ -243,6 +243,11 @@
<artifactId>maven-scm-provider-tfs</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-jazz</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<!-- end providers declaration -->
<!-- Plexus -->
Added: maven/scm/trunk/src/site/apt/jazz.apt
URL: http://svn.apache.org/viewvc/maven/scm/trunk/src/site/apt/jazz.apt?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/src/site/apt/jazz.apt (added)
+++ maven/scm/trunk/src/site/apt/jazz.apt Mon Apr 23 07:45:33 2012
@@ -0,0 +1,197 @@
+ ------
+ SCM Implementation: Jazz
+ ------
+ Chris Graham
+ --------------
+ 2012-03-19
+ --------------
+
+ ~~ Licensed to the Apache Software Foundation (ASF) under one
+ ~~ or more contributor license agreements. See the NOTICE file
+ ~~ distributed with this work for additional information
+ ~~ regarding copyright ownership. The ASF licenses this file
+ ~~ to you under the Apache License, Version 2.0 (the
+ ~~ "License"); you may not use this file except in compliance
+ ~~ with the License. You may obtain a copy of the License at
+ ~~
+ ~~ http://www.apache.org/licenses/LICENSE-2.0
+ ~~
+ ~~ Unless required by applicable law or agreed to in writing,
+ ~~ software distributed under the License is distributed on an
+ ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~~ KIND, either express or implied. See the License for the
+ ~~ specific language governing permissions and limitations
+ ~~ under the License.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/doxia/references/apt-format.html
+
+SCM Implementation: Jazz
+
+* General Info
+
+ This SCM provider wrappers the underlying command line tool "scm" that is provided as part of Jazz SCM offering.
+ As such, this provider is subject to the capabilities provided by the scm tool.
+
+ The scm tool itself is documented at:
+
+ *V2.0.0 {{http://publib.boulder.ibm.com/infocenter/rtc/v2r0m0/topic/com.ibm.team.scm.doc/topics/r_scm_cli_scm.html}}
+
+ *V3.0 {{http://publib.boulder.ibm.com/infocenter/clmhelp/v3r0/topic/com.ibm.team.scm.doc/topics/r_scm_cli_scm.html}}
+
+ * V3.0.1 {{http://publib.boulder.ibm.com/infocenter/clmhelp/v3r0m1/topic/com.ibm.team.scm.doc/topics/r_scm_cli_scm.html}}
+
+ []
+
+ Jazz is available from:
+
+ Link: {{http://jazz.net/}}
+
+ License: Free
+
+ IBM Rational Team Concert is IBM commercial offering based upon the Jazz base platform. This provider may
+ also be used with RTC.
+
+ Link: {{http://www-01.ibm.com/software/rational/products/rtc/}}
+
+ License: Commercial
+
+* Environment Configuration
+
+ The Jazz SCM source control command line tools are installed in JazzInstallDir/scmtools/eclipse,
+ which may not have been added to your default path. You must make sure that this path is available to maven when
+ using this provider.
+
+ Additionally, the user used to log onto the Jazz SCM server must be assigned a
+ {{{http://publib.boulder.ibm.com/infocenter/clmhelp/v3r0m1/topic/com.ibm.jazz.repository.web.admin.doc/topics/c_license_mgmt_over.html}Developer Client Access License}}.
+ 10 developer licenses are available for free from {{http://jazz.net/}}.
+
+* SCM URL
+
+ <<<scm:jazz:[username[;password]@]http[s]://server_name[:port]/jazzPath:repositoryWorkspace>>>
+
+ * <username;password> May be provided directly in the pom, or using the server_name:port to obtain
+ the details from the user's settings.xml file.
+
+ * http[s]://server_name:port/jazzPath Specify the jazz server and path to connect to.
+
+ * <repositoryWorkspace> The name of the user's remote repository workspace used to checkin to, or load from.
+
+ []
+
++-------
+scm:jazz:[username[;password]@]http[s]://server_name[:port]/jazzPath:repositoryWorkspace
++-------
+
+* Examples
+
+-------
+scm:jazz:username;password@https://server.name:9443/jazz:Chris's Repository Workspace
+-------
+
+-------
+scm:jazz:https://server.name:9443/jazz:Chris's Repository Workspace
+-------
+
+-------
+scm:jazz:https://server.name:9443/ccm:GPDBBuildWorkspace
+-------
+
+* Jazz SCM Concepts and Artefacts
+
+ This provider only interacts with Jazz SCM, not all of the full capabilities of the full
+ Jazz Server. This implementation is basically a wrapper for the Jazz SCM CLI tool, <<<scm>>>,
+ and as such it is limited to the functionality provided by the underlying <<<scm>>> tool.
+
+ There are many artifacts and concepts in Jazz SCM. Many of these artifacts and concepts are
+ substantially different than how many other SCM providers work.
+
+ We need some way to address these when we try to map the given maven-scm framework to Jazz SCM.
+ Below is a list of these "artifacts / concepts" and roughly how they relate to the maven-scm framework.
+
+ * Local Workspace
+
+ * This corresponds to fileSet.getBasedir() and is the "baseDirectory" in which the SCM goals are performed against.
+
+ * Url Path (ex: https://localhost)
+
+ * This must be specified in the "SCM URL" of the pom.xml.
+
+ * It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
+
+ * Port (ex: 9443)
+
+ * This must be specified in the "SCM URL" of the pom.xml.
+
+ * It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
+
+ * Jazz Path (ex: /jazz)
+
+ * This must be specified in the "SCM URL" of the pom.xml.
+
+ * It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
+
+ * Repository Workspace
+
+ * This must be specified in the "SCM URL" of the pom.xml.
+
+ * It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
+
+ * Username
+
+ * This may be specified in the "SCM URL" of the pom.xml.
+
+ * If not specified in the pom.xml, the username must be specified in a server entry of settings.xml.
+
+ * It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
+
+ * Password
+
+ * This may be specified in the "SCM URL" of the pom.xml.
+
+ * If not specified in the pom.xml, the username must be specified in a server entry of settings.xml.
+
+ * It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java
+
+ * Components
+
+ * There is currently no concept of individual components in our implementation, or specifying them,
+ they are implicitly obtained from the repository workspace.
+
+ * Scm goals are currently assumed to be against all components in the repository workspace.
+
+ * Baselines
+
+ * Since we don't distinguish components, we do not use the concept of baselines.
+
+ * Snapshots
+
+ * We can use snapshots because we have a repository workspace defined in the SCM URL.
+
+ * We assume that ScmVersion.getName() will correspond to a snapshot name.
+
+ * Streams
+
+ * We currently do not support the concept of streams in our provider.
+
+ * Project Areas
+
+ * We currently do not support the concept of project areas in our provider.
+
+ * Team Areas
+
+ * We currently do not support the concept of team areas in our provider.
+
+ * Multiple Outgoing Change Sets
+
+ * The SCM add operation performs a checkin, but it does not create a new change set.
+
+ * The SCM checkin operation creates a new changeset, with the given comment and then checks the files in.
+
+ * Delivering Change Sets
+
+ * Changes are delivered/promoted as controlled by the <<<pushChanges>>> flag when we have a valid flow target.
+
+ * Discarding Change Sets
+
+ * We currently do not support the concept of discarding change sets in our provider.
Propchange: maven/scm/trunk/src/site/apt/jazz.apt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/src/site/apt/jazz.apt
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/scm/trunk/src/site/site.xml
URL: http://svn.apache.org/viewvc/maven/scm/trunk/src/site/site.xml?rev=1329106&r1=1329105&r2=1329106&view=diff
==============================================================================
--- maven/scm/trunk/src/site/site.xml (original)
+++ maven/scm/trunk/src/site/site.xml Mon Apr 23 07:45:33 2012
@@ -56,6 +56,7 @@
<item name="CM Synergy" href="/synergy.html"/>
<item name="CVS" href="/cvs.html"/>
<item name="Git" href="/git.html"/>
+ <item name="Jazz" href="/jazz.html"/>
<item name="Local" href="/local.html"/>
<item name="Perforce" href="/perforce.html"/>
<item name="StarTeam" href="/starteam.html"/>
Modified: maven/scm/trunk/src/site/xdoc/matrix.xml
URL: http://svn.apache.org/viewvc/maven/scm/trunk/src/site/xdoc/matrix.xml?rev=1329106&r1=1329105&r2=1329106&view=diff
==============================================================================
--- maven/scm/trunk/src/site/xdoc/matrix.xml (original)
+++ maven/scm/trunk/src/site/xdoc/matrix.xml Mon Apr 23 07:45:33 2012
@@ -27,7 +27,7 @@ under the License.
<body>
<section name="Maven SCM Providers Matrix">
- <p>This matrix presents all SCM providers acutally supported by the Maven SCM project.</p>
+ <p>This matrix presents all SCM providers actually supported by the Maven SCM project.</p>
<table>
<tbody>
<tr>
@@ -51,704 +51,1010 @@ under the License.
<th> Pure Java </th>
</tr>
<tr>
+ <!-- SCM -->
<td> Bazaar </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> Clearcase </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> CM Synergy </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> CVS </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> CVS (Pure Java client) </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/check.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> GIT </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
+ <td> Jazz </td>
+ <td>
+ <!-- add -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- blame -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- branch -->
+ <img src="./images/error.gif" />
+ </td>
+ <td>
+ <!-- changelog -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- checkin -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- checkout -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- diff -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- edit -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- export -->
+ <img src="./images/forbidden.gif" />
+ </td>
+ <td>
+ <!-- list -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- login -->
+ <img src="./images/error.gif" />
+ </td>
+ <td>
+ <!-- remove -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- status -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- tag -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- unedit -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- update -->
+ <img src="./images/check.gif" />
+ </td>
+ <td>
+ <!-- Pure Java -->
+ <img src="./images/error.gif" />
+ </td>
+ </tr>
+ <tr>
+ <!-- SCM -->
<td> Local </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/check.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> Mercurial (hg) </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> Microsoft TFS </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> Microsoft VSS </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> Perforce </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> Starteam </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/error.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>
<tr>
+ <!-- SCM -->
<td> Subversion </td>
<td>
+ <!-- add -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- blame -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- branch -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- changelog -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkin -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- checkout -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- diff -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- edit -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- export -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- list -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- login -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- remove -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- status -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- tag -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- unedit -->
<img src="./images/forbidden.gif" />
</td>
<td>
+ <!-- update -->
<img src="./images/check.gif" />
</td>
<td>
+ <!-- Pure Java -->
<img src="./images/error.gif" />
</td>
</tr>