diff options
author | Joakim Erdfelt <joakime@apache.org> | 2007-04-03 15:21:33 +0000 |
---|---|---|
committer | Joakim Erdfelt <joakime@apache.org> | 2007-04-03 15:21:33 +0000 |
commit | 74cb10586cf7f1c415930d5ab1d59a6e44b253ee (patch) | |
tree | a6c5079ac724479adc4d6eabfb7144e38f713732 /archiva-base/archiva-model | |
parent | 54e1d8c6083cd552d9b8d3ee2d2ced20e9a6f460 (diff) | |
download | archiva-74cb10586cf7f1c415930d5ab1d59a6e44b253ee.tar.gz archiva-74cb10586cf7f1c415930d5ab1d59a6e44b253ee.zip |
Updating branch with latest work towards database refactor.
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/branches/archiva-jpox-database-refactor@525176 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-base/archiva-model')
7 files changed, 810 insertions, 18 deletions
diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java new file mode 100644 index 000000000..8e4f2c4ac --- /dev/null +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java @@ -0,0 +1,264 @@ +package org.apache.maven.archiva.model; + +/* + * 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 org.apache.maven.archiva.common.utils.VersionUtil; +import org.codehaus.plexus.util.StringUtils; + +/** + * ArchivaArtifact - Mutable artifact object. + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class ArchivaArtifact +{ + private ArchivaArtifactModel model; + + private ArchivaArtifactPlatformDetails platformDetails; + + private String baseVersion; + + private boolean snapshot = false; + + public ArchivaArtifact( String groupId, String artifactId, String version, String classifier, String type ) + { + this( null, groupId, artifactId, version, classifier, type ); + } + + public ArchivaArtifact( ArchivaRepository repository, String groupId, String artifactId, String version, + String classifier, String type ) + { + if ( empty( groupId ) ) + { + throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty groupId." ); + } + + if ( empty( artifactId ) ) + { + throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty artifactId." ); + } + + if ( empty( version ) ) + { + throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty version." ); + } + + if ( empty( type ) ) + { + throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty type." ); + } + + model = new ArchivaArtifactModel(); + + if ( repository == null ) + { + model.setContentKey( new RepositoryContent( groupId, artifactId, version ) ); + } + else + { + model.setContentKey( new RepositoryContent( repository.getModel(), groupId, artifactId, version ) ); + } + model.setClassifier( StringUtils.defaultString( classifier ) ); + model.setType( type ); + + this.snapshot = VersionUtil.isSnapshot( version ); + this.baseVersion = VersionUtil.getBaseVersion( version ); + } + + public ArchivaArtifactModel getModel() + { + return model; + } + + public String getGroupId() + { + return model.getContentKey().getGroupId(); + } + + public String getArtifactId() + { + return model.getContentKey().getArtifactId(); + } + + public String getVersion() + { + return model.getContentKey().getVersion(); + } + + public String getBaseVersion() + { + return baseVersion; + } + + public boolean isSnapshot() + { + return snapshot; + } + + public String getClassifier() + { + return model.getClassifier(); + } + + public String getType() + { + return model.getType(); + } + + public boolean hasClassifier() + { + return StringUtils.isNotEmpty( model.getClassifier() ); + } + + public int hashCode() + { + final int PRIME = 31; + int result = 1; + if ( model != null ) + { + RepositoryContent key = model.getContentKey(); + if ( key != null ) + { + result = PRIME * result + ( ( key.getGroupId() == null ) ? 0 : key.getGroupId().hashCode() ); + result = PRIME * result + ( ( key.getArtifactId() == null ) ? 0 : key.getArtifactId().hashCode() ); + result = PRIME * result + ( ( key.getVersion() == null ) ? 0 : key.getVersion().hashCode() ); + result = PRIME * result + ( ( model.getClassifier() == null ) ? 0 : model.getClassifier().hashCode() ); + result = PRIME * result + ( ( model.getType() == null ) ? 0 : model.getType().hashCode() ); + } + } + return result; + } + + public boolean equals( Object obj ) + { + if ( this == obj ) + { + return true; + } + + if ( obj == null ) + { + return false; + } + + if ( getClass() != obj.getClass() ) + { + return false; + } + + final ArchivaArtifact other = (ArchivaArtifact) obj; + + if ( model == null ) + { + if ( other.model != null ) + { + return false; + } + } + else + { + RepositoryContent key = model.getContentKey(); + RepositoryContent otherkey = other.model.getContentKey(); + + if ( key == null ) + { + if ( otherkey != null ) + { + return false; + } + } + else + { + if ( !equals( key.getGroupId(), otherkey.getGroupId() ) + || !equals( key.getArtifactId(), otherkey.getArtifactId() ) + || !equals( key.getVersion(), otherkey.getVersion() ) + || !equals( model.getClassifier(), other.model.getClassifier() ) + || !equals( model.getType(), other.model.getType() ) ) + { + return false; + } + } + } + + return true; + } + + private boolean equals( String left, String right ) + { + if ( left == null ) + { + if ( right != null ) + { + return false; + } + } + else if ( !left.equals( right ) ) + { + return false; + } + return true; + } + + public String toString() + { + StringBuffer sb = new StringBuffer(); + if ( model.getContentKey().getGroupId() != null ) + { + sb.append( model.getContentKey().getGroupId() ); + sb.append( ":" ); + } + appendArtifactTypeClassifierString( sb ); + sb.append( ":" ); + if ( model.getContentKey().getVersion() != null ) + { + sb.append( model.getContentKey().getVersion() ); + } + + return sb.toString(); + } + + private void appendArtifactTypeClassifierString( StringBuffer sb ) + { + sb.append( model.getContentKey().getArtifactId() ); + sb.append( ":" ); + sb.append( getType() ); + if ( hasClassifier() ) + { + sb.append( ":" ); + sb.append( getClassifier() ); + } + } + + private boolean empty( String value ) + { + return ( value == null ) || ( value.trim().length() < 1 ); + } + + public ArchivaArtifactPlatformDetails getPlatformDetails() + { + return platformDetails; + } + + public void setPlatformDetails( ArchivaArtifactPlatformDetails platformDetails ) + { + this.platformDetails = platformDetails; + } +} diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifactPlatformDetails.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifactPlatformDetails.java new file mode 100644 index 000000000..b63faf2fe --- /dev/null +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifactPlatformDetails.java @@ -0,0 +1,31 @@ +package org.apache.maven.archiva.model; + +/* + * 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. + */ + +/** + * A tag for objects that are considered ArchivaArtifactPlatformDetails. + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public interface ArchivaArtifactPlatformDetails +{ + public String getPlatform(); +} diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaRepository.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaRepository.java new file mode 100644 index 000000000..78c4b6648 --- /dev/null +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaRepository.java @@ -0,0 +1,134 @@ +package org.apache.maven.archiva.model; + +/* + * 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. + */ + + + +/** + * ArchivaRepository + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class ArchivaRepository +{ +// protected ArtifactRepositoryPolicy releases; +// +// protected ArtifactRepositoryPolicy snapshots; + + private ArchivaRepositoryModel model; + + private RepositoryURL url; + + protected boolean blacklisted; + + /** + * Construct a Repository. + * + * @param id the unique identifier for this repository. + * @param name the name for this repository. + * @param url the base URL for this repository (this should point to the top level URL for the entire repository) + * @param layout the layout technique for this repository. + */ + public ArchivaRepository( String id, String name, String url ) + { + model = new ArchivaRepositoryModel(); + + model.setId( id ); + model.setName( name ); + setUrl( new RepositoryURL( url ) ); + } + + /** + * Construct a Repository. + * + * @param id the unique identifier for this repository. + * @param name the name for this repository. + * @param url the base URL for this repository (this should point to the top level URL for the entire repository) + * @param layout the layout technique for this repository. + */ + public ArchivaRepository( ArchivaRepositoryModel model ) + { + this.model = model; + + this.url = new RepositoryURL( model.getUrl() ); + } + + public String getId() + { + return model.getId(); + } + + public void setUrl( RepositoryURL url ) + { + this.url = url; + model.setUrl( url.getUrl() ); + } + + public RepositoryURL getUrl() + { + return this.url; + } + + public ArchivaRepositoryModel getModel() + { + return this.model; + } + + public boolean isBlacklisted() + { + return blacklisted; + } + + public void setBlacklisted( boolean blacklisted ) + { + this.blacklisted = blacklisted; + } + +// public ArtifactRepositoryPolicy getReleases() +// { +// return releases; +// } +// +// public void setReleases( ArtifactRepositoryPolicy releases ) +// { +// this.releases = releases; +// } +// +// public ArtifactRepositoryPolicy getSnapshots() +// { +// return snapshots; +// } +// +// public void setSnapshots( ArtifactRepositoryPolicy snapshots ) +// { +// this.snapshots = snapshots; +// } + + public boolean isRemote() + { + return this.url.getProtocol().equals( "file" ); + } + + public boolean isManaged() + { + return this.url.getProtocol().equals( "file" ); + } +} diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java new file mode 100644 index 000000000..03d62307c --- /dev/null +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java @@ -0,0 +1,46 @@ +package org.apache.maven.archiva.model; + +/* + * 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 org.apache.commons.lang.StringUtils; + +/** + * DependencyScope - utility methods and constants for working with scopes. + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class DependencyScope +{ + public static final String SYSTEM = "system"; + + public static final String COMPILE = "compile"; + + public static final String PROVIDED = "provided"; + + public static final String RUNTIME = "runtime"; + + public static final String TEST = "test"; + + public static boolean isSystemScoped( Dependency dep ) + { + return StringUtils.equals( SYSTEM, dep.getScope() ); + } +} diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryURL.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryURL.java new file mode 100644 index 000000000..9141fcdc9 --- /dev/null +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/RepositoryURL.java @@ -0,0 +1,156 @@ +package org.apache.maven.archiva.model; + +/* + * 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. + */ + + +/** + * RepositoryURL - Mutable (and protocol forgiving) URL object. + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class RepositoryURL +{ + private String url; + + private String protocol; + + private String host; + + private String port; + + private String username; + + private String password; + + private String path; + + public RepositoryURL( String url ) + { + this.url = url; + + // .\ Parse the URL \.____________________________________________ + + int pos; + + pos = url.indexOf( "://" ); + if ( pos == ( -1 ) ) + { + throw new IllegalArgumentException( "Invalid URL, unable to parse protocol:// from " + url ); + } + + protocol = url.substring( 0, pos ); + + // attempt to find the start of the 'path' + pos = url.indexOf( "/", protocol.length() + 3 ); + + // no path specified - ex "http://localhost" + if ( pos == ( -1 ) ) + { + // set pos to end of string. (needed for 'middle section') + pos = url.length(); + // default path + path = "/"; + } + else + { + // get actual path. + path = url.substring( pos ); + } + + // get the middle section ( username : password @ hostname : port ) + String middle = url.substring( protocol.length() + 3, pos ); + + pos = middle.indexOf( '@' ); + + // we have an authentication section. + if ( pos > 0 ) + { + String authentication = middle.substring( 0, pos ); + middle = middle.substring( pos + 1 ); // lop off authentication for host:port search + + pos = authentication.indexOf( ':' ); + + // we have a password. + if ( pos > 0 ) + { + username = authentication.substring( 0, pos ); + password = authentication.substring( pos + 1 ); + } + else + { + username = authentication; + } + } + + pos = middle.indexOf( ':' ); + + // we have a defined port + if ( pos > 0 ) + { + host = middle.substring( 0, pos ); + port = middle.substring( pos + 1 ); + } + else + { + host = middle; + } + } + + public String toString() + { + return url; + } + + public String getUsername() + { + return username; + } + + public String getPassword() + { + return password; + } + + public String getHost() + { + return host; + } + + public String getPath() + { + return path; + } + + public String getPort() + { + return port; + } + + public String getProtocol() + { + return protocol; + } + + public String getUrl() + { + return url; + } +} diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/platform/JavaArtifactHelper.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/platform/JavaArtifactHelper.java new file mode 100644 index 000000000..1c8ffc482 --- /dev/null +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/platform/JavaArtifactHelper.java @@ -0,0 +1,44 @@ +package org.apache.maven.archiva.model.platform; + +/* + * 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 org.apache.maven.archiva.model.ArchivaArtifact; +import org.apache.maven.archiva.model.ArchivaArtifactJavaDetails; + +/** + * Utility methods for working with java platform specific ArchivaArtifacts. + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class JavaArtifactHelper +{ + public static ArchivaArtifactJavaDetails getJavaDetails( ArchivaArtifact artifact ) + { + ArchivaArtifactJavaDetails javaDetails = (ArchivaArtifactJavaDetails) artifact.getPlatformDetails(); + if ( javaDetails == null ) + { + javaDetails = new ArchivaArtifactJavaDetails(); + artifact.setPlatformDetails( javaDetails ); + } + + return javaDetails; + } +} diff --git a/archiva-base/archiva-model/src/main/mdo/archiva-base.xml b/archiva-base/archiva-model/src/main/mdo/archiva-base.xml index a6cc0fc40..101fde635 100644 --- a/archiva-base/archiva-model/src/main/mdo/archiva-base.xml +++ b/archiva-base/archiva-model/src/main/mdo/archiva-base.xml @@ -295,6 +295,13 @@ <name>ArchivaArtifactModel</name> <version>1.0.0+</version> <fields> + <!-- + NOTE TO ARCHIVA DEVELOPERS.... + + The ArchivaArtifact object should contain no platform specifics!! + Put Java specifics in the ArchivaArtifactJavaDetails object. + Put .Net specifics in the ArchivaArtifactDotNetDetails object. + --> <field> <name>contentKey</name> <identity>true</identity> @@ -349,15 +356,35 @@ </description> </field> <field> - <name>checksumBytecode</name> + <name>lastModified</name> + <identity>false</identity> + <version>1.0.0+</version> + <type>Date</type> + <required>true</required> + <description> + The Last Modified Timestamp of this artifact. + </description> + </field> + <field jpox.column="FILE_SIZE"> + <name>size</name> + <identity>false</identity> + <version>1.0.0+</version> + <type>long</type> + <required>true</required> + <description> + The size of the artifact on disk. + </description> + </field> + <field> + <name>platform</name> <identity>false</identity> <version>1.0.0+</version> <type>String</type> - <required>false</required> + <required>true</required> <description> - The SHA1 checksum for the bytecode in the artifact file. (Can be empty if - the artifact contains no bytecode) + The platform of this artifact. (default: "java") </description> + <defaultValue>java</defaultValue> </field> <field> <name>whenIndexed</name> @@ -382,6 +409,66 @@ </fields> </class> <class stash.storable="true" + jpox.table="JAVA_ARTIFACT"> + <name>ArchivaArtifactJavaDetails</name> + <interfaces> + <interface>org.apache.maven.archiva.model.ArchivaArtifactPlatformDetails</interface> + </interfaces> + <version>1.0.0+</version> + <fields> + <field> + <name>contentKey</name> + <identity>true</identity> + <version>1.0.0+</version> + <required>true</required> + <association> + <type>RepositoryContent</type> + <multiplicity>1</multiplicity> + </association> + <description> + The content key for this java artifact details. + </description> + </field> + <field> + <name>checksumBytecode</name> + <identity>false</identity> + <version>1.0.0+</version> + <type>String</type> + <required>false</required> + <description> + The SHA1 checksum for the bytecode in the artifact file. (Can be empty if + the artifact contains no bytecode) + </description> + </field> + <field> + <name>jdk</name> + <identity>false</identity> + <version>1.0.0+</version> + <type>String</type> + <required>false</required> + <description> + The JDK revision of the bytecode. (Can be empty if the artifact contains no bytecode) + </description> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>1.0.0+</version> + <code><![CDATA[ + /** + * Identify this implementation as a set of java details. + * + * @return the Java platform string + */ + public String getPlatform() + { + return "java"; + } + ]]></code> + </codeSegment> + </codeSegments> + </class> + <class stash.storable="true" jpox.table="REPOSITORY_METADATA"> <name>ArchivaRepositoryMetadata</name> <version>1.0.0+</version> @@ -423,23 +510,33 @@ </description> </field> <field> - <name>whenIndexed</name> + <name>lastModified</name> <identity>false</identity> <version>1.0.0+</version> <type>Date</type> - <required>false</required> + <required>true</required> <description> - The timestamp when this artifact was indexed. + The Last Modified Timestamp of this artifact. + </description> + </field> + <field jpox.column="FILE_SIZE"> + <name>size</name> + <identity>false</identity> + <version>1.0.0+</version> + <type>long</type> + <required>true</required> + <description> + The size of the artifact on disk. </description> </field> <field> - <name>lastUpdated</name> + <name>whenIndexed</name> <identity>false</identity> <version>1.0.0+</version> <type>Date</type> <required>false</required> <description> - the timestamp when this artifact was indexed. + The timestamp when this artifact was indexed. </description> </field> <field> @@ -506,6 +603,26 @@ </description> </field> <field> + <name>name</name> + <identity>false</identity> + <version>1.0.0+</version> + <required>false</required> + <type>String</type> + <description> + The name of this project. + </description> + </field> + <field> + <name>description</name> + <identity>false</identity> + <version>1.0.0+</version> + <required>false</required> + <type>String</type> + <description> + The description of this project. + </description> + </field> + <field> <name>origin</name> <identity>false</identity> <version>1.0.0+</version> @@ -953,14 +1070,14 @@ <fields> <field> <name>groupId</name> - <version>4.0.0</version> + <version>1.0.0+</version> <description><![CDATA[The group ID of the project to exclude.]]></description> <type>String</type> <required>true</required> </field> <field> <name>artifactId</name> - <version>4.0.0</version> + <version>1.0.0+</version> <description><![CDATA[The artifact ID of the project to exclude.]]></description> <type>String</type> <required>true</required> @@ -974,7 +1091,7 @@ <fields> <field jpox.column="SCM_URL"> <name>connection</name> - <version>1.0.0</version> + <version>1.0.0+</version> <description><![CDATA[ The source control management system URL that describes the repository and how to connect to the @@ -987,7 +1104,7 @@ </field> <field> <name>developerConnection</name> - <version>1.0.0</version> + <version>1.0.0+</version> <description><![CDATA[ Just like <code>connection</code>, but for developers, i.e. this scm connection will not be read only. @@ -996,7 +1113,7 @@ </field> <field> <name>url</name> - <version>1.0.0</version> + <version>1.0.0+</version> <description> <![CDATA[The URL to the project's browsable SCM repository, such as ViewVC or Fisheye.]]></description> <type>String</type> @@ -1010,7 +1127,7 @@ <fields> <field> <name>id</name> - <version>4.0.0</version> + <version>1.0.0+</version> <description><![CDATA[ A unique identifier for a repository. This is used to match the repository to configuration in the <code>settings.xml</code> file, for example. @@ -1019,7 +1136,7 @@ </field> <field> <name>name</name> - <version>4.0.0</version> + <version>1.0.0+</version> <description><![CDATA[ Human readable name of the repository. ]]></description> @@ -1027,7 +1144,7 @@ </field> <field> <name>url</name> - <version>4.0.0</version> + <version>1.0.0+</version> <description><![CDATA[ The url of the repository, in the form <code>protocol://hostname/path</code>. ]]></description> @@ -1035,7 +1152,7 @@ </field> <field> <name>layout</name> - <version>4.0.0</version> + <version>1.0.0+</version> <description><![CDATA[ The type of layout this repository uses for locating and storing artifacts - can be <code>legacy</code> or <code>default</code>. |