Fix for initialization problems with new spring version

Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/2cc9dc8b
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/2cc9dc8b
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/2cc9dc8b

Branch: refs/heads/master
Commit: 2cc9dc8b4af78e78d46aab4b0472c2a710d5c740
Parents: 7e6ad27
Author: Martin Stockhammer <[email protected]>
Authored: Sun May 21 22:38:21 2017 +0200
Committer: Martin Stockhammer <[email protected]>
Committed: Sun May 21 22:38:21 2017 +0200

----------------------------------------------------------------------
 .../repository/jcr/JcrRepositorySessionFactory.java     | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/2cc9dc8b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySessionFactory.java
----------------------------------------------------------------------
diff --git 
a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySessionFactory.java
 
b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySessionFactory.java
index 8589ecb..1c51dfc 100644
--- 
a/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySessionFactory.java
+++ 
b/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrRepositorySessionFactory.java
@@ -57,7 +57,7 @@ public class JcrRepositorySessionFactory
     @Inject
     private Repository repository;
 
-    @Inject
+    // Lazy evaluation to avoid problems with circular dependencies during 
initialization
     private MetadataResolver metadataResolver;
 
     @Inject
@@ -75,7 +75,7 @@ public class JcrRepositorySessionFactory
             //  API.
             MetadataRepository metadataRepository = new JcrMetadataRepository( 
metadataFacetFactories, repository );
 
-            return new RepositorySession( metadataRepository, metadataResolver 
);
+            return new RepositorySession( metadataRepository, 
getMetadataResolver() );
         }
         catch ( RepositoryException e )
         {
@@ -84,6 +84,14 @@ public class JcrRepositorySessionFactory
         }
     }
 
+    // Lazy evaluation to avoid problems with circular dependencies during 
initialization
+    private MetadataResolver getMetadataResolver() {
+        if (this.metadataResolver==null) {
+            this.metadataResolver = applicationContext.getBean( 
MetadataResolver.class );
+        }
+        return this.metadataResolver;
+    }
+
     @PostConstruct
     public void initialize()
         throws Exception

Reply via email to