You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/03/15 23:44:50 UTC
svn commit: r518797 - in
/maven/archiva/branches/archiva-jpox-database-refactor:
archiva-common/src/main/java/org/apache/maven/archiva/common/consumers/
archiva-common/src/main/java/org/apache/maven/archiva/common/utils/
archiva-database/src/main/java/...
Author: joakime
Date: Thu Mar 15 15:44:49 2007
New Revision: 518797
URL: http://svn.apache.org/viewvc?view=rev&rev=518797
Log:
Furthor work against BidirectionalLayout
Added:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaArtifact.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaRepository.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryURL.java
- copied, changed from r518686, maven/archiva/branches/archiva-jpox-database-refactor/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/RepositoryURL.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/Consumer.java
- copied, changed from r518686, maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/Consumer.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerException.java
- copied, changed from r518686, maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerException.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerFactory.java
- copied, changed from r518686, maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerFactory.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractArtifactExtensionMapping.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultArtifactExtensionMapping.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayout.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyArtifactExtensionMapping.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayout.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractBidirectionalRepositoryLayoutTestCase.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayoutTest.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayoutTest.java (with props)
Removed:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-common/src/main/java/org/apache/maven/archiva/common/consumers/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/RepositoryURL.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractArchivaArtifact.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/java/org/apache/maven/archiva/model/AbstractArchivaRepository.java
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/pom.xml
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/BidirectionalRepositoryLayout.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/RepositoryURLTest.java
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java?view=diff&rev=518797&r1=518796&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java Thu Mar 15 15:44:49 2007
@@ -19,8 +19,8 @@
* under the License.
*/
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.model.ArchivaArtifactModel;
+import org.apache.maven.archiva.model.ArchivaRepositoryModel;
import org.apache.maven.archiva.model.RepositoryContent;
import java.util.List;
@@ -56,21 +56,21 @@
/* .\ Archiva Repository \.____________________________________________________________ */
- public ArchivaRepository createRepository( String id, String url );
+ public ArchivaRepositoryModel createRepository( String id, String url );
- public List /*<ArchivaRepository>*/getRepositories()
+ public List /*<ArchivaRepositoryModel>*/getRepositories()
throws ObjectNotFoundException, ArchivaDatabaseException;
- public ArchivaRepository getRepository( String id )
+ public ArchivaRepositoryModel getRepository( String id )
throws ObjectNotFoundException, ArchivaDatabaseException;
public List queryRepository( Constraint constraint )
throws ObjectNotFoundException, ArchivaDatabaseException;
- public ArchivaRepository saveRepository( ArchivaRepository repository )
+ public ArchivaRepositoryModel saveRepository( ArchivaRepositoryModel repository )
throws ArchivaDatabaseException;
- public void deleteRepository( ArchivaRepository repository )
+ public void deleteRepository( ArchivaRepositoryModel repository )
throws ArchivaDatabaseException;
/* .\ Repository Content \.____________________________________________________________ */
@@ -93,18 +93,18 @@
/* .\ Archiva Artifact \. _____________________________________________________________ */
- public ArchivaArtifact createArtifact( RepositoryContent repoContent, String classifier, String type );
+ public ArchivaArtifactModel createArtifact( RepositoryContent repoContent, String classifier, String type );
- public ArchivaArtifact getArtifact( RepositoryContent repoContent, String classifier, String type )
+ public ArchivaArtifactModel getArtifact( RepositoryContent repoContent, String classifier, String type )
throws ObjectNotFoundException, ArchivaDatabaseException;
- public List /*<ArchivaArtifact>*/queryArtifacts( Constraint constraint )
+ public List /*<ArchivaArtifactModel>*/queryArtifacts( Constraint constraint )
throws ObjectNotFoundException, ArchivaDatabaseException;
- public ArchivaArtifact saveArtifact( ArchivaArtifact artifact )
+ public ArchivaArtifactModel saveArtifact( ArchivaArtifactModel artifact )
throws ArchivaDatabaseException;
- public void deleteArtifact( ArchivaArtifact artifact )
+ public void deleteArtifact( ArchivaArtifactModel artifact )
throws ArchivaDatabaseException;
}
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java?view=diff&rev=518797&r1=518796&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java Thu Mar 15 15:44:49 2007
@@ -4,9 +4,8 @@
import org.apache.maven.archiva.database.ArchivaDatabaseException;
import org.apache.maven.archiva.database.Constraint;
import org.apache.maven.archiva.database.ObjectNotFoundException;
-import org.apache.maven.archiva.database.constraints.ArchivaRepositoryByUrlConstraint;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.model.ArchivaArtifactModel;
+import org.apache.maven.archiva.model.ArchivaRepositoryModel;
import org.apache.maven.archiva.model.RepositoryContent;
import org.apache.maven.archiva.model.RepositoryContentKey;
import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -33,9 +32,9 @@
/* .\ Archiva Repository \.____________________________________________________________ */
- public ArchivaRepository createRepository( String id, String url )
+ public ArchivaRepositoryModel createRepository( String id, String url )
{
- ArchivaRepository repo;
+ ArchivaRepositoryModel repo;
try
{
@@ -43,7 +42,7 @@
}
catch ( ArchivaDatabaseException e )
{
- repo = new ArchivaRepository();
+ repo = new ArchivaRepositoryModel();
repo.setId( id );
repo.setUrl( url );
}
@@ -54,27 +53,27 @@
public List getRepositories()
throws ObjectNotFoundException, ArchivaDatabaseException
{
- return jdo.getAllObjects( ArchivaRepository.class );
+ return jdo.getAllObjects( ArchivaRepositoryModel.class );
}
- public ArchivaRepository getRepository( String id )
+ public ArchivaRepositoryModel getRepository( String id )
throws ObjectNotFoundException, ArchivaDatabaseException
{
- return (ArchivaRepository) jdo.getObjectById( ArchivaRepository.class, id, null );
+ return (ArchivaRepositoryModel) jdo.getObjectById( ArchivaRepositoryModel.class, id, null );
}
public List queryRepository( Constraint constraint )
throws ObjectNotFoundException, ArchivaDatabaseException
{
- return jdo.getAllObjects( ArchivaRepository.class, constraint );
+ return jdo.getAllObjects( ArchivaRepositoryModel.class, constraint );
}
- public ArchivaRepository saveRepository( ArchivaRepository repository )
+ public ArchivaRepositoryModel saveRepository( ArchivaRepositoryModel repository )
{
- return (ArchivaRepository) jdo.saveObject( repository );
+ return (ArchivaRepositoryModel) jdo.saveObject( repository );
}
- public void deleteRepository( ArchivaRepository repository )
+ public void deleteRepository( ArchivaRepositoryModel repository )
throws ArchivaDatabaseException
{
jdo.removeObject( repository );
@@ -132,9 +131,9 @@
/* .\ Archiva Artifact \. _____________________________________________________________ */
- public ArchivaArtifact createArtifact( RepositoryContent repoContent, String classifier, String type )
+ public ArchivaArtifactModel createArtifact( RepositoryContent repoContent, String classifier, String type )
{
- ArchivaArtifact artifact;
+ ArchivaArtifactModel artifact;
try
{
@@ -142,7 +141,7 @@
}
catch ( ArchivaDatabaseException e )
{
- artifact = new ArchivaArtifact();
+ artifact = new ArchivaArtifactModel();
artifact.setContentKey( repoContent );
artifact.setClassifier( classifier );
artifact.setType( type );
@@ -151,7 +150,7 @@
return artifact;
}
- public ArchivaArtifact getArtifact( RepositoryContent repoContent, String classifier, String type )
+ public ArchivaArtifactModel getArtifact( RepositoryContent repoContent, String classifier, String type )
throws ObjectNotFoundException, ArchivaDatabaseException
{
@@ -165,14 +164,14 @@
return null;
}
- public ArchivaArtifact saveArtifact( ArchivaArtifact artifact )
+ public ArchivaArtifactModel saveArtifact( ArchivaArtifactModel artifact )
throws ArchivaDatabaseException
{
// TODO Auto-generated method stub
return null;
}
- public void deleteArtifact( ArchivaArtifact artifact )
+ public void deleteArtifact( ArchivaArtifactModel artifact )
throws ArchivaDatabaseException
{
// TODO Auto-generated method stub
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml?view=diff&rev=518797&r1=518796&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml Thu Mar 15 15:44:49 2007
@@ -20,15 +20,15 @@
<name>Repositories</name>
<version>1.0.0+</version>
<association>
- <type>ArchivaRepository</type>
+ <type>ArchivaRepositoryModel</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
</class>
- <class stash.storable="true">
- <superClass>AbstractArchivaRepository</superClass>
- <name>ArchivaRepository</name>
+ <class stash.storable="true"
+ jpox.table="REPOSITORIES">
+ <name>ArchivaRepositoryModel</name>
<version>1.0.0+</version>
<fields>
<field>
@@ -106,6 +106,7 @@
</fields>
</class>
<class stash.storable="true"
+ jpox.table="REPOSITORY_CONTENT_KEYS"
jpox.use-identifiers-as-primary-key="true"
jpox.identity-type="application"
jpox.identity-class="RepositoryContentKey">
@@ -176,7 +177,7 @@
this.setVersion( version );
}
- public RepositoryContent( ArchivaRepository repository, String groupId, String artifactId, String version )
+ public RepositoryContent( ArchivaRepositoryModel repository, String groupId, String artifactId, String version )
{
this.setRepositoryId( repository.getId() );
this.setGroupId( groupId );
@@ -187,8 +188,9 @@
</codeSegment>
</codeSegments>
</class>
- <class>
- <name>ArchivaArtifact</name>
+ <class stash.storable="true"
+ jpox.table="ARTIFACTS">
+ <name>ArchivaArtifactModel</name>
<version>1.0.0+</version>
<fields>
<field>
@@ -226,7 +228,8 @@
</field>
</fields>
</class>
- <class>
+ <class stash.storable="true"
+ jpox.table="REPOSITORY_METADATAS">
<name>ArchivaRepositoryMetadata</name>
<version>1.0.0+</version>
<fields>
@@ -268,7 +271,8 @@
</field>
</fields>
</class>
- <class>
+ <class stash.storable="true"
+ jpox.table="HEALTH_PROBLEMS">
<name>HealthProblem</name>
<version>1.0.0+</version>
<fields>
@@ -304,7 +308,8 @@
</field>
</fields>
</class>
- <class>
+ <class stash.storable="true"
+ jpox.table="HEALTH_ARTIFACTS">
<name>ArchivaArtifactHealth</name>
<version>1.0.0+</version>
<fields>
@@ -314,7 +319,7 @@
<version>1.0.0+</version>
<required>true</required>
<association>
- <type>ArchivaArtifact</type>
+ <type>ArchivaArtifactModel</type>
<multiplicity>1</multiplicity>
</association>
<description>
@@ -336,7 +341,8 @@
</field>
</fields>
</class>
- <class>
+ <class stash.storable="true"
+ jpox.table="HEALTH_REPOSITORY_METADATAS">
<name>ArchivaRepositoryMetadataHealth</name>
<version>1.0.0+</version>
<fields>
@@ -368,7 +374,8 @@
</field>
</fields>
</class>
- <class>
+ <class stash.storable="true"
+ jpox.table="REPOSITORY_STATS">
<name>RepositoryContentStatistics</name>
<version>1.0.0+</version>
<fields>
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/pom.xml?view=diff&rev=518797&r1=518796&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/pom.xml (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/pom.xml Thu Mar 15 15:44:49 2007
@@ -32,10 +32,6 @@
<dependencies>
<dependency>
<groupId>org.apache.maven.archiva</groupId>
- <artifactId>archiva-consumer-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.archiva</groupId>
<artifactId>archiva-common</artifactId>
</dependency>
<dependency>
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaArtifact.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaArtifact.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaArtifact.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaArtifact.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,165 @@
+package org.apache.maven.archiva.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 org.apache.maven.archiva.model.ArchivaArtifactModel;
+import org.apache.maven.archiva.model.RepositoryContent;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * ArchivaArtifact - Mutable artifact object.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class ArchivaArtifact
+{
+ private static final String SNAPSHOT_VERSION = "SNAPSHOT";
+
+ private static final Pattern VERSION_FILE_PATTERN = Pattern.compile( "^(.*)-([0-9]{8}\\.[0-9]{6})-([0-9]+)$" );
+
+ private ArchivaArtifactModel model;
+
+ private String baseVersion;
+
+ private boolean snapshot = false;
+
+ 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();
+
+ model.setContentKey( new RepositoryContent( repository.getModel(), groupId, artifactId, version ) );
+ model.setClassifier( StringUtils.defaultString( classifier ) );
+ model.setType( type );
+
+ // Determine Snapshot Base Version.
+ Matcher m = VERSION_FILE_PATTERN.matcher( version );
+ if ( m.matches() )
+ {
+ this.baseVersion = m.group( 1 ) + "-" + SNAPSHOT_VERSION ;
+ snapshot = true;
+ }
+ else
+ {
+ this.baseVersion = version;
+ snapshot = version.endsWith( SNAPSHOT_VERSION );
+ }
+ }
+
+ 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 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;
+ }
+
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaArtifact.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaArtifact.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaArtifact.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaRepository.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaRepository.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaRepository.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaRepository.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,135 @@
+package org.apache.maven.archiva.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 org.apache.maven.archiva.model.ArchivaRepositoryModel;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+
+/**
+ * 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" );
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaRepository.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaRepository.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ArchivaRepository.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryURL.java (from r518686, maven/archiva/branches/archiva-jpox-database-refactor/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/RepositoryURL.java)
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryURL.java?view=diff&rev=518797&p1=maven/archiva/branches/archiva-jpox-database-refactor/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/RepositoryURL.java&r1=518686&p2=maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryURL.java&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-common/src/main/java/org/apache/maven/archiva/common/utils/RepositoryURL.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/RepositoryURL.java Thu Mar 15 15:44:49 2007
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.common.utils;
+package org.apache.maven.archiva.repository;
/*
* Licensed to the Apache Software Foundation (ASF) under one
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java?view=diff&rev=518797&r1=518796&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java Thu Mar 15 15:44:49 2007
@@ -19,7 +19,7 @@
* under the License.
*/
-import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.repository.ArchivaRepository;
import java.util.List;
Copied: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/Consumer.java (from r518686, maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/Consumer.java)
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/Consumer.java?view=diff&rev=518797&p1=maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/Consumer.java&r1=518686&p2=maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/Consumer.java&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/Consumer.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/Consumer.java Thu Mar 15 15:44:49 2007
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.consumers;
+package org.apache.maven.archiva.repository.consumer;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -20,7 +20,7 @@
*/
import org.apache.maven.archiva.common.utils.BaseFile;
-import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.repository.ArchivaRepository;
import org.apache.maven.artifact.repository.ArtifactRepository;
import java.util.List;
Copied: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerException.java (from r518686, maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerException.java)
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerException.java?view=diff&rev=518797&p1=maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerException.java&r1=518686&p2=maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerException.java&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerException.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerException.java Thu Mar 15 15:44:49 2007
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.consumers;
+package org.apache.maven.archiva.repository.consumer;
/*
* Licensed to the Apache Software Foundation (ASF) under one
Copied: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerFactory.java (from r518686, maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerFactory.java)
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerFactory.java?view=diff&rev=518797&p1=maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerFactory.java&r1=518686&p2=maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerFactory.java&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ConsumerFactory.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/consumer/ConsumerFactory.java Thu Mar 15 15:44:49 2007
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.consumers;
+package org.apache.maven.archiva.repository.consumer;
/*
* Licensed to the Apache Software Foundation (ASF) under one
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractArtifactExtensionMapping.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractArtifactExtensionMapping.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractArtifactExtensionMapping.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractArtifactExtensionMapping.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,58 @@
+package org.apache.maven.archiva.repository.content;
+
+/*
+ * 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.repository.ArchivaArtifact;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * AbstractArtifactExtensionMapping
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public abstract class AbstractArtifactExtensionMapping implements ArtifactExtensionMapping
+{
+ protected final Map typeToExtensionMap;
+
+ public AbstractArtifactExtensionMapping()
+ {
+ typeToExtensionMap = new HashMap();
+ typeToExtensionMap.put( "ejb-client", "jar" );
+ typeToExtensionMap.put( "ejb", "jar" );
+ typeToExtensionMap.put( "distribution-tgz", "tar.gz" );
+ typeToExtensionMap.put( "distribution-zip", "zip" );
+ typeToExtensionMap.put( "java-source", "jar" );
+ }
+
+ public String getExtension( ArchivaArtifact artifact )
+ {
+ // Try specialized types first.
+ if ( typeToExtensionMap.containsKey( artifact.getType() ) )
+ {
+ return (String) typeToExtensionMap.get( artifact.getType() );
+ }
+
+ // Return type
+ return artifact.getType();
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,36 @@
+package org.apache.maven.archiva.repository.content;
+
+/*
+ * 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.repository.ArchivaArtifact;
+
+/**
+ * ArtifactExtensionMapping - Utility to provide the mapping between an Artifact's extension and it's type and
+ * vice versa.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public interface ArtifactExtensionMapping
+{
+ public String getExtension( ArchivaArtifact artifact );
+
+ public String getType( String filename );
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/BidirectionalRepositoryLayout.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/BidirectionalRepositoryLayout.java?view=diff&rev=518797&r1=518796&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/BidirectionalRepositoryLayout.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/BidirectionalRepositoryLayout.java Thu Mar 15 15:44:49 2007
@@ -19,11 +19,11 @@
* under the License.
*/
-import org.apache.maven.archiva.model.ArchivaArtifact;
+import org.apache.maven.archiva.repository.ArchivaArtifact;
/**
* BidirectionalRepositoryLayout - Similar in scope to ArtifactRepositoryLayout, but does
- * the both the Path to Artifact and Artifact to Path conversions.
+ * the both the Path to Artifact, and Artifact to Path conversions.
*
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
* @version $Id$
@@ -31,12 +31,25 @@
public interface BidirectionalRepositoryLayout
{
/**
- * Given an ArchivaArtifact
+ * Get the identifier for this layout.
*
- * @param artifact
- * @return
+ * @return the identifier for this layout.
+ */
+ public String getId();
+
+ /**
+ * Given an ArchivaArtifact, return the relative path to the artifact.
+ *
+ * @param artifact the artifact to compute the path of.
+ * @return the relative path to the artifact.
*/
public String pathOf( ArchivaArtifact artifact );
+ /**
+ * Given a repository relative path to a filename, return the ArchivaArtifact object suitable for the path.
+ *
+ * @param path the path relative to the repository base dir for the artifact.
+ * @return the ArchivaArtifact representing the path. (or null if path cannot be converted to an ArchivaArtifact)
+ */
ArchivaArtifact toArtifact( String path );
}
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultArtifactExtensionMapping.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultArtifactExtensionMapping.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultArtifactExtensionMapping.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultArtifactExtensionMapping.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,76 @@
+package org.apache.maven.archiva.repository.content;
+
+/*
+ * 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;
+
+/**
+ * DefaultArtifactExtensionMapping - extension mapping for Maven 2.x projects.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ *
+ * @plexus.component role="org.apache.maven.archiva.repository.content.ArtifactExtensionMapping"
+ * role-hint="default"
+ */
+public class DefaultArtifactExtensionMapping extends AbstractArtifactExtensionMapping
+ implements ArtifactExtensionMapping
+{
+ public DefaultArtifactExtensionMapping()
+ {
+ super();
+ }
+
+ public String getType( String filename )
+ {
+ if ( StringUtils.isBlank( filename ) )
+ {
+ return null;
+ }
+
+ String normalizedName = filename.toLowerCase().trim();
+
+ if ( normalizedName.endsWith( ".tar.gz" ) )
+ {
+ return "distribution-tgz";
+ }
+ else if ( normalizedName.endsWith( ".zip" ) )
+ {
+ return "distribution-zip";
+ }
+ else if ( normalizedName.endsWith( "-sources.jar" ) )
+ {
+ return "java-source";
+ }
+ // TODO: handle type for -javadoc.jar ?
+ else
+ {
+ int index = normalizedName.lastIndexOf( '.' );
+ if ( index >= 0 )
+ {
+ return normalizedName.substring( index + 1 );
+ }
+ else
+ {
+ throw new IllegalArgumentException( "Filename " + filename + " does not have an extension." );
+ }
+ }
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayout.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayout.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayout.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayout.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,78 @@
+package org.apache.maven.archiva.repository.content;
+
+/*
+ * 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.repository.ArchivaArtifact;
+
+/**
+ * DefaultBidirectionalRepositoryLayout - the layout mechanism for use by Maven 2.x repositories.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ *
+ * @plexus.component role="org.apache.maven.archiva.repository.content.BidirectionalRepositoryLayout"
+ * role-hint="default"
+ */
+public class DefaultBidirectionalRepositoryLayout implements BidirectionalRepositoryLayout
+{
+ private static final char PATH_SEPARATOR = '/';
+
+ private static final char GROUP_SEPARATOR = '.';
+
+ private static final char ARTIFACT_SEPARATOR = '-';
+
+ private ArtifactExtensionMapping extensionMapper = new DefaultArtifactExtensionMapping();
+
+ public String getId()
+ {
+ return "default";
+ }
+
+ public String pathOf( ArchivaArtifact artifact )
+ {
+ StringBuffer path = new StringBuffer();
+
+ path.append( formatAsDirectory( artifact.getGroupId() ) ).append( PATH_SEPARATOR );
+ path.append( artifact.getArtifactId() ).append( PATH_SEPARATOR );
+ path.append( artifact.getBaseVersion() ).append( PATH_SEPARATOR );
+ path.append( artifact.getArtifactId() ).append( ARTIFACT_SEPARATOR ).append( artifact.getVersion() );
+
+ if ( artifact.hasClassifier() )
+ {
+ path.append( ARTIFACT_SEPARATOR ).append( artifact.getClassifier() );
+ }
+
+ path.append( GROUP_SEPARATOR ).append( extensionMapper.getExtension( artifact ) );
+
+ return path.toString();
+ }
+
+ private String formatAsDirectory( String directory )
+ {
+ return directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR );
+ }
+
+ public ArchivaArtifact toArtifact( String path )
+ {
+
+
+ return null;
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayout.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayout.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayout.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyArtifactExtensionMapping.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyArtifactExtensionMapping.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyArtifactExtensionMapping.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyArtifactExtensionMapping.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,76 @@
+package org.apache.maven.archiva.repository.content;
+
+import org.apache.commons.lang.StringUtils;
+
+/*
+ * 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.
+ */
+
+/**
+ * LegacyArtifactExtensionMapping
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ *
+ * @plexus.component role="org.apache.maven.archiva.repository.content.ArtifactExtensionMapping"
+ * role-hint="legacy"
+ */
+public class LegacyArtifactExtensionMapping extends AbstractArtifactExtensionMapping
+ implements ArtifactExtensionMapping
+{
+ public LegacyArtifactExtensionMapping()
+ {
+ super();
+ }
+
+ public String getType( String filename )
+ {
+ if ( StringUtils.isBlank( filename ) )
+ {
+ return null;
+ }
+
+ String normalizedName = filename.toLowerCase().trim();
+
+ if ( normalizedName.endsWith( ".tar.gz" ) )
+ {
+ return "distribution-tgz";
+ }
+ else if ( normalizedName.endsWith( ".zip" ) )
+ {
+ return "distribution-zip";
+ }
+ else if ( normalizedName.endsWith( "-sources.jar" ) )
+ {
+ return "java-source";
+ }
+ // TODO: handle type for -javadoc.jar ?
+ else
+ {
+ int index = normalizedName.lastIndexOf( '.' );
+ if ( index >= 0 )
+ {
+ return normalizedName.substring( index + 1 );
+ }
+ else
+ {
+ throw new IllegalArgumentException( "Filename " + filename + " does not have an extension." );
+ }
+ }
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyArtifactExtensionMapping.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayout.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayout.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayout.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayout.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,101 @@
+package org.apache.maven.archiva.repository.content;
+
+/*
+ * 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.repository.ArchivaArtifact;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * LegacyBidirectionalRepositoryLayout - the layout mechanism for use by Maven 1.x repositories.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ *
+ * @plexus.component role="org.apache.maven.archiva.repository.content.BidirectionalRepositoryLayout"
+ * role-hint="legacy"
+ */
+public class LegacyBidirectionalRepositoryLayout implements BidirectionalRepositoryLayout
+{
+ private static final String PATH_SEPARATOR = "/";
+
+ private ArtifactExtensionMapping extensionMapper = new LegacyArtifactExtensionMapping();
+
+ private Map typeToDirectoryMap;
+
+ public LegacyBidirectionalRepositoryLayout()
+ {
+ typeToDirectoryMap = new HashMap();
+ typeToDirectoryMap.put( "ejb-client", "ejb" );
+ typeToDirectoryMap.put( "distribution-tgz", "distribution" );
+ typeToDirectoryMap.put( "distribution-zip", "distribution" );
+ }
+
+ public String getId()
+ {
+ return "legacy";
+ }
+
+ public String pathOf( ArchivaArtifact artifact )
+ {
+ StringBuffer path = new StringBuffer();
+
+ path.append( artifact.getGroupId() ).append( PATH_SEPARATOR );
+ path.append( getDirectory( artifact ) ).append( PATH_SEPARATOR );
+ path.append( artifact.getArtifactId() ).append( '-' ).append( artifact.getVersion() );
+
+ if ( artifact.hasClassifier() )
+ {
+ path.append( '-' ).append( artifact.getClassifier() );
+ }
+
+ path.append( '.' ).append( extensionMapper.getExtension( artifact ) );
+
+ return path.toString();
+ }
+
+ private String getDirectory( ArchivaArtifact artifact )
+ {
+ // Special Cases involving classifiers and type.
+ if ( "jar".equals( artifact.getType() ) && "sources".equals( artifact.getClassifier() ) )
+ {
+ return "javadoc.jars";
+ }
+
+ // Special Cases involving only type.
+ String dirname = (String) typeToDirectoryMap.get( artifact.getType() );
+
+ if ( dirname != null )
+ {
+ return dirname + "s";
+ }
+
+ // Default process.
+ return artifact.getType() + "s";
+ }
+
+ public ArchivaArtifact toArtifact( String path )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayout.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayout.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayout.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java?view=diff&rev=518797&r1=518796&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanner.java Thu Mar 15 15:44:49 2007
@@ -19,10 +19,10 @@
* under the License.
*/
-import org.apache.maven.archiva.consumers.Consumer;
-import org.apache.maven.archiva.model.ArchivaRepository;
import org.apache.maven.archiva.model.RepositoryContentStatistics;
+import org.apache.maven.archiva.repository.ArchivaRepository;
import org.apache.maven.archiva.repository.RepositoryException;
+import org.apache.maven.archiva.repository.consumer.Consumer;
import org.codehaus.plexus.util.DirectoryWalker;
import org.codehaus.plexus.util.FileUtils;
@@ -103,12 +103,12 @@
throw new IllegalArgumentException( "Unable to operate on a null repository." );
}
- if ( !"file".equals( repository.getRepositoryURL().getProtocol() ) )
+ if ( !"file".equals( repository.getUrl().getProtocol() ) )
{
throw new UnsupportedOperationException( "Only filesystem repositories are supported." );
}
- File repositoryBase = new File( repository.getRepositoryURL().getPath() );
+ File repositoryBase = new File( repository.getUrl().getPath() );
if ( !repositoryBase.exists() )
{
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java?view=diff&rev=518797&r1=518796&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java Thu Mar 15 15:44:49 2007
@@ -21,10 +21,9 @@
import org.apache.commons.lang.SystemUtils;
import org.apache.maven.archiva.common.utils.BaseFile;
-import org.apache.maven.archiva.consumers.Consumer;
-import org.apache.maven.archiva.model.ArchivaRepository;
import org.apache.maven.archiva.model.RepositoryContentStatistics;
-import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.archiva.repository.ArchivaRepository;
+import org.apache.maven.archiva.repository.consumer.Consumer;
import org.codehaus.plexus.util.DirectoryWalkListener;
import org.codehaus.plexus.util.SelectorUtils;
import org.codehaus.plexus.util.StringUtils;
@@ -88,7 +87,7 @@
public void directoryWalkStarting( File basedir )
{
- log.info( "Walk Started: [" + this.repository.getId() + "] " + this.repository.getRepositoryURL() );
+ log.info( "Walk Started: [" + this.repository.getId() + "] " + this.repository.getUrl() );
stats.triggerStart();
}
@@ -110,7 +109,7 @@
{
stats.increaseNewFileCount();
- BaseFile basefile = new BaseFile( repository.getRepositoryURL().getPath(), file );
+ BaseFile basefile = new BaseFile( repository.getUrl().getPath(), file );
Iterator itConsumers = this.consumers.iterator();
while ( itConsumers.hasNext() )
@@ -144,7 +143,7 @@
public void directoryWalkFinished()
{
- log.info( "Walk Finished: [" + this.repository.getId() + "] " + this.repository.getRepositoryURL() );
+ log.info( "Walk Finished: [" + this.repository.getId() + "] " + this.repository.getUrl() );
stats.triggerFinished();
}
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/RepositoryURLTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/RepositoryURLTest.java?view=diff&rev=518797&r1=518796&r2=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/RepositoryURLTest.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/RepositoryURLTest.java Thu Mar 15 15:44:49 2007
@@ -19,7 +19,6 @@
* under the License.
*/
-import org.apache.maven.archiva.common.utils.RepositoryURL;
import java.net.MalformedURLException;
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractBidirectionalRepositoryLayoutTestCase.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractBidirectionalRepositoryLayoutTestCase.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractBidirectionalRepositoryLayoutTestCase.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractBidirectionalRepositoryLayoutTestCase.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,93 @@
+package org.apache.maven.archiva.repository.content;
+
+/*
+ * 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;
+import org.apache.maven.archiva.repository.ArchivaArtifact;
+import org.apache.maven.archiva.repository.ArchivaRepository;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.File;
+
+/**
+ * AbstractBidirectionalRepositoryLayoutTestCase
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class AbstractBidirectionalRepositoryLayoutTestCase extends PlexusTestCase
+{
+ protected ArchivaRepository repository;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ repository = createTestRepository();
+ }
+
+ protected ArchivaRepository createTestRepository()
+ {
+ File targetDir = new File( getBasedir(), "target" );
+ File testRepo = new File( targetDir, "test-repo" );
+
+ if ( !testRepo.exists() )
+ {
+ testRepo.mkdirs();
+ }
+
+ String repoUri = "file://" + StringUtils.replace( testRepo.getAbsolutePath(), "\\", "/" ) ;
+
+ ArchivaRepository repo = new ArchivaRepository( "testRepo", "Test Repository", repoUri );
+
+ return repo;
+ }
+
+ protected ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String classifier, String type )
+ {
+ ArchivaArtifact artifact = new ArchivaArtifact( repository, groupId, artifactId, version, classifier, type );
+ assertNotNull( artifact );
+ return artifact;
+ }
+
+ protected void assertArtifact( ArchivaArtifact actualArtifact, String groupId, String artifactId, String version, String classifier, String type )
+ {
+ String expectedId = groupId + ":" + artifactId + ":" + version + ":" + classifier + ":" + type;
+
+ assertEquals( expectedId + " - Group ID", actualArtifact.getGroupId(), groupId );
+ assertEquals( expectedId + " - Artifact ID", actualArtifact.getArtifactId(), artifactId );
+ assertEquals( expectedId + " - Version ID", actualArtifact.getVersion(), version );
+ assertEquals( expectedId + " - Classifier", actualArtifact.getClassifier(), classifier );
+ assertEquals( expectedId + " - Type", actualArtifact.getType(), type );
+ }
+
+ protected void assertSnapshotArtifact( ArchivaArtifact actualArtifact, String groupId, String artifactId, String version, String classifier, String type )
+ {
+ String expectedId = groupId + ":" + artifactId + ":" + version + ":" + classifier + ":" + type;
+
+ assertEquals( expectedId + " - Group ID", actualArtifact.getGroupId(), groupId );
+ assertEquals( expectedId + " - Artifact ID", actualArtifact.getArtifactId(), artifactId );
+ assertEquals( expectedId + " - Version ID", actualArtifact.getVersion(), version );
+ assertEquals( expectedId + " - Classifier", actualArtifact.getClassifier(), classifier );
+ assertEquals( expectedId + " - Type", actualArtifact.getType(), type );
+ assertTrue( expectedId + " - Snapshot", actualArtifact.isSnapshot() );
+ }
+
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractBidirectionalRepositoryLayoutTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractBidirectionalRepositoryLayoutTestCase.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractBidirectionalRepositoryLayoutTestCase.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayoutTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayoutTest.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayoutTest.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayoutTest.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,96 @@
+package org.apache.maven.archiva.repository.content;
+
+/*
+ * 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.repository.ArchivaArtifact;
+
+/**
+ * DefaultBidirectionalRepositoryLayoutTest
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class DefaultBidirectionalRepositoryLayoutTest extends AbstractBidirectionalRepositoryLayoutTestCase
+{
+ private BidirectionalRepositoryLayout layout;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ layout = (BidirectionalRepositoryLayout) lookup( BidirectionalRepositoryLayout.class.getName(), "default" );
+ }
+
+ public void testToPathBasic()
+ {
+ ArchivaArtifact artifact = createArtifact( "com.foo", "foo-tool", "1.0", "", "jar" );
+
+ assertEquals( "com/foo/foo-tool/1.0/foo-tool-1.0.jar", layout.pathOf( artifact ) );
+ }
+
+ public void testToPathEjbClient()
+ {
+ ArchivaArtifact artifact = createArtifact( "com.foo", "foo-client", "1.0", "", "ejb-client" );
+
+ assertEquals( "com/foo/foo-client/1.0/foo-client-1.0.jar", layout.pathOf( artifact ) );
+ }
+
+ public void testToPathWithClassifier()
+ {
+ ArchivaArtifact artifact = createArtifact( "com.foo.lib", "foo-lib", "2.1-alpha-1", "sources", "jar" );
+
+ assertEquals( "com/foo/lib/foo-lib/2.1-alpha-1/foo-lib-2.1-alpha-1-sources.jar", layout.pathOf( artifact ) );
+ }
+
+ public void testToPathUsingUniqueSnapshot()
+ {
+ ArchivaArtifact artifact = createArtifact( "com.foo", "foo-connector", "2.1-20060822.123456-35", "", "jar" );
+
+ assertEquals( "com/foo/foo-connector/2.1-SNAPSHOT/foo-connector-2.1-20060822.123456-35.jar",
+ layout.pathOf( artifact ) );
+ }
+
+ public void testToArtifactBasic()
+ {
+ ArchivaArtifact artifact = layout.toArtifact( "com/foo/foo-tool/1.0/foo-tool-1.0.jar" );
+ assertArtifact( artifact, "com.foo", "foo-tool", "1.0", "", "jar" );
+ }
+
+ public void testToArtifactEjbClient()
+ {
+ ArchivaArtifact artifact = layout.toArtifact( "com/foo/foo-client/1.0/foo-client-1.0.jar" );
+ // The type is correct. as we cannot possibly know this is an ejb client without parsing the pom
+ assertArtifact( artifact, "com.foo", "foo-client", "1.0", "", "jar" );
+ }
+
+ public void testToArtifactWithClassifier()
+ {
+ ArchivaArtifact artifact =
+ layout.toArtifact( "com/foo/lib/foo-lib/2.1-alpha-1/foo-lib-2.1-alpha-1-sources.jar" );
+ assertArtifact( artifact, "com.foo.lib", "foo-lib", "2.1-alpha-1", "sources", "jar" );
+ }
+
+ public void testToArtifactUsingUniqueSnapshot()
+ {
+ ArchivaArtifact artifact =
+ layout.toArtifact( "com/foo/foo-connector/2.1-SNAPSHOT/foo-connector-2.1-20060822.123456-35.jar" );
+ assertSnapshotArtifact( artifact, "com.foo", "foo-connector", "2.1-20060822.123456-35", "", "jar" );
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayoutTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayoutTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultBidirectionalRepositoryLayoutTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayoutTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayoutTest.java?view=auto&rev=518797
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayoutTest.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayoutTest.java Thu Mar 15 15:44:49 2007
@@ -0,0 +1,69 @@
+package org.apache.maven.archiva.repository.content;
+
+/*
+ * 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.repository.ArchivaArtifact;
+
+/**
+ * LegacyBidirectionalRepositoryLayoutTest
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class LegacyBidirectionalRepositoryLayoutTest extends AbstractBidirectionalRepositoryLayoutTestCase
+{
+ private BidirectionalRepositoryLayout layout;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ layout = (BidirectionalRepositoryLayout) lookup( BidirectionalRepositoryLayout.class.getName(), "legacy" );
+ }
+
+ public void testToPathBasic()
+ {
+ ArchivaArtifact artifact = createArtifact( "com.foo", "foo-tool", "1.0", "", "jar" );
+
+ assertEquals( "com.foo/jars/foo-tool-1.0.jar", layout.pathOf( artifact ) );
+ }
+
+ public void testToPathEjbClient()
+ {
+ ArchivaArtifact artifact = createArtifact( "com.foo", "foo-client", "1.0", "", "ejb-client" );
+
+ assertEquals( "com.foo/ejbs/foo-client-1.0.jar", layout.pathOf( artifact ) );
+ }
+
+ public void testToPathWithClassifier()
+ {
+ ArchivaArtifact artifact = createArtifact( "com.foo.lib", "foo-lib", "2.1-alpha-1", "sources", "jar" );
+
+ assertEquals( "com.foo.lib/javadoc.jars/foo-lib-2.1-alpha-1-sources.jar", layout.pathOf( artifact ) );
+ }
+
+ public void testToPathUsingUniqueSnapshot()
+ {
+ ArchivaArtifact artifact = createArtifact( "com.foo", "foo-connector", "2.1-20060822.123456-35", "", "jar" );
+
+ assertEquals( "com.foo/jars/foo-connector-2.1-20060822.123456-35.jar",
+ layout.pathOf( artifact ) );
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayoutTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayoutTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyBidirectionalRepositoryLayoutTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain