maven-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From br...@apache.org
Subject svn commit: r425379 - in /maven/repository-manager/trunk/maven-repository-indexer/src: main/java/org/apache/maven/repository/indexing/ main/java/org/apache/maven/repository/indexing/record/ site/apt/ test/java/org/apache/maven/repository/indexing/recor...
Date Tue, 25 Jul 2006 12:02:09 GMT
Author: brett
Date: Tue Jul 25 05:02:08 2006
New Revision: 425379

URL: http://svn.apache.org/viewvc?rev=425379&view=rev
Log:
[MNG-127] add index record classes

Added:
    maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/
    maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java   (with props)
    maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecord.java   (with props)
    maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java   (with props)
    maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecord.java   (with props)
    maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecordFactory.java   (with props)
    maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecord.java   (with props)
    maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java   (with props)
    maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactoryTest.java   (with props)
    maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactoryTest.java   (with props)
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-corrupt-jar/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-corrupt-jar/1.0/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-corrupt-jar/1.0/test-corrupt-jar-1.0.jar
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-dll/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-dll/1.0.1.34/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-dll/1.0.1.34/test-dll-1.0.1.34.dll
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-jar/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-jar/1.0/
    maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-jar/1.0/test-jar-1.0.jar   (with props)
Modified:
    maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/EclipseRepositoryIndex.java
    maven/repository-manager/trunk/maven-repository-indexer/src/site/apt/design.apt

