Author: brett
Date: Fri Nov 20 12:14:04 2009
New Revision: 882532
URL: http://svn.apache.org/viewvc?rev=882532&view=rev
Log:
[MRM-1282] load content only from a single node at a time
Modified:
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectBuildMetadata.java
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectMetadata.java
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
Modified:
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
URL:
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java?rev=882532&r1=882531&r2=882532&view=diff
==============================================================================
---
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
(original)
+++
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
Fri Nov 20 12:14:04 2009
@@ -152,13 +152,13 @@
artifactMeta.setUpdated( file.lastModified() );
artifactMeta.setSize( file.length() );
- build.addArtifact( artifactMeta );
- project.addBuild( build );
-
// TODO: store "whenGathered"
+ // TODO: transaction
// read the metadata and update it if it is newer or doesn't exist
- metadataRepository.update( project );
+ metadataRepository.updateArtifact( metadataId, build.getId(),
artifactMeta );
+ metadataRepository.updateBuild( metadataId, build );
+ metadataRepository.updateProject( project );
}
public void completeScan()
Modified:
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectBuildMetadata.java
URL:
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectBuildMetadata.java?rev=882532&r1=882531&r2=882532&view=diff
==============================================================================
---
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectBuildMetadata.java
(original)
+++
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectBuildMetadata.java
Fri Nov 20 12:14:04 2009
@@ -19,16 +19,10 @@
* under the License.
*/
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
public class ProjectBuildMetadata
{
private String id;
- private Map<String, ArtifactMetadata> artifacts = new
LinkedHashMap<String, ArtifactMetadata>();
-
public String getId()
{
return id;
@@ -39,13 +33,4 @@
this.id = id;
}
- public void addArtifact( ArtifactMetadata artifact )
- {
- this.artifacts.put( artifact.getId(), artifact );
- }
-
- public Collection<ArtifactMetadata> getArtifacts()
- {
- return artifacts.values();
- }
}
Modified:
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectMetadata.java
URL:
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectMetadata.java?rev=882532&r1=882531&r2=882532&view=diff
==============================================================================
---
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectMetadata.java
(original)
+++
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectMetadata.java
Fri Nov 20 12:14:04 2009
@@ -19,15 +19,9 @@
* under the License.
*/
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
public class ProjectMetadata
{
private String id;
-
- private Map<String, ProjectBuildMetadata> builds = new
LinkedHashMap<String, ProjectBuildMetadata>();
public void setId( String id )
{
@@ -39,13 +33,4 @@
return id;
}
- public void addBuild( ProjectBuildMetadata build )
- {
- this.builds.put( build.getId(), build );
- }
-
- public Collection<ProjectBuildMetadata> getBuilds()
- {
- return builds.values();
- }
}
Modified:
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
URL:
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java?rev=882532&r1=882531&r2=882532&view=diff
==============================================================================
---
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
(original)
+++
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
Fri Nov 20 12:14:04 2009
@@ -19,6 +19,8 @@
* under the License.
*/
+import org.apache.archiva.metadata.model.ArtifactMetadata;
+import org.apache.archiva.metadata.model.ProjectBuildMetadata;
import org.apache.archiva.metadata.model.ProjectMetadata;
public interface MetadataRepository
@@ -28,6 +30,9 @@
* Update metadata for a particular project in the metadata repository, or
create it if it does not already exist.
* @param project the project metadata to create or update
*/
- void update( ProjectMetadata project );
+ void updateProject( ProjectMetadata project );
+ void updateArtifact( String projectId, String buildId, ArtifactMetadata
artifactMeta );
+
+ void updateBuild( String projectId, ProjectBuildMetadata build );
}
Modified:
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
URL:
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java?rev=882532&r1=882531&r2=882532&view=diff
==============================================================================
---
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
(original)
+++
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
Fri Nov 20 12:14:04 2009
@@ -20,6 +20,7 @@
*/
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -41,18 +42,15 @@
this.directory = directory;
}
- public void update( ProjectMetadata project )
+ public void updateProject( ProjectMetadata project )
{
// TODO: this is a more braindead implementation than we would
normally expect, for prototyping purposes
try
{
File projectDirectory = new File( this.directory, project.getId()
);
- store( project, projectDirectory );
-
- for ( ProjectBuildMetadata build : project.getBuilds() )
- {
- store( build, projectDirectory );
- }
+ Properties properties = new Properties();
+ properties.setProperty( "id", project.getId() );
+ writeProperties( properties, projectDirectory );
}
catch ( IOException e )
{
@@ -61,32 +59,65 @@
}
}
- private void store( ProjectBuildMetadata build, File directory )
- throws FileNotFoundException, IOException
+ public void updateBuild( String projectId, ProjectBuildMetadata build )
{
+ File directory = new File( this.directory, projectId );
+
Properties properties = new Properties();
properties.setProperty( "id", build.getId() );
-
- for ( ArtifactMetadata artifact : build.getArtifacts() )
+
+ try
+ {
+ writeProperties( properties, new File( directory, build.getId() )
);
+ }
+ catch ( IOException e )
{
- properties.setProperty( artifact.getId() + ".updated",
Long.toString( artifact.getUpdated().getTime() ) );
- properties.setProperty( artifact.getId() + ".size", Long.toString(
artifact.getSize() ) );
+ // TODO
+ e.printStackTrace(); //To change body of catch statement use File
| Settings | File Templates.
}
-
- writeProperties( properties, new File( directory, build.getId() ) );
}
- private void store( ProjectMetadata project, File directory )
- throws FileNotFoundException, IOException
+ public void updateArtifact( String projectId, String buildId,
ArtifactMetadata artifact )
{
+ File directory = new File( this.directory, projectId + "/" + buildId );
Properties properties = new Properties();
- properties.setProperty( "id", project.getId() );
- writeProperties( properties, directory );
+ FileInputStream in = null;
+ try
+ {
+ in = new FileInputStream( new File( directory, "metadata.xml" ) );
+ properties.load( in );
+ }
+ catch ( FileNotFoundException e )
+ {
+ // skip - use blank properties
+ }
+ catch ( IOException e )
+ {
+ // TODO
+ e.printStackTrace(); //To change body of catch statement use File
| Settings | File Templates.
+ }
+ finally
+ {
+ IOUtils.closeQuietly( in );
+ }
+
+ properties.setProperty( artifact.getId() + ".updated", Long.toString(
artifact.getUpdated().getTime() ) );
+ properties.setProperty( artifact.getId() + ".size", Long.toString(
artifact.getSize() ) );
+
+ try
+ {
+ writeProperties( properties, directory );
+ }
+ catch ( IOException e )
+ {
+ // TODO
+ e.printStackTrace(); //To change body of catch statement use File
| Settings | File Templates.
+ }
}
private void writeProperties( Properties properties, File directory )
- throws FileNotFoundException, IOException
+ throws IOException
{
directory.mkdirs();
FileOutputStream os = new FileOutputStream( new File( directory,
"metadata.xml" ) );