Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 182994 Details for
Bug 326926
API to configure and import SCM URLs
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Fix v02
patch-bug326926-v02.txt (text/plain), 21.31 KB, created by
Tomasz Zarna
on 2010-11-12 09:03:30 EST
(
hide
)
Description:
Fix v02
Filename:
MIME Type:
Creator:
Tomasz Zarna
Created:
2010-11-12 09:03:30 EST
Size:
21.31 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.pde.core >Index: src/org/eclipse/pde/internal/core/importing/CvsBundleImportDescription.java >=================================================================== >RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/importing/CvsBundleImportDescription.java,v >retrieving revision 1.2 >diff -u -r1.2 CvsBundleImportDescription.java >--- src/org/eclipse/pde/internal/core/importing/CvsBundleImportDescription.java 2 Mar 2010 16:56:13 -0000 1.2 >+++ src/org/eclipse/pde/internal/core/importing/CvsBundleImportDescription.java 12 Nov 2010 13:49:11 -0000 >@@ -10,9 +10,9 @@ > *******************************************************************************/ > package org.eclipse.pde.internal.core.importing; > >-import org.eclipse.pde.internal.core.importing.provisional.BundleImportDescription; >- >+import java.net.URI; > import java.util.Map; >+import org.eclipse.pde.internal.core.importing.provisional.BundleImportDescription; > > /** > * Describes a bundle to be imported by CVS. >@@ -20,6 +20,12 @@ > */ > public class CvsBundleImportDescription extends BundleImportDescription { > >+ /** >+ * Property key used in {@link BundleImportDescription}s. >+ * @since 3.7 >+ */ >+ public static final String SCM_URL = "SCM_URL"; //$NON-NLS-1$ >+ > String tag; > String server; > String path; >@@ -63,4 +69,21 @@ > return protocol; > } > >+ public URI getURI() { >+ return (URI) getProperty(SCM_URL); >+ } >+ >+ public URI toURI() { >+ URI uri = getURI(); >+ if (uri != null) { >+ if (tag == null) { >+ String s = uri.toString(); >+ // TODO: false? assumption that the 'tag' parameter is always the last one >+ s = s.substring(0, s.indexOf(";tag=")); >+ uri = URI.create(s); >+ } >+ } >+ return uri; >+ } >+ > } >Index: src/org/eclipse/pde/internal/core/importing/CvsBundleImporterDelegate.java >=================================================================== >RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/importing/CvsBundleImporterDelegate.java,v >retrieving revision 1.2 >diff -u -r1.2 CvsBundleImporterDelegate.java >--- src/org/eclipse/pde/internal/core/importing/CvsBundleImporterDelegate.java 2 Mar 2010 16:56:13 -0000 1.2 >+++ src/org/eclipse/pde/internal/core/importing/CvsBundleImporterDelegate.java 12 Nov 2010 13:49:12 -0000 >@@ -10,15 +10,16 @@ > *******************************************************************************/ > package org.eclipse.pde.internal.core.importing; > >-import org.eclipse.pde.internal.core.importing.provisional.BundleImportDescription; >-import org.eclipse.pde.internal.core.importing.provisional.IBundleImporterDelegate; >- >+import java.net.URI; >+import java.net.URISyntaxException; > import java.util.*; > import org.eclipse.core.resources.IProject; > import org.eclipse.core.runtime.*; > import org.eclipse.osgi.util.ManifestElement; > import org.eclipse.pde.internal.core.ICoreConstants; > import org.eclipse.pde.internal.core.PDECore; >+import org.eclipse.pde.internal.core.importing.provisional.BundleImportDescription; >+import org.eclipse.pde.internal.core.importing.provisional.IBundleImporterDelegate; > import org.eclipse.team.core.*; > import org.osgi.framework.BundleException; > import org.osgi.framework.Constants; >@@ -86,9 +87,12 @@ > } > } > results[i] = createImportDescription(url, manifest, tag, project); >+ results[i].setProperty(CvsBundleImportDescription.SCM_URL, new URI(value)); > } > } catch (BundleException e) { > PDECore.log(e); >+ } catch (URISyntaxException e) { >+ PDECore.log(e); > } > } > } >@@ -102,14 +106,15 @@ > */ > public IProject[] performImport(BundleImportDescription[] descriptions, IProgressMonitor monitor) throws CoreException { > List references = new ArrayList(); >+ ProjectSetCapability psfCapability = CVS_PROVIDER_TYPE.getProjectSetCapability(); > // collect and validate all header values > for (int i = 0; i < descriptions.length; i++) { >- references.add(createPSF((CvsBundleImportDescription) descriptions[i])); >+ CvsBundleImportDescription description = (CvsBundleImportDescription) descriptions[i]; >+ references.add(psfCapability.asReference(description.toURI(), description.getProject())); > } > // create projects > if (!references.isEmpty()) { > SubMonitor subMonitor = SubMonitor.convert(monitor, references.size()); >- ProjectSetCapability psfCapability = CVS_PROVIDER_TYPE.getProjectSetCapability(); > if (psfCapability != null) { > // TODO: specify shell > psfCapability.addToWorkspace((String[]) references.toArray(new String[references.size()]), new ProjectSetSerializationContext(), subMonitor); >@@ -168,33 +173,4 @@ > return new CvsBundleImportDescription(project, manifest, protocol, server, path, module, tag); > } > >- /** >- * Constructs a CVS project set import description from an SCMURL. >- * >- * @param url >- * @param tag attribute value or <code>null</code> >- * @param project suggested project name or <code>null</code> >- * @return corresponding CVS project set reference >- */ >- private String createPSF(CvsBundleImportDescription description) { >- // format is 1.0,protocol:host:cvs folder,project name [, tag] >- StringBuffer buffer = new StringBuffer(); >- buffer.append("1.0,:"); //$NON-NLS-1$ >- buffer.append(description.protocol); // protocol >- buffer.append(COLON); >- buffer.append(description.server); >- buffer.append(COLON); >- buffer.append(description.path); >- buffer.append(','); >- buffer.append(description.module); >- buffer.append(','); >- buffer.append(description.getProject()); >- String tag = description.tag; >- if (tag != null) { >- buffer.append(','); >- buffer.append(tag); >- } >- return buffer.toString(); >- } >- > } >#P org.eclipse.team.cvs.core >Index: src/org/eclipse/team/internal/ccvs/core/CVSProjectSetCapability.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProjectSetCapability.java,v >retrieving revision 1.28 >diff -u -r1.28 CVSProjectSetCapability.java >--- src/org/eclipse/team/internal/ccvs/core/CVSProjectSetCapability.java 11 Feb 2010 11:09:01 -0000 1.28 >+++ src/org/eclipse/team/internal/ccvs/core/CVSProjectSetCapability.java 12 Nov 2010 13:49:42 -0000 >@@ -629,7 +629,13 @@ > CVSURI cvsURI = CVSURI.fromUri(uri); > ICVSRepositoryLocation location = cvsURI.getRepository(); > ICVSFolder folder = cvsURI.toFolder(); >- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); >+ // TODO: use project name from CVS URI if specified >+ IProject project = ResourcesPlugin >+ .getWorkspace() >+ .getRoot() >+ .getProject( >+ cvsURI.getProjectName() != null ? cvsURI >+ .getProjectName() : projectName); > return asReference((CVSRepositoryLocation)location, folder, project); > } catch (TeamException e) { > CVSProviderPlugin.log(e); >Index: src/org/eclipse/team/internal/ccvs/core/filesystem/CVSURI.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/filesystem/CVSURI.java,v >retrieving revision 1.15 >diff -u -r1.15 CVSURI.java >--- src/org/eclipse/team/internal/ccvs/core/filesystem/CVSURI.java 4 Jun 2007 14:58:55 -0000 1.15 >+++ src/org/eclipse/team/internal/ccvs/core/filesystem/CVSURI.java 12 Nov 2010 13:49:42 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2010 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -24,47 +24,95 @@ > > public class CVSURI { > >- private static final String SCHEME = "cvs"; //$NON-NLS-1$ >+ private static final String SCHEME_CVS = "cvs"; //$NON-NLS-1$ >+ private static final String SCHEME_SCM = "scm"; //$NON-NLS-1$ > private final ICVSRepositoryLocation repository; > private final IPath path; > private final CVSTag tag; > private final String revision; >+ private final String projectName; > > /** >- * Convert the given URI to a CVSURI. There are two supported formats: the >- * original opaque format and a newer hierarchical format. >+ * Convert the given URI to a CVSURI. There are three supported formats: the >+ * original opaque format, a newer hierarchical format and a CVS SCM URL >+ * format. >+ * >+ * In the last format, as delimiter you can use either colon ':' or, if you >+ * use a colon for one of the variables (e.g. a windows path), a pipe '|'. >+ * For more information visit http://maven.apache.org/scm/cvs.html. >+ * > * <ul> > * <li>cvs://[:]method:user[:password]@host:[port]/root/path#project/path[,tagName]</li> > * <li>cvs://_method_user[_password]~host_[port]!root!path/project/path[?<version,branch,date,revision>=tagName]</li> >+ * <li>scm:cvs<delimiter>method<delimiter>[user[<delimiter>password]@]host[<delimiter>port]<delimiter>/root/path<delimiter>project/path[;project="projectName"][;tag=tagName]</li> > * </ul> >- * @param uri the URI >+ * >+ * @param uri >+ * the URI > * @return a CVS URI > */ > public static CVSURI fromUri(URI uri) { > try { >+ if (SCHEME_SCM.equals(uri.getScheme())) { >+ uri = convert(uri); >+ } >+ > ICVSRepositoryLocation repository = getRepository(uri); > if (repository != null) { > IPath path = new Path(null, uri.getPath()); > CVSTag tag = getTag(uri); > String revision = getRevision(uri); >- return new CVSURI(repository, path, tag, revision); >+ String projectName = getProjectName(uri); >+ return new CVSURI(repository, path, tag, revision, projectName); > } else { > repository = getOldRepository(uri); > IPath path = getOldPath(uri); > CVSTag tag = getOldTag(uri); >- return new CVSURI(repository, path, tag); >+ String projectName = getProjectName(uri); >+ return new CVSURI(repository, path, tag, projectName); > } > } catch (CVSException e) { > CVSProviderPlugin.log(e); > throw new IllegalArgumentException(NLS.bind(CVSMessages.CVSURI_InvalidURI, new String[] {uri.toString(), e.getMessage()})); >+ } catch (URISyntaxException e) { >+ throw new IllegalArgumentException(NLS.bind(CVSMessages.CVSURI_InvalidURI, new String[] {uri.toString(), e.getMessage()})); > } > } >- >+ >+ private static URI convert(URI uri) throws URISyntaxException { >+ StringBuffer sb = new StringBuffer(); >+ String ssp = uri.getSchemeSpecificPart(); >+ if (ssp.startsWith(SCHEME_CVS + ":")) { >+ // sb.append(SCHEME_CVS + "://"); >+ // ssp = ssp.substring((SCHEME_CVS + ":").length()); >+ } >+ int i = ssp.lastIndexOf("|"); >+ if (i != -1) { >+ sb.append(ssp.substring(0, i)).append("#").append(ssp.substring(i + 1)); >+ } else { >+ i = ssp.lastIndexOf(":"); >+ sb.append(ssp.substring(0, i)).append("#").append(ssp.substring(i + 1)); >+ } >+ >+ i = sb.indexOf(";project="); >+ if (i != -1) >+ sb.replace(i, i + ";project=".length(), ","); >+ // TODO: see https://bugs.eclipse.org/bugs/show_bug.cgi?id=326926#c2 >+ i = sb.indexOf(";tag="); // PDE way of providing tags >+ if (i != -1) >+ sb.replace(i, i + ";tag=".length(), ",version="); >+ return new URI(sb.toString()); >+ } >+ > private static CVSTag getTag(URI uri) { > String query = uri.getQuery(); > if (query == null) > return null; >- StringTokenizer tokens = new StringTokenizer(query, ","); //$NON-NLS-1$ >+ return getTag(query); >+ } >+ >+ private static CVSTag getTag(String s) { >+ StringTokenizer tokens = new StringTokenizer(s, ","); //$NON-NLS-1$ > while (tokens.hasMoreTokens()) { > String token = tokens.nextToken(); > int index = token.indexOf('='); >@@ -116,6 +164,8 @@ > > private static ICVSRepositoryLocation getRepository(URI uri) throws CVSException { > String authority = uri.getAuthority(); >+ if (authority == null) >+ return null; > if (authority.indexOf('/') != -1) > return null; > if (authority.indexOf('!') == -1) >@@ -123,13 +173,20 @@ > authority = decodeAuthority(authority); > return CVSRepositoryLocation.fromString(authority); > } >- >+ >+ private static String getProjectName(URI uri) { >+ return null; >+ } >+ > private static CVSTag getOldTag(URI uri) { > String f = uri.getFragment(); > int i = f.indexOf(','); > if (i == -1) { > return CVSTag.DEFAULT; > } >+ CVSTag tag = getTag(f.substring(i + 1)); >+ if (tag != null) >+ return tag; > > return CVSTag.DEFAULT;//just use HEAD for now (name, CVSTag.BRANCH); > } >@@ -152,10 +209,14 @@ > } > > public CVSURI(ICVSRepositoryLocation repository, IPath path, CVSTag tag) { >- this(repository, path, tag, null); >+ this(repository, path, tag, null, null); > } > > public CVSURI(ICVSRepositoryLocation repository, IPath path, CVSTag tag, String revision) { >+ this(repository, path, tag, revision, null); >+ } >+ >+ public CVSURI(ICVSRepositoryLocation repository, IPath path, CVSTag tag, String revision, String projectName) { > this.repository = repository; > this.path = path; > this.tag = tag; >@@ -163,8 +224,9 @@ > this.revision = revision; > else > this.revision = null; >+ this.projectName = projectName; > } >- >+ > public CVSURI append(String name) { > return new CVSURI(repository, path.append(name), tag); > } >@@ -197,7 +259,7 @@ > query = query + "," + string; //$NON-NLS-1$ > } > } >- return new URI(SCHEME, authority, pathString, query, null); >+ return new URI(SCHEME_CVS, authority, pathString, query, null); > } catch (URISyntaxException e) { > CVSProviderPlugin.log(IStatus.ERROR, NLS.bind("An error occurred while creating a URI for {0} {1}", repository, path), e); //$NON-NLS-1$ > throw new IllegalStateException(e.getMessage()); >@@ -305,4 +367,8 @@ > public String getRevision() { > return revision; > } >+ >+ public String getProjectName() { >+ return projectName; >+ } > } >#P org.eclipse.team.tests.cvs.core >Index: src/org/eclipse/team/tests/ccvs/core/cvsresources/CVSURITest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/CVSURITest.java,v >retrieving revision 1.4 >diff -u -r1.4 CVSURITest.java >--- src/org/eclipse/team/tests/ccvs/core/cvsresources/CVSURITest.java 28 May 2008 17:58:19 -0000 1.4 >+++ src/org/eclipse/team/tests/ccvs/core/cvsresources/CVSURITest.java 12 Nov 2010 13:50:13 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2006, 2008 IBM Corporation and others. >+ * Copyright (c) 2006, 2010 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -17,6 +17,7 @@ > import junit.framework.TestSuite; > > import org.eclipse.team.internal.ccvs.core.CVSException; >+import org.eclipse.team.internal.ccvs.core.CVSProjectSetCapability; > import org.eclipse.team.internal.ccvs.core.CVSTag; > import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation; > import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation; >@@ -116,4 +117,93 @@ > assertEquals(cvsUri.toURI(), uri); > } > >+ // CVS SCM URL tests, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=231190 >+ public void testRealLifeScmUriWithTag() throws CVSException { >+ URI uri = URI.create("scm:cvs:pserver:dev.eclipse.org:/cvsroot/eclipse:org.eclipse.team.cvs.core;tag=I20100912-2000"); >+ CVSURI cvsUri = CVSURI.fromUri(uri); >+ assertEquals("org.eclipse.team.cvs.core", cvsUri.getPath().toString()); >+ CVSRepositoryLocation location = CVSRepositoryLocation.fromString(":pserver:dev.eclipse.org:/cvsroot/eclipse"); >+ assertEquals(cvsUri.getRepository().getLocation(false), location.getLocation(false)); >+ assertEquals(cvsUri.getTag(), new CVSTag("I20100912-2000", CVSTag.VERSION)); >+ >+ String refString = new CVSProjectSetCapability().asReference(uri, "org.eclipse.team.cvs.core"); >+ assertEquals("1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.team.cvs.core,org.eclipse.team.cvs.core,I20100912-2000", refString); >+ } >+ >+ public void testRealLifeScmUriWithVersion() throws URISyntaxException, CVSException { >+ URI uri = new URI("scm:cvs:pserver:dev.eclipse.org:/cvsroot/eclipse:org.eclipse.team.cvs.core,version=I20100912-2000"); >+ CVSURI cvsUri = CVSURI.fromUri(uri); >+ assertEquals("org.eclipse.team.cvs.core", cvsUri.getPath().toString()); >+ CVSRepositoryLocation location = CVSRepositoryLocation.fromString(":pserver:dev.eclipse.org:/cvsroot/eclipse"); >+ assertEquals(cvsUri.getRepository().getLocation(false), location.getLocation(false)); >+ assertEquals(cvsUri.getTag(), new CVSTag("I20100912-2000", CVSTag.VERSION)); >+ >+ String refString = new CVSProjectSetCapability().asReference(uri, "org.eclipse.team.cvs.core"); >+ assertEquals("1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.team.cvs.core,org.eclipse.team.cvs.core,I20100912-2000", refString); >+ } >+ >+ public void testRealLifeScmUriWithProject() throws URISyntaxException, CVSException { >+ URI uri = new URI("scm:cvs:pserver:dev.eclipse.org:/cvsroot/rt:org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6;project=\"org.eclipse.equinox.http.jetty\";tag=v20100503"); >+ CVSURI cvsUri = CVSURI.fromUri(uri); >+ assertEquals("org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6", cvsUri.getPath().toString()); >+ CVSRepositoryLocation location = CVSRepositoryLocation.fromString(":pserver:dev.eclipse.org:/cvsroot/rt"); >+ assertEquals(cvsUri.getRepository().getLocation(false), location.getLocation(false)); >+ assertEquals(cvsUri.getTag(), new CVSTag("v20100503", CVSTag.VERSION)); >+ >+ String refString = new CVSProjectSetCapability().asReference(uri, "org.eclipse.equinox.http.jetty6"); // last path segment >+ assertEquals("1.0,:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6,org.eclipse.equinox.http.jetty,v20100503", refString); >+ } >+ >+ public void testRealLifeScmUriWithoutTag() throws URISyntaxException, CVSException { >+ URI uri = new URI("scm:cvs:pserver:dev.eclipse.org:/cvsroot/eclipse:org.eclipse.team.cvs.core"); >+ CVSURI cvsUri = CVSURI.fromUri(uri); >+ assertEquals("org.eclipse.team.cvs.core", cvsUri.getPath().toString()); >+ CVSRepositoryLocation location = CVSRepositoryLocation.fromString(":pserver:dev.eclipse.org:/cvsroot/eclipse"); >+ assertEquals(cvsUri.getRepository().getLocation(false), location.getLocation(false)); >+ assertEquals(cvsUri.getTag(), CVSTag.DEFAULT); >+ >+ String refString = new CVSProjectSetCapability().asReference(uri, "org.eclipse.team.cvs.core"); >+ assertEquals("1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.team.cvs.core,org.eclipse.team.cvs.core", refString); >+ } >+ >+ // Example CVS SCM URIs from http://maven.apache.org/scm/cvs.html >+ public void testMavenScmUriExampleWithEmptyPassword() throws URISyntaxException, CVSException { >+ URI uri = new URI("scm:cvs:pserver:anoncvs:@cvs.apache.org:/cvs/root:module"); >+ CVSURI cvsUri = CVSURI.fromUri(uri); >+ assertEquals("module", cvsUri.getPath().toString()); >+ CVSRepositoryLocation location = CVSRepositoryLocation.fromString(":pserver:anoncvs:@cvs.apache.org:/cvs/root"); >+ assertEquals(cvsUri.getRepository().getLocation(false), location.getLocation(false)); >+ assertEquals(cvsUri.getTag(), CVSTag.DEFAULT); >+ >+ String refString = new CVSProjectSetCapability().asReference(uri, "module"); >+ assertEquals("1.0,:pserver:anoncvs:@cvs.apache.org:/cvs/root,module,module", refString); >+ } >+ >+ // pipes not supported yet >+ /* >+ public void testMavenScmUriExampleWithPipe() throws CVSException, URISyntaxException { >+ URI uri = new URI("scm:cvs|pserver|username@localhost|C:/Program Files/cvsnt/repositories|module_name"); >+ CVSURI cvsUri = CVSURI.fromUri(uri); >+ assertEquals("module_name", cvsUri.getPath().toString()); >+ CVSRepositoryLocation location = CVSRepositoryLocation.fromString(":pserver:username@localhost:C:/Program Files/cvsnt/repositories"); >+ assertEquals(cvsUri.getRepository().getLocation(false), location.getLocation(false)); >+ assertEquals(cvsUri.getTag(), CVSTag.DEFAULT); >+ >+ String refString = new CVSProjectSetCapability().asReference(uri, "module_name"); >+ assertEquals("1.0,:pserver:anoncvs:@cvs.apache.org:/cvs/root,C:/Program Files/cvsnt/repositories,module_name", refString); >+ } >+ */ >+ >+ public void testMavenScmUriExample() throws URISyntaxException, CVSException { >+ URI uri = new URI("scm:cvs:ext:username@cvs.apache.org:/cvs/root:module"); >+ CVSURI cvsUri = CVSURI.fromUri(uri); >+ assertEquals("module", cvsUri.getPath().toString()); >+ CVSRepositoryLocation location = CVSRepositoryLocation.fromString(":ext:username@cvs.apache.org:/cvs/root"); >+ assertEquals(cvsUri.getRepository().getLocation(false), location.getLocation(false)); >+ assertEquals(cvsUri.getTag(), CVSTag.DEFAULT); >+ >+ String refString = new CVSProjectSetCapability().asReference(uri, "module"); >+ assertEquals("1.0,:ext:username@cvs.apache.org:/cvs/root,module,module", refString); >+ } >+ > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 326926
:
182292
|
182293
|
182994
|
183958
|
184262