You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by oc...@apache.org on 2007/08/14 13:28:05 UTC
svn commit: r565706 -
/maven/sandbox/trunk/archiva/archiva-consumer-plugin/src/main/java/org/apache/maven/archiva/consumer/plugin/DiscoverNewArtifactConsumer.java
Author: oching
Date: Tue Aug 14 04:28:05 2007
New Revision: 565706
URL: http://svn.apache.org/viewvc?view=rev&rev=565706
Log:
[MRM-471]
- Added method for dumping new discovered artifacts into a file
Modified:
maven/sandbox/trunk/archiva/archiva-consumer-plugin/src/main/java/org/apache/maven/archiva/consumer/plugin/DiscoverNewArtifactConsumer.java
Modified: maven/sandbox/trunk/archiva/archiva-consumer-plugin/src/main/java/org/apache/maven/archiva/consumer/plugin/DiscoverNewArtifactConsumer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archiva/archiva-consumer-plugin/src/main/java/org/apache/maven/archiva/consumer/plugin/DiscoverNewArtifactConsumer.java?view=diff&rev=565706&r1=565705&r2=565706
==============================================================================
--- maven/sandbox/trunk/archiva/archiva-consumer-plugin/src/main/java/org/apache/maven/archiva/consumer/plugin/DiscoverNewArtifactConsumer.java (original)
+++ maven/sandbox/trunk/archiva/archiva-consumer-plugin/src/main/java/org/apache/maven/archiva/consumer/plugin/DiscoverNewArtifactConsumer.java Tue Aug 14 04:28:05 2007
@@ -24,15 +24,12 @@
import org.apache.maven.archiva.consumers.ConsumerException;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.FileTypes;
-import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayoutFactory;
-import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
-import org.apache.maven.archiva.repository.layout.LayoutException;
import org.apache.maven.archiva.model.ArchivaRepository;
-import org.apache.maven.archiva.model.ArchivaArtifact;
import org.apache.maven.archiva.indexer.search.CrossRepositorySearch;
import org.apache.maven.archiva.indexer.search.SearchResults;
import org.apache.maven.archiva.indexer.search.SearchResultLimits;
import org.apache.maven.archiva.indexer.search.SearchResultHit;
+import org.apache.commons.io.IOUtils;
import org.codehaus.plexus.registry.RegistryListener;
import org.codehaus.plexus.registry.Registry;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
@@ -41,6 +38,10 @@
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
+import java.io.File;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
/**
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
@@ -75,11 +76,6 @@
/**
* @plexus.requirement
*/
- private BidirectionalRepositoryLayoutFactory layoutFactory;
-
- /**
- * @plexus.requirement
- */
private ArchivaConfiguration configuration;
private List propertyNameTriggers = new ArrayList();
@@ -88,9 +84,9 @@
private ArchivaRepository repository;
- private List newArtifacts = new ArrayList();
+ private File dumpFile;
- private BidirectionalRepositoryLayout repositoryLayout;
+ private static final String DUMP_FILE_NAME = "new-artifacts.zzz";
public String getId()
{
@@ -126,60 +122,60 @@
}
this.repository = repository;
+ dumpFile = new File( repository.getUrl().getPath() + "/" + DUMP_FILE_NAME );
try
{
- this.repositoryLayout = layoutFactory.getLayout( this.repository.getLayoutType() );
+ if ( dumpFile.exists() )
+ {
+ dumpFile.delete();
+ dumpFile = null;
+ dumpFile = new File( repository.getUrl().getPath() + "/" + DUMP_FILE_NAME );
+ }
+
+ dumpFile.createNewFile();
}
- catch ( LayoutException e )
+ catch ( IOException ie )
{
- throw new ConsumerException(
- "Unable to initialize consumer due to unknown repository layout: " + e.getMessage(), e );
+ throw new ConsumerException( ie.getMessage() );
}
}
public void processFile( String path )
throws ConsumerException
{
- // @todo needs to be tested!
- SearchResults results =
- repoSearch.searchForTerm( repository.getId() + "/" + path, new SearchResultLimits( 0 ) );
+ String id = repository.getId() + "/" + path;
+
+ SearchResults results = repoSearch.searchForTerm( path, new SearchResultLimits( 0 ) );
+
List hits = results.getHits();
boolean found = false;
+
for ( Iterator iter = hits.iterator(); iter.hasNext(); )
{
SearchResultHit hit = (SearchResultHit) iter.next();
- if ( ( repository.getId() + "/" + path ).equalsIgnoreCase( hit.getUrl() ) )
+ if ( id.equalsIgnoreCase( hit.getUrl() ) )
{
found = true;
break;
}
}
- if ( found )
+ if ( !found )
{
try
{
- ArchivaArtifact artifact = this.repositoryLayout.toArtifact( path );
- newArtifacts.add( artifact );
+ dumpToFile( id );
}
- catch ( LayoutException e )
+ catch ( IOException ie )
{
- // Not an artifact.
+ throw new ConsumerException( ie.getMessage() );
}
}
}
public void completeScan()
{
- // @todo dump into file
- for ( Iterator iter = newArtifacts.iterator(); iter.hasNext(); )
- {
- ArchivaArtifact artifact = (ArchivaArtifact) iter.next();
- //System.out.println( "\n %%%%%% NEW ARTIFACT == " + artifact.getGroupId() + ":" +
- // artifact.getArtifactId() + ":" + artifact.getVersion() + ":" + artifact.getType() );
- }
-
/* do nothing */
}
@@ -218,4 +214,10 @@
initIncludes();
}
+ private void dumpToFile( String id )
+ throws IOException
+ {
+ IOUtils.write( ( IOUtils.toString( new FileInputStream( dumpFile ) ) + "\n" + id ),
+ new FileOutputStream( dumpFile ) );
+ }
}