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
