Author: olamy
Date: Sun Jun  9 12:23:56 2013
New Revision: 1491196

URL: http://svn.apache.org/r1491196
Log:
fix storing MetadataFacet at repository level with empty values

Modified:
    
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java

Modified: 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
URL: 
http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java?rev=1491196&r1=1491195&r2=1491196&view=diff
==============================================================================
--- 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
 (original)
+++ 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
 Sun Jun  9 12:23:56 2013
@@ -1080,30 +1080,28 @@ public class CassandraMetadataRepository
         throws MetadataRepositoryException
     {
 
-        if ( metadataFacet == null || metadataFacet.toProperties() == null || 
metadataFacet.toProperties().isEmpty() )
+        if ( metadataFacet == null )
         {
             return;
         }
-        for ( Map.Entry<String, String> entry : 
metadataFacet.toProperties().entrySet() )
-        {
 
+        if ( metadataFacet.toProperties().isEmpty() )
+        {
             String key = new MetadataFacetModel.KeyBuilder().withRepositoryId( 
repositoryId ).withFacetId(
-                metadataFacet.getFacetId() ).withName( metadataFacet.getName() 
).withKey( entry.getKey() ).build();
-
+                metadataFacet.getFacetId() ).withName( metadataFacet.getName() 
).build();
             MetadataFacetModel metadataFacetModel = 
metadataFacetModelEntityManager.get( key );
             if ( metadataFacetModel == null )
             {
                 metadataFacetModel = new MetadataFacetModel();
-                // we need to store the repositoryId
-                ArtifactMetadataModel artifactMetadataModel = new 
ArtifactMetadataModel();
-                artifactMetadataModel.setRepositoryId( repositoryId );
-                metadataFacetModel.setArtifactMetadataModel( 
artifactMetadataModel );
-                metadataFacetModel.setId( key );
-                metadataFacetModel.setKey( entry.getKey() );
-                metadataFacetModel.setFacetId( metadataFacet.getFacetId() );
-                metadataFacetModel.setName( metadataFacetModel.getName() );
             }
-            metadataFacetModel.setValue( entry.getValue() );
+            // we need to store the repositoryId
+            ArtifactMetadataModel artifactMetadataModel = new 
ArtifactMetadataModel();
+            artifactMetadataModel.setRepositoryId( repositoryId );
+            metadataFacetModel.setArtifactMetadataModel( artifactMetadataModel 
);
+            metadataFacetModel.setId( key );
+            metadataFacetModel.setFacetId( metadataFacet.getFacetId() );
+            metadataFacetModel.setName( metadataFacetModel.getName() );
+
             try
             {
                 metadataFacetModelEntityManager.put( metadataFacetModel );
@@ -1112,7 +1110,39 @@ public class CassandraMetadataRepository
             {
                 throw new MetadataRepositoryException( e.getMessage(), e );
             }
+        }
+        else
+        {
+            for ( Map.Entry<String, String> entry : 
metadataFacet.toProperties().entrySet() )
+            {
+
+                String key = new 
MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
+                    metadataFacet.getFacetId() ).withName( 
metadataFacet.getName() ).withKey( entry.getKey() ).build();
 
+                MetadataFacetModel metadataFacetModel = 
metadataFacetModelEntityManager.get( key );
+                if ( metadataFacetModel == null )
+                {
+                    metadataFacetModel = new MetadataFacetModel();
+                    // we need to store the repositoryId
+                    ArtifactMetadataModel artifactMetadataModel = new 
ArtifactMetadataModel();
+                    artifactMetadataModel.setRepositoryId( repositoryId );
+                    metadataFacetModel.setArtifactMetadataModel( 
artifactMetadataModel );
+                    metadataFacetModel.setId( key );
+                    metadataFacetModel.setKey( entry.getKey() );
+                    metadataFacetModel.setFacetId( metadataFacet.getFacetId() 
);
+                    metadataFacetModel.setName( metadataFacetModel.getName() );
+                }
+                metadataFacetModel.setValue( entry.getValue() );
+                try
+                {
+                    metadataFacetModelEntityManager.put( metadataFacetModel );
+                }
+                catch ( PersistenceException e )
+                {
+                    throw new MetadataRepositoryException( e.getMessage(), e );
+                }
+
+            }
         }
     }
 


Reply via email to