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 2019/10/30 15:03:25 UTC
[isis] 06/07: ISIS-2158: remove injection points from FormAbstract
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 5fa4560184b371c7f7fcc21e41cf0808bea46a68
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Oct 30 15:14:25 2019 +0100
ISIS-2158: remove injection points from FormAbstract
---
...doPersistenceCapableAnnotationFacetFactory.java | 3 +-
.../JdoPersistenceCapableFacetAbstract.java | 13 ++++-
.../JdoPersistenceCapableFacetImpl.java | 13 +++--
.../isis/runtime/system/context/IsisContext.java | 2 +
.../isis/viewer/wicket/ui/panels/FormAbstract.java | 58 +++++++++++-----------
5 files changed, 53 insertions(+), 36 deletions(-)
diff --git a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableAnnotationFacetFactory.java b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableAnnotationFacetFactory.java
index 039f470..80c2812 100644
--- a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableAnnotationFacetFactory.java
+++ b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableAnnotationFacetFactory.java
@@ -71,6 +71,5 @@ implements ObjectSpecIdFacetFactory {
annotationTableAttribute, annotationIdentityType, processClassContext.getFacetHolder()));
return;
}
-
-
+
}
diff --git a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetAbstract.java b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetAbstract.java
index 3dd58cf..fc84358 100644
--- a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetAbstract.java
+++ b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetAbstract.java
@@ -22,10 +22,12 @@ import java.util.Map;
import javax.jdo.annotations.IdentityType;
+import org.apache.isis.jdo.persistence.IsisPersistenceSessionJdo;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetAbstract;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.object.entity.EntityFacet;
+import org.apache.isis.runtime.system.persistence.PersistenceSession;
public abstract class JdoPersistenceCapableFacetAbstract
@@ -45,6 +47,7 @@ implements JdoPersistenceCapableFacet {
final String tableOrTypeName,
final IdentityType identityType,
final FacetHolder holder) {
+
super(JdoPersistenceCapableFacetAbstract.type(), holder, Derivation.NOT_DERIVED);
super.setFacetAliasType(EntityFacet.class);
this.schema = schemaName;
@@ -61,16 +64,24 @@ implements JdoPersistenceCapableFacet {
public String getSchema() {
return schema;
}
+
@Override
public String getTable() {
return table;
}
- @Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
+ @Override
+ public void appendAttributesTo(final Map<String, Object> attributeMap) {
super.appendAttributesTo(attributeMap);
attributeMap.put("schema", schema);
attributeMap.put("table", table);
attributeMap.put("identityType", identityType);
}
+ protected IsisPersistenceSessionJdo getPersistenceSessionJdo() {
+ return PersistenceSession.current(IsisPersistenceSessionJdo.class)
+ .getFirst()
+ .orElse(null);
+ }
+
}
diff --git a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
index 4998121..13d0769 100644
--- a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
+++ b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
@@ -27,7 +27,6 @@ import org.apache.isis.commons.internal.context._Context;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.system.context.IsisContext;
import lombok.val;
@@ -47,7 +46,7 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
//TODO simplify, spec is already loaded
- val persistenceSession = IsisContext.getPersistenceSession().get();
+ val persistenceSession = super.getPersistenceSessionJdo();
val adapter = persistenceSession.getObjectAdapterByIdProvider()
.adapterFor(Oid.Factory.persistentOf(spec.getSpecId(), identifier));
@@ -63,7 +62,7 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
return "?";
}
- val persistenceSession = IsisContext.getPersistenceSession().get();
+ val persistenceSession = super.getPersistenceSessionJdo();
val isRecognized = persistenceSession.isRecognized(pojo);
if(isRecognized) {
final String identifier = persistenceSession.identifierFor(pojo);
@@ -76,8 +75,14 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
@Override
public void persist(ObjectSpecification spec, Object pojo) {
- // TODO Auto-generated method stub
+
+ if(pojo==null || !isPersistableType(pojo.getClass())) {
+ return; //noop
+ }
+ val persistenceSession = super.getPersistenceSessionJdo();
+ //TODO don't bypass domain logic !?
+ persistenceSession.getJdoPersistenceManager().makePersistent(pojo);
}
// -- HELPER
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/IsisContext.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/IsisContext.java
index 9ffa7b9..841493b 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/IsisContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/IsisContext.java
@@ -86,11 +86,13 @@ public interface IsisContext {
* TODO [2033] its unclear whether there is only one or multiple
* @return framework's currently resolvable PersistenceSessions
*/
+ @Deprecated
public static Optional<PersistenceSession> getPersistenceSession() {
return PersistenceSession.current(PersistenceSession.class)
.getFirst();
}
+ @Deprecated
public static Function<RootOid, ObjectAdapter> rootOidToAdapter() {
return rootOid -> {
val ps = IsisContext.getPersistenceSession()
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
index 92bcc70..bb4d7fd 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
@@ -19,71 +19,71 @@
package org.apache.isis.viewer.wicket.ui.panels;
-import javax.inject.Inject;
-
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
-import org.apache.isis.metamodel.MetaModelContext;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.system.context.IsisContext;
-import org.apache.isis.runtime.system.persistence.PersistenceSession;
import org.apache.isis.security.authentication.AuthenticationSession;
+import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
import org.apache.isis.webapp.context.IsisWebAppCommonContext;
-import lombok.Getter;
-
public abstract class FormAbstract<T> extends Form<T>
implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor {
private static final long serialVersionUID = 1L;
+ private transient ComponentFactoryRegistry componentFactoryRegistry;
+ private transient PageClassRegistry pageClassRegistry;
+ private transient IsisWebAppCommonContext commonContext;
+
public FormAbstract(final String id) {
super(id);
- this.commonContext = IsisWebAppCommonContext.of(metaModelContext);
}
public FormAbstract(final String id, final IModel<T> model) {
super(id, model);
- this.commonContext = IsisWebAppCommonContext.of(metaModelContext);
}
- // ///////////////////////////////////////////////////////////////////
- // Convenience
- // ///////////////////////////////////////////////////////////////////
-
+ public IsisWebAppCommonContext getCommonContext() {
+ return commonContext = CommonContextUtils.computeIfAbsent(commonContext);
+ }
+
@Override
public ComponentFactoryRegistry getComponentFactoryRegistry() {
- return ((ComponentFactoryRegistryAccessor) getApplication()).getComponentFactoryRegistry();
+ if(componentFactoryRegistry==null) {
+ componentFactoryRegistry = ((ComponentFactoryRegistryAccessor) getApplication()).getComponentFactoryRegistry();
+ }
+ return componentFactoryRegistry;
}
@Override
public PageClassRegistry getPageClassRegistry() {
- return ((PageClassRegistryAccessor) getApplication()).getPageClassRegistry();
+ if(pageClassRegistry==null) {
+ pageClassRegistry = ((PageClassRegistryAccessor) getApplication()).getPageClassRegistry();
+ }
+ return pageClassRegistry;
}
- // ///////////////////////////////////////////////////////////////////
- // Dependencies (from IsisContext)
- // ///////////////////////////////////////////////////////////////////
-
- protected PersistenceSession getPersistenceSession() {
- return IsisContext.getPersistenceSession().orElse(null);
+ protected SpecificationLoader getSpecificationLoader() {
+ return getCommonContext().getSpecificationLoader();
}
- protected AuthenticationSession getAuthenticationSession() {
- return commonContext.getAuthenticationSession();
+ protected ServiceRegistry getServiceRegistry() {
+ return getCommonContext().getServiceRegistry();
+ }
+
+ protected TranslationService getTranslationService() {
+ return getCommonContext().getTranslationService();
+ }
+
+ protected AuthenticationSession getAuthenticationSession() {
+ return getCommonContext().getAuthenticationSession();
}
-
- @Inject @Getter protected transient SpecificationLoader specificationLoader;
- @Inject @Getter protected transient ServiceRegistry serviceRegistry;
- @Inject @Getter protected transient TranslationService translationService;
- @Inject private transient MetaModelContext metaModelContext;
- @Getter protected final transient IsisWebAppCommonContext commonContext;
}