You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/02/21 07:55:32 UTC

[isis] branch master updated: ISIS-1970: fixes regression (jaxbService circular deps)

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 22b0630  ISIS-1970: fixes regression (jaxbService circular deps)
22b0630 is described below

commit 22b0630ba8a0e45abe633883acbbe684b504dbef
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Feb 21 08:55:19 2020 +0100

    ISIS-1970: fixes regression (jaxbService circular deps)
---
 .../applib/services/jaxb/JaxbServiceDefault.java   | 18 ++++++++++++---
 .../applib/fixturescripts/FixtureScripts.java      | 27 ++++++++++------------
 2 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbServiceDefault.java b/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbServiceDefault.java
index e76bece..ae574a6 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbServiceDefault.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbServiceDefault.java
@@ -20,6 +20,7 @@ package org.apache.isis.applib.services.jaxb;
 
 import java.util.Map;
 
+import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 import javax.inject.Named;
 import javax.xml.bind.JAXBContext;
@@ -40,22 +41,33 @@ import org.apache.isis.applib.jaxbadapters.PersistentEntitiesAdapter;
 import org.apache.isis.applib.jaxbadapters.PersistentEntityAdapter;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
+
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
 
 @Service
 @Named("isisApplib.JaxbServiceDefault")
 @Order(OrderPrecedence.MIDPOINT)
 @Primary
 @Qualifier("Default")
+@NoArgsConstructor @AllArgsConstructor
 public class JaxbServiceDefault extends JaxbService.Simple {
 
-    private final ServiceInjector serviceInjector;
-    private final MetaModelService metaModelService;
+    @Inject private ServiceRegistry serviceRegistry;
+    @Inject private ServiceInjector serviceInjector;
+    /*@Inject circular dependency*/private MetaModelService metaModelService;
 
-    @Inject
+    /*@Inject circular dependency*/
     public JaxbServiceDefault(ServiceInjector serviceInjector, MetaModelService metaModelService) {
         this.serviceInjector = serviceInjector;
         this.metaModelService = metaModelService;
     }
+    
+    @PostConstruct
+    public void init(){
+        this.metaModelService = serviceRegistry.lookupServiceElseFail(MetaModelService.class);
+    }
 
     @Override
     public Object fromXml(final JAXBContext jaxbContext, final String xml, final Map<String, Object> unmarshallerProperties) {
diff --git a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScripts.java b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScripts.java
index 1f95fc0..7cd0e46 100644
--- a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScripts.java
+++ b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScripts.java
@@ -76,6 +76,18 @@ import lombok.val;
 )
 public class FixtureScripts extends AbstractService {
 
+    //  @Inject private FactoryService factoryService;
+    @Inject private TitleService titleService;
+    @Inject private JaxbService jaxbService;
+    //  @Inject private BookmarkService bookmarkService;
+    @Inject private ServiceRegistry serviceRegistry;
+    @Inject private ServiceInjector serviceInjector;
+    @Inject private RepositoryService repositoryService;
+    @Inject private TransactionService transactionService;
+    @Inject private ExecutionParametersService executionParametersService;
+
+    @Inject private EventBusService eventBusService;
+
 
     // -- Specification, nonPersistedObjectsStrategy, multipleExecutionStrategy enums
 
@@ -487,21 +499,6 @@ public class FixtureScripts extends AbstractService {
 
     }
 
-    // -- DEPENDENCIES
-
-    @Inject FactoryService factoryService;
-    @Inject TitleService titleService;
-    @Inject JaxbService jaxbService;
-    @Inject BookmarkService bookmarkService;
-    @Inject ServiceRegistry serviceRegistry;
-    @Inject ServiceInjector serviceInjector;
-    @Inject RepositoryService repositoryService;
-    @Inject TransactionService transactionService;
-    @Inject ExecutionParametersService executionParametersService;
-
-    @Inject EventBusService eventBusService;
-
-
     // -- DEPRECATIONS
  
     /**