Modified: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/EclipseRepositoryIndex.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/EclipseRepositoryIndex.java?rev=425379&r1=425378&r2=425379&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/EclipseRepositoryIndex.java (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/EclipseRepositoryIndex.java Tue Jul 25 05:02:08 2006
@@ -51,14 +51,30 @@
 public class EclipseRepositoryIndex
     extends AbstractRepositoryIndex
 {
+    // TODO: change constants to an enumerated type
+    /**
+     * Field name for the JAR filename.
+     */
     private static final String JAR_NAME = "j";
 
+    /**
+     * Field name for the JAR file size.
+     */
     private static final String JAR_SIZE = "s";
 
+    /**
+     * Field name for the JAR last modified timestamp.
+     */
     private static final String JAR_DATE = "d";
 
+    /**
+     * Field name for the list of classes in the JAR.
+     */
     private static final String NAMES = "c";
 
+    /**
+     * Field name for the MD5 checksum of the JAR.
+     */
     private static final String MD5 = "m";
 
     private Digester digester;

Added: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java?rev=425379&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java (added)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java Tue Jul 25 05:02:08 2006
@@ -0,0 +1,80 @@
+package org.apache.maven.repository.indexing.record;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.repository.digest.Digester;
+import org.apache.maven.repository.digest.DigesterException;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+/**
+ * Base class for the index record factories.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public abstract class AbstractArtifactIndexRecordFactory
+    extends AbstractLogEnabled
+    implements RepositoryIndexRecordFactory
+{
+    /**
+     * @plexus.requirement
+     */
+    private Digester digester;
+
+    protected String readChecksum( File file, String algorithm )
+    {
+        String checksum;
+        try
+        {
+            checksum = digester.createChecksum( file, algorithm ).toLowerCase();
+        }
+        catch ( DigesterException e )
+        {
+            getLogger().error( "Error getting checksum for artifact file, leaving empty in index: " + e.getMessage() );
+            checksum = null;
+        }
+        return checksum;
+    }
+
+    protected List readFilesInArchive( File file )
+        throws IOException
+    {
+        ZipFile zipFile = new ZipFile( file );
+        List files = new ArrayList( zipFile.size() );
+
+        for ( Enumeration entries = zipFile.entries(); entries.hasMoreElements(); )
+        {
+            ZipEntry entry = (ZipEntry) entries.nextElement();
+
+            files.add( entry.getName() );
+        }
+        return files;
+    }
+
+    protected static boolean isClass( String name )
+    {
+        // TODO: verify if class is public or protected (this might require the original ZipEntry)
+        return name.endsWith( ".class" ) && name.lastIndexOf( "$" ) < 0;
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecord.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecord.java?rev=425379&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecord.java (added)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecord.java Tue Jul 25 05:02:08 2006
@@ -0,0 +1,162 @@
+package org.apache.maven.repository.indexing.record;
+
+import java.util.Date;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * The a record with the fields in the minimal index.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public class MinimalArtifactIndexRecord
+    implements RepositoryIndexRecord
+{
+    /**
+     * The classes in the archive for the artifact, if it is a JAR. The package name is <b>not</b> included.
+     */
+    private String classes;
+
+    /**
+     * The MD5 checksum of the artifact file.
+     */
+    private String md5Checksum;
+
+    /**
+     * The filename of the artifact file (no path).
+     */
+    private String filename;
+
+    /**
+     * The timestamp that the artifact file was last modified.
+     */
+    private long lastModified;
+
+    /**
+     * The size of the artifact file in bytes.
+     */
+    private long size;
+
+    public void setClasses( String classes )
+    {
+        this.classes = classes;
+    }
+
+    public void setMd5Checksum( String md5Checksum )
+    {
+        this.md5Checksum = md5Checksum;
+    }
+
+    public void setFilename( String filename )
+    {
+        this.filename = filename;
+    }
+
+    public void setLastModified( long lastModified )
+    {
+        this.lastModified = lastModified;
+    }
+
+    public void setSize( long size )
+    {
+        this.size = size;
+    }
+
+    public String getClasses()
+    {
+        return classes;
+    }
+
+    public String getMd5Checksum()
+    {
+        return md5Checksum;
+    }
+
+    public String getFilename()
+    {
+        return filename;
+    }
+
+    public long getLastModified()
+    {
+        return lastModified;
+    }
+
+    public long getSize()
+    {
+        return size;
+    }
+
+    /**
+     * @noinspection RedundantIfStatement
+     */
+    public boolean equals( Object obj )
+    {
+        if ( this == obj )
+        {
+            return true;
+        }
+        if ( obj == null || getClass() != obj.getClass() )
+        {
+            return false;
+        }
+
+        MinimalArtifactIndexRecord that = (MinimalArtifactIndexRecord) obj;
+
+        if ( lastModified != that.lastModified )
+        {
+            return false;
+        }
+        if ( size != that.size )
+        {
+            return false;
+        }
+        if ( classes != null ? !classes.equals( that.classes ) : that.classes != null )
+        {
+            return false;
+        }
+        if ( !filename.equals( that.filename ) )
+        {
+            return false;
+        }
+        if ( md5Checksum != null ? !md5Checksum.equals( that.md5Checksum ) : that.md5Checksum != null )
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * @noinspection UnnecessaryParentheses
+     */
+    public int hashCode()
+    {
+        int result = classes != null ? classes.hashCode() : 0;
+        result = 31 * result + ( md5Checksum != null ? md5Checksum.hashCode() : 0 );
+        result = 31 * result + filename.hashCode();
+        result = 31 * result + (int) ( lastModified ^ ( lastModified >>> 32 ) );
+        result = 31 * result + (int) ( size ^ ( size >>> 32 ) );
+        return result;
+    }
+
+    public String toString()
+    {
+        return "Filename: " + filename + "; checksum: " + md5Checksum + "; size: " + size + "; lastModified: " +
+            new Date( lastModified ) + "; classes: " + classes;
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecord.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecord.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java?rev=425379&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java (added)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java Tue Jul 25 05:02:08 2006
@@ -0,0 +1,87 @@
+package org.apache.maven.repository.indexing.record;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.artifact.Artifact;
+import org.apache.maven.repository.digest.Digester;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * An index record type for the minimal index.
+ *
+ * @author Edwin Punzalan
+ * @author Brett Porter
+ * @plexus.component role="org.apache.maven.repository.indexing.record.RepositoryIndexRecordFactory" role-hint="minimal"
+ */
+public class MinimalArtifactIndexRecordFactory
+    extends AbstractArtifactIndexRecordFactory
+{
+    public RepositoryIndexRecord createRecord( Artifact artifact )
+    {
+        MinimalArtifactIndexRecord record = null;
+
+        File file = artifact.getFile();
+        if ( file != null && "jar".equals( artifact.getType() ) && file.exists() )
+        {
+            String md5 = readChecksum( file, Digester.MD5 );
+
+            List files = null;
+            try
+            {
+                files = readFilesInArchive( file );
+            }
+            catch ( IOException e )
+            {
+                getLogger().error( "Error reading artifact file, omitting from index: " + e.getMessage() );
+            }
+
+            if ( files != null )
+            {
+                record = new MinimalArtifactIndexRecord();
+                record.setMd5Checksum( md5 );
+                record.setFilename( file.getName() );
+                record.setLastModified( file.lastModified() );
+                record.setSize( file.length() );
+                record.setClasses( getClassesFromFiles( files ) );
+            }
+        }
+        return record;
+    }
+
+    private String getClassesFromFiles( List files )
+    {
+        StringBuffer classes = new StringBuffer();
+
+        for ( Iterator i = files.iterator(); i.hasNext(); )
+        {
+            String name = (String) i.next();
+
+            if ( isClass( name ) )
+            {
+                int idx = name.lastIndexOf( '/' );
+                String classname = name.substring( idx + 1, name.length() - 6 );
+                classes.append( classname ).append( "\n" );
+            }
+        }
+
+        return classes.toString();
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecord.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecord.java?rev=425379&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecord.java (added)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecord.java Tue Jul 25 05:02:08 2006
@@ -0,0 +1,26 @@
+package org.apache.maven.repository.indexing.record;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 repository index record.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public interface RepositoryIndexRecord
+{
+}

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecord.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecord.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecordFactory.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecordFactory.java?rev=425379&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecordFactory.java (added)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecordFactory.java Tue Jul 25 05:02:08 2006
@@ -0,0 +1,40 @@
+package org.apache.maven.repository.indexing.record;
+
+import org.apache.maven.artifact.Artifact;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * The layout of a record in a repository index.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public interface RepositoryIndexRecordFactory
+{
+    /**
+     * The Plexus role.
+     */
+    String ROLE = RepositoryIndexRecordFactory.class.getName();
+
+    /**
+     * Create an index record from an artifact.
+     *
+     * @param artifact the artifact
+     * @return the index record
+     */
+    RepositoryIndexRecord createRecord( Artifact artifact );
+}

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecordFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/RepositoryIndexRecordFactory.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecord.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecord.java?rev=425379&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecord.java (added)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecord.java Tue Jul 25 05:02:08 2006
@@ -0,0 +1,191 @@
+package org.apache.maven.repository.indexing.record;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * The a record with the fields in the standard index.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public class StandardArtifactIndexRecord
+    extends MinimalArtifactIndexRecord
+{
+    /**
+     * The SHA-1 checksum of the artifact file.
+     */
+    private String sha1Checksum;
+
+    /**
+     * The artifact's group.
+     */
+    private String groupId;
+
+    /**
+     * The artifact's identifier within the group.
+     */
+    private String artifactId;
+
+    /**
+     * The artifact's version.
+     */
+    private String version;
+
+    /**
+     * The classifier, if there is one.
+     */
+    private String classifier;
+
+    /**
+     * The artifact type (from the file).
+     */
+    private String type;
+
+    /**
+     * A list of packages (separated by '\n') in the artifact if it contains Java classes.
+     */
+    private String packages;
+
+    /**
+     * A list of files (separated by '\n') in the artifact if it is an archive.
+     */
+    private String files;
+
+    /**
+     * The identifier of the repository that the artifact came from.
+     */
+    private String repository;
+
+    public void setSha1Checksum( String sha1Checksum )
+    {
+        this.sha1Checksum = sha1Checksum;
+    }
+
+    public void setGroupId( String groupId )
+    {
+        this.groupId = groupId;
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+        this.artifactId = artifactId;
+    }
+
+    public void setVersion( String version )
+    {
+        this.version = version;
+    }
+
+    public void setClassifier( String classifier )
+    {
+        this.classifier = classifier;
+    }
+
+    public void setType( String type )
+    {
+        this.type = type;
+    }
+
+    public void setPackages( String packages )
+    {
+        this.packages = packages;
+    }
+
+    public void setFiles( String files )
+    {
+        this.files = files;
+    }
+
+    public void setRepository( String repository )
+    {
+        this.repository = repository;
+    }
+
+    /**
+     * @noinspection RedundantIfStatement
+     */
+    public boolean equals( Object obj )
+    {
+        if ( this == obj )
+        {
+            return true;
+        }
+        if ( obj == null || getClass() != obj.getClass() )
+        {
+            return false;
+        }
+        if ( !super.equals( obj ) )
+        {
+            return false;
+        }
+
+        StandardArtifactIndexRecord that = (StandardArtifactIndexRecord) obj;
+
+        if ( !artifactId.equals( that.artifactId ) )
+        {
+            return false;
+        }
+        if ( classifier != null ? !classifier.equals( that.classifier ) : that.classifier != null )
+        {
+            return false;
+        }
+        if ( files != null ? !files.equals( that.files ) : that.files != null )
+        {
+            return false;
+        }
+        if ( !groupId.equals( that.groupId ) )
+        {
+            return false;
+        }
+        if ( packages != null ? !packages.equals( that.packages ) : that.packages != null )
+        {
+            return false;
+        }
+        if ( repository != null ? !repository.equals( that.repository ) : that.repository != null )
+        {
+            return false;
+        }
+        if ( sha1Checksum != null ? !sha1Checksum.equals( that.sha1Checksum ) : that.sha1Checksum != null )
+        {
+            return false;
+        }
+        if ( type != null ? !type.equals( that.type ) : that.type != null )
+        {
+            return false;
+        }
+        if ( !version.equals( that.version ) )
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    public int hashCode()
+    {
+        int result = super.hashCode();
+        result = 31 * result + ( sha1Checksum != null ? sha1Checksum.hashCode() : 0 );
+        result = 31 * result + groupId.hashCode();
+        result = 31 * result + artifactId.hashCode();
+        result = 31 * result + version.hashCode();
+        result = 31 * result + ( classifier != null ? classifier.hashCode() : 0 );
+        result = 31 * result + ( type != null ? type.hashCode() : 0 );
+        result = 31 * result + ( packages != null ? packages.hashCode() : 0 );
+        result = 31 * result + ( files != null ? files.hashCode() : 0 );
+        result = 31 * result + ( repository != null ? repository.hashCode() : 0 );
+        return result;
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecord.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecord.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java?rev=425379&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java (added)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java Tue Jul 25 05:02:08 2006
@@ -0,0 +1,143 @@
+package org.apache.maven.repository.indexing.record;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.artifact.Artifact;
+import org.apache.maven.repository.digest.Digester;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * An index record type for the standard index.
+ *
+ * @author Edwin Punzalan
+ * @author Brett Porter
+ * @plexus.component role="org.apache.maven.repository.indexing.record.RepositoryIndexRecordFactory" role-hint="standard"
+ */
+public class StandardArtifactIndexRecordFactory
+    extends AbstractArtifactIndexRecordFactory
+{
+    /**
+     * A list of artifact types to treat as a zip archive.
+     *
+     * @todo this should be smarter (perhaps use plexus archiver to look for an unarchiver, and make the ones for zip configurable since sar, par, etc can be added at random.
+     */
+    private static final Set ARCHIVE_TYPES =
+        new HashSet( Arrays.asList( new String[]{"jar", "zip", "ejb", "par", "sar", "war", "ear"} ) );
+
+    public RepositoryIndexRecord createRecord( Artifact artifact )
+    {
+        StandardArtifactIndexRecord record = null;
+
+        File file = artifact.getFile();
+        if ( file != null && file.exists() )
+        {
+            String md5 = readChecksum( file, Digester.MD5 );
+            String sha1 = readChecksum( file, Digester.SHA1 );
+
+            List files = null;
+            try
+            {
+                if ( ARCHIVE_TYPES.contains( artifact.getType() ) )
+                {
+                    files = readFilesInArchive( file );
+                }
+                else
+                {
+                    files = Collections.EMPTY_LIST;
+                }
+            }
+            catch ( IOException e )
+            {
+                getLogger().error( "Error reading artifact file, omitting from index: " + e.getMessage() );
+            }
+
+            if ( files != null )
+            {
+                record = new StandardArtifactIndexRecord();
+
+                record.setGroupId( artifact.getGroupId() );
+                record.setArtifactId( artifact.getArtifactId() );
+                record.setVersion( artifact.getVersion() );
+                record.setClassifier( artifact.getClassifier() );
+                record.setType( artifact.getType() );
+                record.setMd5Checksum( md5 );
+                record.setSha1Checksum( sha1 );
+                record.setFilename( file.getName() );
+                record.setLastModified( file.lastModified() );
+                record.setSize( file.length() );
+                record.setRepository( artifact.getRepository().getId() );
+/* TODO! these come from the POM and metadata, so probably part of an update record method instead
+                record.setPluginPrefix( pluginPrefix );
+                record.setPackaging( packaging );
+                indexPlugins( doc, FLD_PLUGINS_BUILD, pom.getBuild().getPlugins().iterator() );
+                indexReportPlugins( doc, FLD_PLUGINS_REPORT, pom.getReporting().getPlugins().iterator() );
+                record.setDependencies( dependencies );
+                record.setLicenses( licenses );
+*/
+                populateArchiveEntries( files, record );
+            }
+        }
+
+        return record;
+    }
+
+    private void populateArchiveEntries( List files, StandardArtifactIndexRecord record )
+    {
+        StringBuffer classes = new StringBuffer();
+        StringBuffer packages = new StringBuffer();
+        StringBuffer fileBuffer = new StringBuffer();
+
+        for ( Iterator i = files.iterator(); i.hasNext(); )
+        {
+            String name = (String) i.next();
+
+            // ignore directories
+            if ( !name.endsWith( "/" ) )
+            {
+                fileBuffer.append( name ).append( "\n" );
+
+                if ( isClass( name ) )
+                {
+                    int idx = name.lastIndexOf( '/' );
+                    String classname = name.substring( idx + 1, name.length() - 6 );
+                    classes.append( classname ).append( "\n" );
+
+                    if ( idx > 0 )
+                    {
+                        String packageName = name.substring( 0, idx ).replace( '/', '.' );
+                        if ( packages.indexOf( packageName ) < 0 )
+                        {
+                            packages.append( packageName ).append( "\n" );
+                        }
+                    }
+                }
+            }
+        }
+
+        record.setClasses( classes.toString() );
+        record.setPackages( packages.toString() );
+        record.setFiles( fileBuffer.toString() );
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/repository-manager/trunk/maven-repository-indexer/src/site/apt/design.apt
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/site/apt/design.apt?rev=425379&r1=425378&r2=425379&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/site/apt/design.apt (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/site/apt/design.apt Tue Jul 25 05:02:08 2006
@@ -66,10 +66,10 @@
 * Reduced Size Index
 
   An additional index is maintained by the repository manager in the
-  {{{../apidocs/org/apache/maven/repository/indexing/MinimalIndex.html} MinimalIndex}} class. This indexes all of the
-  same artifacts as the first index, but stores them with shorter field names and less information to maintain a smaller
-  size. This index is appropriate for use by certain clients such as IDE integration for fast searching. For a fuller
-  interface to the repository information, the integration should use the XMLRPC interface.
+  {{{../apidocs/org/apache/maven/repository/indexing/MinimalArtifactIndexRecord.html} MinimalIndex}} class. This
+  indexes all of the same artifacts as the first index, but stores them with shorter field names and less information to
+  maintain a smaller size. This index is appropriate for use by certain clients such as IDE integration for fast
+  searching. For a fuller interface to the repository information, the integration should use the XMLRPC interface.
 
   The following fields are in the reduced index:
 

Added: maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactoryTest.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactoryTest.java?rev=425379&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactoryTest.java (added)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactoryTest.java Tue Jul 25 05:02:08 2006
@@ -0,0 +1,117 @@
+package org.apache.maven.repository.indexing.record;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.File;
+
+/**
+ * Test the minimal artifact index record.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public class MinimalArtifactIndexRecordFactoryTest
+    extends PlexusTestCase
+{
+    private RepositoryIndexRecordFactory factory;
+
+    private ArtifactRepository repository;
+
+    private ArtifactFactory artifactFactory;
+
+    private static final String TEST_GROUP_ID = "org.apache.maven.repository.record";
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        factory = (RepositoryIndexRecordFactory) lookup( RepositoryIndexRecordFactory.ROLE, "minimal" );
+
+        artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
+
+        ArtifactRepositoryFactory repositoryFactory =
+            (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE );
+
+        ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" );
+
+        File file = getTestFile( "src/test/managed-repository" );
+        repository =
+            repositoryFactory.createArtifactRepository( "test", file.toURI().toURL().toString(), layout, null, null );
+    }
+
+    public void testIndexedJar()
+    {
+        Artifact artifact = createArtifact( "test-jar" );
+
+        RepositoryIndexRecord record = factory.createRecord( artifact );
+
+        MinimalArtifactIndexRecord expectedRecord = new MinimalArtifactIndexRecord();
+        expectedRecord.setMd5Checksum( "3a0adc365f849366cd8b633cad155cb7" );
+        expectedRecord.setFilename( "test-jar-1.0.jar" );
+        expectedRecord.setLastModified( artifact.getFile().lastModified() );
+        expectedRecord.setSize( artifact.getFile().length() );
+        expectedRecord.setClasses( "A\nB\nC\n" );
+
+        assertEquals( "check record", expectedRecord, record );
+    }
+
+    public void testCorruptJar()
+    {
+        Artifact artifact = createArtifact( "test-corrupt-jar" );
+
+        RepositoryIndexRecord record = factory.createRecord( artifact );
+
+        assertNull( "Confirm no record is returned", record );
+    }
+
+    public void testNonJar()
+    {
+        Artifact artifact = createArtifact( "test-dll", "1.0.1.34", "dll" );
+
+        RepositoryIndexRecord record = factory.createRecord( artifact );
+
+        assertNull( "Confirm no record is returned", record );
+    }
+
+    public void testMissingFile()
+    {
+        Artifact artifact = createArtifact( "test-foo" );
+
+        RepositoryIndexRecord record = factory.createRecord( artifact );
+
+        assertNull( "Confirm no record is returned", record );
+    }
+
+    private Artifact createArtifact( String artifactId )
+    {
+        return createArtifact( artifactId, "1.0", "jar" );
+    }
+
+    private Artifact createArtifact( String artifactId, String version, String type )
+    {
+        Artifact artifact = artifactFactory.createBuildArtifact( TEST_GROUP_ID, artifactId, version, type );
+        artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );
+        return artifact;
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactoryTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactoryTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactoryTest.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactoryTest.java?rev=425379&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactoryTest.java (added)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactoryTest.java Tue Jul 25 05:02:08 2006
@@ -0,0 +1,141 @@
+package org.apache.maven.repository.indexing.record;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.File;
+
+/**
+ * Test the minimal artifact index record.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public class StandardArtifactIndexRecordFactoryTest
+    extends PlexusTestCase
+{
+    private RepositoryIndexRecordFactory factory;
+
+    private ArtifactRepository repository;
+
+    private ArtifactFactory artifactFactory;
+
+    private static final String TEST_GROUP_ID = "org.apache.maven.repository.record";
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        factory = (RepositoryIndexRecordFactory) lookup( RepositoryIndexRecordFactory.ROLE, "standard" );
+
+        artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
+
+        ArtifactRepositoryFactory repositoryFactory =
+            (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE );
+
+        ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" );
+
+        File file = getTestFile( "src/test/managed-repository" );
+        repository =
+            repositoryFactory.createArtifactRepository( "test", file.toURI().toURL().toString(), layout, null, null );
+    }
+
+    public void testIndexedJar()
+    {
+        Artifact artifact = createArtifact( "test-jar" );
+
+        RepositoryIndexRecord record = factory.createRecord( artifact );
+
+        StandardArtifactIndexRecord expectedRecord = new StandardArtifactIndexRecord();
+        expectedRecord.setMd5Checksum( "3a0adc365f849366cd8b633cad155cb7" );
+        expectedRecord.setFilename( "test-jar-1.0.jar" );
+        expectedRecord.setLastModified( artifact.getFile().lastModified() );
+        expectedRecord.setSize( artifact.getFile().length() );
+        expectedRecord.setClasses( "A\nB\nC\n" );
+        expectedRecord.setArtifactId( "test-jar" );
+        expectedRecord.setGroupId( TEST_GROUP_ID );
+        expectedRecord.setVersion( "1.0" );
+        expectedRecord.setFiles( "META-INF/MANIFEST.MF\nA.class\nb/B.class\nb/c/C.class\n" );
+        expectedRecord.setPackages( "b\nb.c\n" );
+        expectedRecord.setSha1Checksum( "c66f18bf192cb613fc2febb4da541a34133eedc2" );
+        expectedRecord.setType( "jar" );
+        expectedRecord.setRepository( "test" );
+
+        assertEquals( "check record", expectedRecord, record );
+    }
+
+    public void testCorruptJar()
+    {
+        Artifact artifact = createArtifact( "test-corrupt-jar" );
+
+        RepositoryIndexRecord record = factory.createRecord( artifact );
+
+        assertNull( "Confirm no record is returned", record );
+    }
+
+    public void testDll()
+    {
+        Artifact artifact = createArtifact( "test-dll", "1.0.1.34", "dll" );
+
+        RepositoryIndexRecord record = factory.createRecord( artifact );
+
+        StandardArtifactIndexRecord expectedRecord = new StandardArtifactIndexRecord();
+        expectedRecord.setMd5Checksum( "d41d8cd98f00b204e9800998ecf8427e" );
+        expectedRecord.setFilename( "test-dll-1.0.1.34.dll" );
+        expectedRecord.setLastModified( artifact.getFile().lastModified() );
+        expectedRecord.setSize( artifact.getFile().length() );
+        expectedRecord.setArtifactId( "test-dll" );
+        expectedRecord.setGroupId( TEST_GROUP_ID );
+        expectedRecord.setVersion( "1.0.1.34" );
+        expectedRecord.setSha1Checksum( "da39a3ee5e6b4b0d3255bfef95601890afd80709" );
+        expectedRecord.setType( "dll" );
+        expectedRecord.setRepository( "test" );
+        expectedRecord.setClasses( "" );
+        expectedRecord.setPackages( "" );
+        expectedRecord.setFiles( "" );
+
+        assertEquals( "check record", expectedRecord, record );
+    }
+
+    public void testMissingFile()
+    {
+        Artifact artifact = createArtifact( "test-foo" );
+
+        RepositoryIndexRecord record = factory.createRecord( artifact );
+
+        assertNull( "Confirm no record is returned", record );
+    }
+
+    private Artifact createArtifact( String artifactId )
+    {
+        return createArtifact( artifactId, "1.0", "jar" );
+    }
+
+    private Artifact createArtifact( String artifactId, String version, String type )
+    {
+        Artifact artifact = artifactFactory.createBuildArtifact( TEST_GROUP_ID, artifactId, version, type );
+        artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );
+        artifact.setRepository( repository );
+        return artifact;
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactoryTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/test/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactoryTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-corrupt-jar/1.0/test-corrupt-jar-1.0.jar
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-corrupt-jar/1.0/test-corrupt-jar-1.0.jar?rev=425379&view=auto
==============================================================================
    (empty)

Added: maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-dll/1.0.1.34/test-dll-1.0.1.34.dll
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-dll/1.0.1.34/test-dll-1.0.1.34.dll?rev=425379&view=auto
==============================================================================
    (empty)

Added: maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-jar/1.0/test-jar-1.0.jar
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-jar/1.0/test-jar-1.0.jar?rev=425379&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/repository-manager/trunk/maven-repository-indexer/src/test/managed-repository/org/apache/maven/repository/record/test-jar/1.0/test-jar-1.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



Mime
View raw message