You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/09/03 18:19:28 UTC
[1/4] isis git commit: ISIS-1194: removing ServicesProvider from
RuntimeContext and elsewhere, instead use ServicesInjector.
Repository: isis
Updated Branches:
refs/heads/master 69450a333 -> bafce5535
ISIS-1194: removing ServicesProvider from RuntimeContext and elsewhere, instead use ServicesInjector.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/dbc7a39e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/dbc7a39e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/dbc7a39e
Branch: refs/heads/master
Commit: dbc7a39e27b06bb871341672add491716de86f64
Parents: 69450a3
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 3 16:10:54 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 3 16:10:54 2015 +0100
----------------------------------------------------------------------
.../metamodel/adapter/ServicesProvider.java | 36 -----------------
.../adapter/ServicesProviderAbstract.java | 29 --------------
.../adapter/ServicesProviderAware.java | 26 ------------
.../runtimecontext/RuntimeContext.java | 3 --
.../runtimecontext/RuntimeContextAbstract.java | 1 -
.../noruntime/RuntimeContextNoRuntime.java | 30 --------------
.../spec/ObjectSpecificationDependencies.java | 22 ++++++----
.../spec/feature/ObjectMemberDependencies.java | 12 +++---
.../specloader/ObjectReflectorDefault.java | 42 ++++++++++++++------
.../specimpl/ObjectActionContributee.java | 6 +--
.../specimpl/ObjectMemberAbstract.java | 10 ++---
.../specimpl/ObjectSpecificationAbstract.java | 37 +++++++++--------
.../metamodel/app/IsisMetaModelTest_init.java | 6 ---
.../internal/RuntimeContextFromSession.java | 19 ---------
.../runtime/system/ObjectActionImplTest.java | 16 ++++----
.../system/OneToManyAssociationImplTest.java | 7 ++--
...WrapperFactoryDefaultTest_wrappedObject.java | 12 ++++--
17 files changed, 100 insertions(+), 214 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProvider.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProvider.java
deleted file mode 100644
index f315aaa..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.isis.core.metamodel.adapter;
-
-import java.util.List;
-
-import org.apache.isis.core.commons.components.Injectable;
-
-public interface ServicesProvider extends Injectable {
-
- /**
- * Provided by <tt>PersistenceSession</tt> when used by framework.
- *
- * <p>
- * Called by <tt>IntrospectableSpecification</tt>,
- * <tt>JavaSpecification</tt>
- */
- List<ObjectAdapter> getServices();
-
- <T> T lookupService(Class<T> cls);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProviderAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProviderAbstract.java
deleted file mode 100644
index 0108057..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProviderAbstract.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.isis.core.metamodel.adapter;
-
-public abstract class ServicesProviderAbstract implements ServicesProvider {
-
- @Override
- public void injectInto(final Object candidate) {
- if (ServicesProviderAware.class.isAssignableFrom(candidate.getClass())) {
- final ServicesProviderAware cast = ServicesProviderAware.class.cast(candidate);
- cast.setServicesProvider(this);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProviderAware.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProviderAware.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProviderAware.java
deleted file mode 100644
index 59678a2..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ServicesProviderAware.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.adapter;
-
-public interface ServicesProviderAware {
-
- public void setServicesProvider(final ServicesProvider servicesProvider);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
index 93ad76e..e68e441 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
@@ -28,7 +28,6 @@ import org.apache.isis.core.metamodel.adapter.LocalizationProvider;
import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
@@ -63,8 +62,6 @@ public interface RuntimeContext extends Injectable, ApplicationScopedComponent {
public SpecificationLoader getSpecificationLoader();
- public ServicesProvider getServicesProvider();
-
public ServicesInjector getServicesInjector();
public ObjectDirtier getObjectDirtier();
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
index 0f32c96..ea88d6a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
@@ -72,7 +72,6 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
getObjectDirtier().injectInto(candidate);
getObjectPersistor().injectInto(candidate);
getQuerySubmitter().injectInto(candidate);
- getServicesProvider().injectInto(candidate);
getSpecificationLoader().injectInto(candidate);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
index c0c511f..037db4d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
@@ -371,36 +371,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
return servicesInjector;
}
- // ///////////////////////////////////////////
- // allInstances, allMatching*
- // ///////////////////////////////////////////
-
- public List<ObjectAdapter> allInstances(final ObjectSpecification noSpec) {
- throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
- }
-
- // ///////////////////////////////////////////
- // getServices, injectDependenciesInto
- // ///////////////////////////////////////////
-
- @Override
- public ServicesProvider getServicesProvider() {
- return new ServicesProviderAbstract() {
- /**
- * Just returns an empty array.
- */
- @Override
- public List<ObjectAdapter> getServices() {
- return Collections.emptyList();
- }
-
- @Override
- public <T> T lookupService(Class<T> cls) {
- return null;
- }
- };
- }
-
@Override
public LocalizationProvider getLocalizationProvider() {
return localizationProvider;
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
index 4240d69..d9503fd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
@@ -16,37 +16,41 @@
*/
package org.apache.isis.core.metamodel.spec;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
public class ObjectSpecificationDependencies {
private final DeploymentCategory deploymentCategory;
- private final ServicesProvider servicesProvider;
+ private final ServicesInjector servicesInjector;
private final ObjectInstantiator objectInstantiator;
private final SpecificationLoader specificationLoader;
private final FacetProcessor facetProcessor;
+ private final AdapterManager adapterManager;
public ObjectSpecificationDependencies(
final DeploymentCategory deploymentCategory,
- final ServicesProvider servicesProvider,
+ final ServicesInjector servicesInjector,
final ObjectInstantiator objectInstantiator,
final SpecificationLoader specificationLoader,
- final FacetProcessor facetProcessor) {
+ final FacetProcessor facetProcessor,
+ final AdapterManager adapterManager) {
this.deploymentCategory = deploymentCategory;
- this.servicesProvider = servicesProvider;
+ this.servicesInjector = servicesInjector;
this.objectInstantiator = objectInstantiator;
this.specificationLoader = specificationLoader;
this.facetProcessor = facetProcessor;
+ this.adapterManager = adapterManager;
}
public DeploymentCategory getDeploymentCategory() {
return deploymentCategory;
}
- public ServicesProvider getServicesProvider() {
- return servicesProvider;
+ public ServicesInjector getServicesInjector() {
+ return servicesInjector;
}
public ObjectInstantiator getObjectInstantiator() {
@@ -60,4 +64,8 @@ public class ObjectSpecificationDependencies {
public FacetProcessor getFacetProcessor() {
return facetProcessor;
}
+
+ public AdapterManager getAdapterManager() {
+ return adapterManager;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
index a323828..c792613 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
@@ -17,8 +17,8 @@
package org.apache.isis.core.metamodel.spec.feature;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
public class ObjectMemberDependencies {
@@ -26,19 +26,19 @@ public class ObjectMemberDependencies {
private final SpecificationLoader specificationLoader;
private final AdapterManager adapterManager;
private final QuerySubmitter querySubmitter;
- private final ServicesProvider servicesProvider;
+ private final ServicesInjector servicesInjector;
public ObjectMemberDependencies(
final SpecificationLoader specificationLoader,
final AdapterManager adapterManager,
final QuerySubmitter querySubmitter,
- final ServicesProvider servicesProvider) {
+ final ServicesInjector servicesInjector) {
this.specificationLoader = specificationLoader;
this.adapterManager = adapterManager;
this.querySubmitter = querySubmitter;
- this.servicesProvider = servicesProvider;
+ this.servicesInjector = servicesInjector;
}
public SpecificationLoader getSpecificationLoader() {
@@ -49,8 +49,8 @@ public class ObjectMemberDependencies {
return adapterManager;
}
- public ServicesProvider getServicesProvider() {
- return servicesProvider;
+ public ServicesInjector getServicesInjector() {
+ return servicesInjector;
}
public QuerySubmitter getQuerySubmitter() {
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index 198a2f7..760837c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -20,13 +20,19 @@
package org.apache.isis.core.metamodel.specloader;
import java.lang.reflect.Method;
-import java.util.*;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.debug.DebugBuilder;
@@ -35,7 +41,6 @@ import org.apache.isis.core.commons.ensure.Assert;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.lang.ClassUtil;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -51,7 +56,16 @@ import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
-import org.apache.isis.core.metamodel.spec.*;
+import org.apache.isis.core.metamodel.spec.FreeStandingList;
+import org.apache.isis.core.metamodel.spec.InjectorMethodEvaluator;
+import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.ObjectSpecificationDependencies;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpiAware;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
@@ -433,26 +447,28 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
*/
private ObjectSpecification createSpecification(final Class<?> cls) {
- final AuthenticationSessionProvider authenticationSessionProvider = getRuntimeContext().getAuthenticationSessionProvider();
final SpecificationLoader specificationLookup = getRuntimeContext().getSpecificationLoader();
- final ServicesProvider servicesProvider = getRuntimeContext().getServicesProvider();
+ final ServicesInjector servicesInjector = getRuntimeContext().getServicesInjector();
final ObjectInstantiator objectInstantiator = getRuntimeContext().getObjectInstantiator();
+ final AdapterManager adapterManager = getRuntimeContext().getAdapterManager();
- // create contexts as inputs ...
- final ObjectSpecificationDependencies specContext = new ObjectSpecificationDependencies(getDeploymentCategory(), servicesProvider, objectInstantiator, specificationLookup, facetProcessor);
+ final ObjectSpecificationDependencies specContext =
+ new ObjectSpecificationDependencies(
+ getDeploymentCategory(), servicesInjector, objectInstantiator, specificationLookup,
+ facetProcessor, adapterManager);
- final AdapterManager adapterMap = getRuntimeContext().getAdapterManager();
final ObjectMemberDependencies objectMemberDependencies = new ObjectMemberDependencies(
- specificationLookup, adapterMap, getRuntimeContext().getQuerySubmitter(), servicesProvider);
+ specificationLookup, adapterManager, getRuntimeContext().getQuerySubmitter(), servicesInjector);
// ... and create the specs
if (FreeStandingList.class.isAssignableFrom(cls)) {
return new ObjectSpecificationOnStandaloneList(specContext, objectMemberDependencies);
} else {
final SpecificationLoaderSpi specificationLoader = this;
- final ServicesInjector dependencyInjector = getRuntimeContext().getServicesInjector();
- final CreateObjectContext createObjectContext = new CreateObjectContext(adapterMap, dependencyInjector);
- final FacetedMethodsBuilderContext facetedMethodsBuilderContext = new FacetedMethodsBuilderContext(specificationLoader, facetProcessor, layoutMetadataReaders);
+ final CreateObjectContext createObjectContext = new CreateObjectContext(adapterManager, servicesInjector);
+ final FacetedMethodsBuilderContext facetedMethodsBuilderContext =
+ new FacetedMethodsBuilderContext(
+ specificationLoader, facetProcessor, layoutMetadataReaders);
return new ObjectSpecificationDefault(cls, facetedMethodsBuilderContext, specContext,
objectMemberDependencies, createObjectContext);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
index 895886f..7202e6f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
@@ -213,7 +213,7 @@ public class ObjectActionContributee extends ObjectActionImpl implements Contrib
final BulkFacet bulkFacet = getFacet(BulkFacet.class);
if (bulkFacet != null) {
- final ActionInvocationContext actionInvocationContext = getServicesProvider().lookupService(ActionInvocationContext.class);
+ final ActionInvocationContext actionInvocationContext = getServicesInjector().lookupService(ActionInvocationContext.class);
if (actionInvocationContext != null &&
actionInvocationContext.getInvokedOn() == null) {
@@ -221,7 +221,7 @@ public class ObjectActionContributee extends ObjectActionImpl implements Contrib
actionInvocationContext.setDomainObjects(Collections.singletonList(contributee.getObject()));
}
- final Bulk.InteractionContext bulkInteractionContext = getServicesProvider().lookupService(Bulk.InteractionContext.class);
+ final Bulk.InteractionContext bulkInteractionContext = getServicesInjector().lookupService(Bulk.InteractionContext.class);
if (bulkInteractionContext != null &&
bulkInteractionContext.getInvokedAs() == null) {
@@ -232,7 +232,7 @@ public class ObjectActionContributee extends ObjectActionImpl implements Contrib
}
- final CommandContext commandContext = getServicesProvider().lookupService(CommandContext.class);
+ final CommandContext commandContext = getServicesInjector().lookupService(CommandContext.class);
final Command command = commandContext != null ? commandContext.getCommand() : null;
if(command != null && command.getExecutor() == Executor.USER) {
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index 3edcbbf..5c74338 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -28,7 +28,6 @@ import org.apache.isis.applib.filter.Filter;
import org.apache.isis.core.commons.lang.StringExtensions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -48,6 +47,7 @@ import org.apache.isis.core.metamodel.interactions.InteractionContext;
import org.apache.isis.core.metamodel.interactions.InteractionUtils;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
@@ -68,7 +68,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
private final FeatureType featureType;
private final SpecificationLoader specificationLookup;
private final AdapterManager adapterManager;
- private final ServicesProvider servicesProvider;
+ private final ServicesInjector servicesInjector;
private final QuerySubmitter querySubmitter;
protected ObjectMemberAbstract(
@@ -86,7 +86,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
this.specificationLookup = objectMemberDependencies.getSpecificationLoader();
this.adapterManager = objectMemberDependencies.getAdapterManager();
- this.servicesProvider = objectMemberDependencies.getServicesProvider();
+ this.servicesInjector = objectMemberDependencies.getServicesInjector();
this.querySubmitter = objectMemberDependencies.getQuerySubmitter();
}
@@ -339,8 +339,8 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
return adapterManager;
}
- public ServicesProvider getServicesProvider() {
- return servicesProvider;
+ public ServicesInjector getServicesInjector() {
+ return servicesInjector;
}
public QuerySubmitter getQuerySubmitter() {
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index c6aa040..db3df11 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -46,7 +46,7 @@ import org.apache.isis.core.commons.exceptions.UnknownTypeException;
import org.apache.isis.core.commons.lang.ClassExtensions;
import org.apache.isis.core.commons.util.ToString;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.InteractionResult;
@@ -82,6 +82,7 @@ import org.apache.isis.core.metamodel.interactions.InteractionUtils;
import org.apache.isis.core.metamodel.interactions.ObjectTitleContext;
import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
import org.apache.isis.core.metamodel.layout.DeweyOrderSet;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.Instance;
import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
@@ -124,12 +125,12 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
}
private final DeploymentCategory deploymentCategory;
- private final ServicesProvider servicesProvider;
+ private final ServicesInjector servicesInjector;
private final ObjectInstantiator objectInstantiator;
private final SpecificationLoader specificationLoader;
-
private final FacetProcessor facetProcessor;
-
+ private final AdapterManager adapterManager;
+
/**
* Only populated once {@link #introspectTypeHierarchyAndMembers()} is called.
*/
@@ -198,11 +199,12 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
this.identifier = Identifier.classIdentifier(introspectedClass);
this.deploymentCategory = objectSpecificationDependencies.getDeploymentCategory();
- this.servicesProvider = objectSpecificationDependencies.getServicesProvider();
+ this.servicesInjector = objectSpecificationDependencies.getServicesInjector();
this.objectInstantiator = objectSpecificationDependencies.getObjectInstantiator();
this.specificationLoader = objectSpecificationDependencies.getSpecificationLoader();
this.facetProcessor = objectSpecificationDependencies.getFacetProcessor();
-
+ this.adapterManager = objectSpecificationDependencies.getAdapterManager();
+
this.objectMemberDependencies = objectMemberDependencies;
}
@@ -899,13 +901,18 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
@Override
public List<ObjectAction> getServiceActionsReturning(final List<ActionType> types) {
final List<ObjectAction> serviceActions = Lists.newArrayList();
- final List<ObjectAdapter> services = getServicesProvider().getServices();
- for (final ObjectAdapter serviceAdapter : services) {
+ final Iterable<ObjectAdapter> serviceAdapters = getServiceAdapters();
+ for (final ObjectAdapter serviceAdapter : serviceAdapters) {
appendServiceActionsReturning(serviceAdapter, types, serviceActions);
}
return serviceActions;
}
+ private Iterable<ObjectAdapter> getServiceAdapters() {
+ final List<Object> servicePojos = getServicesInjector().getRegisteredServices();
+ return Iterables.transform(servicePojos, ObjectAdapter.Functions.adapterForUsing(adapterManager));
+ }
+
private void appendServiceActionsReturning(final ObjectAdapter serviceAdapter, final List<ActionType> types, final List<ObjectAction> relatedActionsToAppendTo) {
final List<ObjectAction> matchingActionsToAppendTo = Lists.newArrayList();
for (final ActionType type : types) {
@@ -950,8 +957,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
}
final List<ObjectAssociation> contributeeAssociations = Lists.newArrayList();
- final List<ObjectAdapter> services = getServicesProvider().getServices();
- for (final ObjectAdapter serviceAdapter : services) {
+ for (final ObjectAdapter serviceAdapter : getServiceAdapters()) {
addContributeeAssociationsIfAny(serviceAdapter, contributeeAssociations);
}
return contributeeAssociations;
@@ -1040,8 +1046,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
}
final List<ObjectAction> contributeeActions = Lists.newArrayList();
- final List<ObjectAdapter> services = getServicesProvider().getServices();
- for (final ObjectAdapter serviceAdapter : services) {
+ for (final ObjectAdapter serviceAdapter : getServiceAdapters()) {
addContributeeActionsIfAny(serviceAdapter, contributeeActions);
}
return contributeeActions;
@@ -1209,15 +1214,15 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
// Dependencies (injected in constructor)
// //////////////////////////////////////////////////////////////////////
- public ServicesProvider getServicesProvider() {
- return servicesProvider;
+ private ServicesInjector getServicesInjector() {
+ return servicesInjector;
}
- public ObjectInstantiator getObjectInstantiator() {
+ protected ObjectInstantiator getObjectInstantiator() {
return objectInstantiator;
}
- public SpecificationLoader getSpecificationLoader() {
+ protected SpecificationLoader getSpecificationLoader() {
return specificationLoader;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
index b5ed2a0..7abd870 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
@@ -31,7 +31,6 @@ import org.junit.Test;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
@@ -59,8 +58,6 @@ public class IsisMetaModelTest_init {
@Mock
private SpecificationLoader mockSpecificationLoader;
@Mock
- private ServicesProvider mockServicesProvider;
- @Mock
private ObjectInstantiator mockObjectInstantiator;
@Mock
private AdapterManager mockAdapterManager;
@@ -103,9 +100,6 @@ public class IsisMetaModelTest_init {
allowing(mockRuntimeContext).getServicesInjector();
will(returnValue(mockDependencyInjector));
- allowing(mockRuntimeContext).getServicesProvider();
- will(returnValue(mockServicesProvider));
-
allowing(mockRuntimeContext).getObjectInstantiator();
will(returnValue(mockObjectInstantiator));
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
index c082ed5..90a927a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
@@ -41,8 +41,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
import org.apache.isis.core.metamodel.adapter.ObjectPersistorAbstract;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
import org.apache.isis.core.metamodel.adapter.QuerySubmitterAbstract;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
-import org.apache.isis.core.metamodel.adapter.ServicesProviderAbstract;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
@@ -81,7 +79,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
private final ObjectDirtier objectDirtier;
private final ObjectInstantiator objectInstantiator;
private final ObjectPersistor objectPersistor;
- private final ServicesProvider servicesProvider;
private final QuerySubmitter querySubmitter;
private final DomainObjectServices domainObjectServices;
private final LocalizationProviderAbstract localizationProvider;
@@ -191,17 +188,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
getPersistenceSession().destroyObject(adapter);
}
};
- this.servicesProvider = new ServicesProviderAbstract() {
- @Override
- public List<ObjectAdapter> getServices() {
- return getPersistenceSession().getServices();
- }
-
- @Override
- public <T> T lookupService(Class<T> cls) {
- return servicesInjectorDelegator.lookupService(cls);
- }
- };
this.domainObjectServices = new DomainObjectServicesAbstract() {
@Override
@@ -358,11 +344,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
}
@Override
- public ServicesProvider getServicesProvider() {
- return servicesProvider;
- }
-
- @Override
public LocalizationProviderAbstract getLocalizationProvider() {
return localizationProvider;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
index a3ff26c..fd740c6 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
@@ -19,11 +19,6 @@
package org.apache.isis.core.runtime.system;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-
import org.jmock.Expectations;
import org.jmock.auto.Mock;
import org.junit.Before;
@@ -33,17 +28,22 @@ import org.junit.Test;
import org.apache.isis.applib.Identifier;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
public class ObjectActionImplTest {
@Rule
@@ -62,7 +62,7 @@ public class ObjectActionImplTest {
@Mock
private AdapterManager mockAdapterManager;
@Mock
- private ServicesProvider mockServicesProvider;
+ private ServicesInjector mockServicesInjector;
@Mock
private QuerySubmitter mockQuerySubmitter;
@@ -77,7 +77,7 @@ public class ObjectActionImplTest {
});
action = new ObjectActionImpl(mockFacetedMethod, new ObjectMemberDependencies(
- mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesProvider));
+ mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesInjector));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
index 37e19df..f86f7d8 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
@@ -24,17 +24,18 @@ import org.jmock.auto.Mock;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+
import org.apache.isis.applib.Identifier;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
@@ -79,7 +80,7 @@ public class OneToManyAssociationImplTest {
@Mock
private NamedFacet mockNamedFacet;
@Mock
- private ServicesProvider mockServicesProvider;
+ private ServicesInjector mockServicesInjector;
@Mock
private CollectionAddToFacet mockCollectionAddToFacet;
@@ -91,7 +92,7 @@ public class OneToManyAssociationImplTest {
allowingPeerToReturnIdentifier();
allowingSpecLoaderToReturnSpecs();
association = new OneToManyAssociationImpl(mockPeer, new ObjectMemberDependencies(
- mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesProvider));
+ mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesInjector));
}
private void allowingSpecLoaderToReturnSpecs() {
http://git-wip-us.apache.org/repos/asf/isis/blob/dbc7a39e/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
index ee79be5..b4d623a 100644
--- a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
+++ b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
@@ -21,18 +21,23 @@ package org.apache.isis.progmodel.wrapper;
import java.lang.reflect.Method;
import java.util.Collections;
+
import org.jmock.Expectations;
import org.jmock.auto.Mock;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+
import org.apache.isis.applib.services.wrapper.DisabledException;
import org.apache.isis.applib.services.wrapper.HiddenException;
import org.apache.isis.applib.services.wrapper.InvalidException;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.adapter.*;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
+import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
+import org.apache.isis.core.metamodel.adapter.ResolveState;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
@@ -46,6 +51,7 @@ import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyCle
import org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacetViaSetterMethod;
import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaModifyMethod;
import org.apache.isis.core.metamodel.facets.properties.validating.method.PropertyValidateFacetViaMethod;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
@@ -80,7 +86,7 @@ public class WrapperFactoryDefaultTest_wrappedObject {
@Mock
private QuerySubmitter mockQuerySubmitter;
@Mock
- private ServicesProvider mockServicesProvider;
+ private ServicesInjector mockServicesInjector;
@Mock
private SpecificationLoader mockSpecificationLoader;
@Mock
@@ -119,7 +125,7 @@ public class WrapperFactoryDefaultTest_wrappedObject {
public void setUp() {
objectMemberDependencies = new ObjectMemberDependencies(
- mockSpecificationLoader, mockAdapterManager, mockQuerySubmitter, mockServicesProvider);
+ mockSpecificationLoader, mockAdapterManager, mockQuerySubmitter, mockServicesInjector);
employeeRepository = new EmployeeRepositoryImpl();
[3/4] isis git commit: ISIS-1194: removing DirtyFacet and supporting
code.
Posted by da...@apache.org.
ISIS-1194: removing DirtyFacet and supporting code.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/dfdd6a85
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/dfdd6a85
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/dfdd6a85
Branch: refs/heads/master
Commit: dfdd6a8595dd65d8ee8b4624dd07e101eb7bfbbf
Parents: dbc7a39
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 3 16:45:36 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 3 16:45:36 2015 +0100
----------------------------------------------------------------------
.../core/metamodel/adapter/ObjectDirtier.java | 33 ------
.../adapter/ObjectDirtierAbstract.java | 29 -----
.../metamodel/adapter/ObjectDirtierAware.java | 26 -----
.../clear/CollectionClearFacetFactory.java | 15 +--
.../clear/CollectionClearFacetViaAccessor.java | 15 +--
.../modify/CollectionAddToFacetViaAccessor.java | 13 +--
...nAddToRemoveFromAndValidateFacetFactory.java | 18 +---
.../CollectionRemoveFromFacetViaAccessor.java | 15 +--
.../object/dirty/ClearDirtyObjectFacet.java | 39 -------
.../dirty/ClearDirtyObjectFacetAbstract.java | 35 ------
.../facets/object/dirty/DirtyObjectFacet.java | 29 -----
.../object/dirty/DirtyObjectFacetAbstract.java | 33 ------
.../facets/object/dirty/IsDirtyObjectFacet.java | 39 -------
.../dirty/IsDirtyObjectFacetAbstract.java | 35 ------
.../object/dirty/MarkDirtyObjectFacet.java | 38 -------
.../dirty/MarkDirtyObjectFacetAbstract.java | 35 ------
.../method/ClearDirtyObjectFacetViaMethod.java | 59 ----------
.../dirty/method/DirtyMethodsFacetFactory.java | 75 -------------
.../method/IsDirtyObjectFacetViaMethod.java | 59 ----------
.../method/MarkDirtyObjectFacetViaMethod.java | 56 ----------
.../runtimecontext/RuntimeContext.java | 3 -
.../runtimecontext/RuntimeContextAbstract.java | 1 -
.../noruntime/RuntimeContextNoRuntime.java | 18 ----
.../container/DomainObjectContainerDefault.java | 18 +---
.../isis/core/metamodel/spec/Dirtiable.java | 53 ---------
.../metamodel/spec/ObjectSpecification.java | 2 +-
.../specimpl/ObjectSpecificationAbstract.java | 39 -------
.../dflt/ProgrammingModelFacetsJava5.java | 2 -
.../dirty/DirtyMethodsFacetFactoryTest.java | 107 -------------------
.../testspec/ObjectSpecificationStub.java | 70 +-----------
.../DomainObjectContainerObjectChanged.java | 70 ------------
.../internal/RuntimeContextFromSession.java | 21 ----
.../system/persistence/PersistenceSession.java | 92 ----------------
.../transaction/IsisTransactionManager.java | 12 ---
.../persistence/FrameworkSynchronizer.java | 2 -
.../jdo/datanucleus/persistence/Utils.java | 9 +-
...reTransactionManager_EndTransactionTest.java | 5 -
.../DelegatingInvocationHandlerDefault.java | 12 ---
.../handlers/DomainObjectInvocationHandler.java | 26 ++---
39 files changed, 26 insertions(+), 1232 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtier.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtier.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtier.java
deleted file mode 100644
index c419e03..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtier.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.isis.core.metamodel.adapter;
-
-import org.apache.isis.core.commons.components.Injectable;
-
-public interface ObjectDirtier extends Injectable {
-
- /**
- * Provided by <tt>PersistenceSession</tt> when used by framework.
- */
- void objectChanged(ObjectAdapter adapter);
-
- /**
- * TODO: combined with {@link #objectChanged(ObjectAdapter)}.
- */
- void objectChanged(Object object);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtierAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtierAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtierAbstract.java
deleted file mode 100644
index fd595ec..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtierAbstract.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.isis.core.metamodel.adapter;
-
-public abstract class ObjectDirtierAbstract implements ObjectDirtier {
-
- @Override
- public void injectInto(final Object candidate) {
- if (ObjectDirtierAware.class.isAssignableFrom(candidate.getClass())) {
- final ObjectDirtierAware cast = ObjectDirtierAware.class.cast(candidate);
- cast.setObjectDirtier(this);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtierAware.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtierAware.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtierAware.java
deleted file mode 100644
index bdac679..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectDirtierAware.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.adapter;
-
-public interface ObjectDirtierAware {
-
- public void setObjectDirtier(final ObjectDirtier objectDirtier);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
index 16e642e..b8450f9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
@@ -22,8 +22,6 @@ package org.apache.isis.core.metamodel.facets.collections.clear;
import java.lang.reflect.Method;
import org.apache.isis.core.commons.lang.StringExtensions;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtierAware;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -35,12 +33,11 @@ import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
-public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements AdapterManagerAware, ObjectDirtierAware {
+public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements AdapterManagerAware {
private static final String[] PREFIXES = { MethodPrefixConstants.CLEAR_PREFIX };
private AdapterManager adapterManager;
- private ObjectDirtier objectDirtier;
public CollectionClearFacetFactory() {
super(FeatureType.COLLECTIONS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
@@ -69,7 +66,7 @@ public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAb
if (clearMethodIfAny != null) {
return new CollectionClearFacetViaClearMethod(clearMethodIfAny, collection);
} else {
- return new CollectionClearFacetViaAccessor(accessorMethod, collection, getAdapterManager(), getObjectDirtier());
+ return new CollectionClearFacetViaAccessor(accessorMethod, collection, getAdapterManager());
}
}
@@ -86,13 +83,5 @@ public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAb
this.adapterManager = adapterManager;
}
- protected ObjectDirtier getObjectDirtier() {
- return objectDirtier;
- }
-
- @Override
- public void setObjectDirtier(final ObjectDirtier objectDirtier) {
- this.objectDirtier = objectDirtier;
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetViaAccessor.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetViaAccessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetViaAccessor.java
index f97254c..451b51d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetViaAccessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetViaAccessor.java
@@ -24,9 +24,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
@@ -36,13 +34,14 @@ public class CollectionClearFacetViaAccessor extends CollectionClearFacetAbstrac
private final Method method;
private final AdapterManager adapterManager;
- private final ObjectDirtier objectDirtier;
- public CollectionClearFacetViaAccessor(final Method method, final FacetHolder holder, final AdapterManager adapterManager, final ObjectDirtier objectDirtier) {
+ public CollectionClearFacetViaAccessor(
+ final Method method,
+ final FacetHolder holder,
+ final AdapterManager adapterManager) {
super(holder);
this.method = method;
this.adapterManager = adapterManager;
- this.objectDirtier = objectDirtier;
}
/**
@@ -63,8 +62,6 @@ public class CollectionClearFacetViaAccessor extends CollectionClearFacetAbstrac
public void clear(final ObjectAdapter owningAdapter) {
final Collection<?> collection = (Collection<?>) ObjectAdapter.InvokeUtils.invoke(method, owningAdapter);
collection.clear();
- final ObjectAdapter adapter = getAdapterManager().getAdapterFor(owningAdapter);
- getObjectDirtier().objectChanged(adapter);
}
@Override
@@ -80,8 +77,4 @@ public class CollectionClearFacetViaAccessor extends CollectionClearFacetAbstrac
return adapterManager;
}
- protected ObjectDirtier getObjectDirtier() {
- return objectDirtier;
- }
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToFacetViaAccessor.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToFacetViaAccessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToFacetViaAccessor.java
index 553384c..02fec5c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToFacetViaAccessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToFacetViaAccessor.java
@@ -25,7 +25,6 @@ import java.util.Collections;
import java.util.List;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
@@ -33,12 +32,10 @@ import org.apache.isis.core.metamodel.facets.ImperativeFacet;
public class CollectionAddToFacetViaAccessor extends CollectionAddToFacetAbstract implements ImperativeFacet {
private final Method method;
- private final ObjectDirtier objectDirtier;
- public CollectionAddToFacetViaAccessor(final Method method, final FacetHolder holder, final ObjectDirtier objectDirtier) {
+ public CollectionAddToFacetViaAccessor(final Method method, final FacetHolder holder) {
super(holder);
this.method = method;
- this.objectDirtier = objectDirtier;
}
/**
@@ -64,7 +61,6 @@ public class CollectionAddToFacetViaAccessor extends CollectionAddToFacetAbstrac
final Collection<? super Object> collection = (Collection<? super Object>) ObjectAdapter.InvokeUtils.invoke(method, owningAdapter);
final Object elementPojo = ObjectAdapter.Util.unwrap(elementAdapter);
collection.add(elementPojo);
- getObjectDirtier().objectChanged(owningAdapter);
}
@Override
@@ -72,11 +68,4 @@ public class CollectionAddToFacetViaAccessor extends CollectionAddToFacetAbstrac
return "method=" + method;
}
- // /////////////////////////////////////////////////////
- // Dependencies
- // /////////////////////////////////////////////////////
-
- protected ObjectDirtier getObjectDirtier() {
- return objectDirtier;
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToRemoveFromAndValidateFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToRemoveFromAndValidateFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToRemoveFromAndValidateFacetFactory.java
index 8695718..c8fdbfc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToRemoveFromAndValidateFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToRemoveFromAndValidateFacetFactory.java
@@ -23,8 +23,6 @@ import java.lang.reflect.Method;
import org.apache.isis.applib.services.i18n.TranslatableString;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.core.commons.lang.StringExtensions;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtierAware;
import org.apache.isis.core.metamodel.exceptions.MetaModelException;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -45,7 +43,7 @@ import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
* <tt>addTo()</tt>/<tt>removeFrom()</tt> and one for <tt>validateAddTo()</tt>/
* <tt>validateRemoveFrom()</tt>.
*/
-public class CollectionAddToRemoveFromAndValidateFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements ObjectDirtierAware, ServicesInjectorAware {
+public class CollectionAddToRemoveFromAndValidateFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements ServicesInjectorAware {
private static final String[] PREFIXES = {};
@@ -96,7 +94,7 @@ public class CollectionAddToRemoveFromAndValidateFacetFactory extends MethodPref
if (addToMethodIfAny != null) {
return new CollectionAddToFacetViaMethod(addToMethodIfAny, holder);
} else {
- return new CollectionAddToFacetViaAccessor(accessorMethod, holder, getObjectDirtier());
+ return new CollectionAddToFacetViaAccessor(accessorMethod, holder);
}
}
@@ -108,7 +106,7 @@ public class CollectionAddToRemoveFromAndValidateFacetFactory extends MethodPref
if (removeFromMethodIfAny != null) {
return new CollectionRemoveFromFacetViaMethod(removeFromMethodIfAny, holder);
} else {
- return new CollectionRemoveFromFacetViaAccessor(accessorMethod, holder, getObjectDirtier());
+ return new CollectionRemoveFromFacetViaAccessor(accessorMethod, holder);
}
}
@@ -200,16 +198,6 @@ public class CollectionAddToRemoveFromAndValidateFacetFactory extends MethodPref
// Dependencies (injected)
// ///////////////////////////////////////////////////////
- private ObjectDirtier objectDirtier;
- protected ObjectDirtier getObjectDirtier() {
- return objectDirtier;
- }
-
- @Override
- public void setObjectDirtier(final ObjectDirtier objectDirtier) {
- this.objectDirtier = objectDirtier;
- }
-
private ServicesInjector servicesInjector;
@Override
public void setServicesInjector(final ServicesInjector servicesInjector) {
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionRemoveFromFacetViaAccessor.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionRemoveFromFacetViaAccessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionRemoveFromFacetViaAccessor.java
index 1e72fda..bb6be42 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionRemoveFromFacetViaAccessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionRemoveFromFacetViaAccessor.java
@@ -25,7 +25,6 @@ import java.util.Collections;
import java.util.List;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
@@ -33,12 +32,12 @@ import org.apache.isis.core.metamodel.facets.ImperativeFacet;
public class CollectionRemoveFromFacetViaAccessor extends CollectionRemoveFromFacetAbstract implements ImperativeFacet {
private final Method method;
- private final ObjectDirtier objectDirtier;
- public CollectionRemoveFromFacetViaAccessor(final Method method, final FacetHolder holder, final ObjectDirtier objectDirtier) {
+ public CollectionRemoveFromFacetViaAccessor(
+ final Method method,
+ final FacetHolder holder) {
super(holder);
this.method = method;
- this.objectDirtier = objectDirtier;
}
/**
@@ -63,7 +62,6 @@ public class CollectionRemoveFromFacetViaAccessor extends CollectionRemoveFromFa
@SuppressWarnings("unchecked")
final Collection<? super Object> collection = (Collection<? super Object>) ObjectAdapter.InvokeUtils.invoke(method, owningAdapter);
collection.remove(ObjectAdapter.Util.unwrap(elementAdapter));
- getObjectDirtier().objectChanged(owningAdapter);
}
@Override
@@ -71,12 +69,5 @@ public class CollectionRemoveFromFacetViaAccessor extends CollectionRemoveFromFa
return "method=" + method;
}
- // /////////////////////////////////////////////////////////
- // Dependencies (from constructor)
- // /////////////////////////////////////////////////////////
-
- protected ObjectDirtier getObjectDirtier() {
- return objectDirtier;
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/ClearDirtyObjectFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/ClearDirtyObjectFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/ClearDirtyObjectFacet.java
deleted file mode 100644
index ab27bf1..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/ClearDirtyObjectFacet.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-
-/**
- * Explicitly indicate that this object is no longer dirty and so does not need
- * to be persisted.
- *
- * <p>
- * In the standard Apache Isis Programming Model, typically corresponds to
- * method named <tt>markDirty</tt>.
- *
- * @see IsDirtyObjectFacet
- * @see MarkDirtyObjectFacet
- */
-public interface ClearDirtyObjectFacet extends DirtyObjectFacet {
-
- public void invoke(ObjectAdapter object);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/ClearDirtyObjectFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/ClearDirtyObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/ClearDirtyObjectFacetAbstract.java
deleted file mode 100644
index 6dd3851..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/ClearDirtyObjectFacetAbstract.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-
-public abstract class ClearDirtyObjectFacetAbstract extends DirtyObjectFacetAbstract implements ClearDirtyObjectFacet {
-
- public static Class<? extends Facet> type() {
- return ClearDirtyObjectFacet.class;
- }
-
- public ClearDirtyObjectFacetAbstract(final FacetHolder holder) {
- super(type(), holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyObjectFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyObjectFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyObjectFacet.java
deleted file mode 100644
index 260987d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyObjectFacet.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-
-/**
- * Mechanisms for explicitly managing the dirty state of the object.
- */
-public interface DirtyObjectFacet extends Facet {
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyObjectFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyObjectFacetAbstract.java
deleted file mode 100644
index 122993d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyObjectFacetAbstract.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.dirty.DirtyObjectFacet;
-
-public abstract class DirtyObjectFacetAbstract extends FacetAbstract implements DirtyObjectFacet {
-
- public DirtyObjectFacetAbstract(final Class<? extends Facet> type, final FacetHolder holder) {
- super(type, holder, Derivation.NOT_DERIVED);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/IsDirtyObjectFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/IsDirtyObjectFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/IsDirtyObjectFacet.java
deleted file mode 100644
index 478eb5d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/IsDirtyObjectFacet.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-
-/**
- * Determine whether this object has been explicitly
- * {@link MarkDirtyObjectFacet marked as dirty}.
- *
- * <p>
- * In the standard Apache Isis Programming Model, typically corresponds to
- * method named <tt>isDirty</tt>.
- *
- * @see ClearDirtyObjectFacet
- * @see MarkDirtyObjectFacet
- */
-public interface IsDirtyObjectFacet extends DirtyObjectFacet {
-
- public boolean invoke(ObjectAdapter object);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/IsDirtyObjectFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/IsDirtyObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/IsDirtyObjectFacetAbstract.java
deleted file mode 100644
index 01a865f..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/IsDirtyObjectFacetAbstract.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-
-public abstract class IsDirtyObjectFacetAbstract extends DirtyObjectFacetAbstract implements IsDirtyObjectFacet {
-
- public static Class<? extends Facet> type() {
- return IsDirtyObjectFacet.class;
- }
-
- public IsDirtyObjectFacetAbstract(final FacetHolder holder) {
- super(type(), holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/MarkDirtyObjectFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/MarkDirtyObjectFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/MarkDirtyObjectFacet.java
deleted file mode 100644
index 43f2ac9..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/MarkDirtyObjectFacet.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-
-/**
- * Explicitly indicate that this object is dirty and needs to be persisted.
- *
- * <p>
- * In the standard Apache Isis Programming Model, typically corresponds to
- * method named <tt>markDirty</tt>.
- *
- * @see ClearDirtyObjectFacet
- * @see IsDirtyObjectFacet
- */
-public interface MarkDirtyObjectFacet extends DirtyObjectFacet {
-
- public void invoke(ObjectAdapter object);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/MarkDirtyObjectFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/MarkDirtyObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/MarkDirtyObjectFacetAbstract.java
deleted file mode 100644
index 393609a..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/MarkDirtyObjectFacetAbstract.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-
-public abstract class MarkDirtyObjectFacetAbstract extends DirtyObjectFacetAbstract implements MarkDirtyObjectFacet {
-
- public static Class<? extends Facet> type() {
- return MarkDirtyObjectFacet.class;
- }
-
- public MarkDirtyObjectFacetAbstract(final FacetHolder holder) {
- super(type(), holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/ClearDirtyObjectFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/ClearDirtyObjectFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/ClearDirtyObjectFacetViaMethod.java
deleted file mode 100644
index 5024ec9..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/ClearDirtyObjectFacetViaMethod.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty.method;
-
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.core.commons.lang.MethodExtensions;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-import org.apache.isis.core.metamodel.facets.object.dirty.ClearDirtyObjectFacetAbstract;
-
-public class ClearDirtyObjectFacetViaMethod extends ClearDirtyObjectFacetAbstract implements ImperativeFacet {
-
- private final Method method;
-
- public ClearDirtyObjectFacetViaMethod(final Method method, final FacetHolder holder) {
- super(holder);
- this.method = method;
- }
-
- /**
- * Returns a singleton list of the {@link Method} provided in the
- * constructor.
- */
- @Override
- public List<Method> getMethods() {
- return Collections.singletonList(method);
- }
-
- @Override
- public Intent getIntent(final Method method) {
- return Intent.LIFECYCLE;
- }
-
- @Override
- public void invoke(final ObjectAdapter object) {
- MethodExtensions.invokeStatic(method);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/DirtyMethodsFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/DirtyMethodsFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/DirtyMethodsFacetFactory.java
deleted file mode 100644
index 43176f6..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/DirtyMethodsFacetFactory.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty.method;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.methodutils.MethodScope;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
-import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-
-public class DirtyMethodsFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
- private static final String MARK_DIRTY_PREFIX = "markDirty";
- private static final String CLEAR_DIRTY_PREFIX = "clearDirty";
- private static final String IS_DIRTY_PREFIX = "isDirty";
-
- private static final String[] PREFIXES = { MARK_DIRTY_PREFIX, CLEAR_DIRTY_PREFIX, IS_DIRTY_PREFIX, };
-
- public DirtyMethodsFacetFactory() {
- super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
-
- }
-
- @Override
- public void process(final ProcessClassContext processClassContext) {
- final FacetHolder facetHolder = processClassContext.getFacetHolder();
- final Class<?> cls = processClassContext.getCls();
-
- final List<Facet> facets = new ArrayList<Facet>();
-
- Method method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, IS_DIRTY_PREFIX, boolean.class, NO_PARAMETERS_TYPES);
- if (method != null) {
- processClassContext.removeMethod(method);
- facets.add(new IsDirtyObjectFacetViaMethod(method, facetHolder));
- }
-
- method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, CLEAR_DIRTY_PREFIX, void.class, NO_PARAMETERS_TYPES);
- if (method != null) {
- processClassContext.removeMethod(method);
- facets.add(new ClearDirtyObjectFacetViaMethod(method, facetHolder));
- }
-
- method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MARK_DIRTY_PREFIX, void.class, NO_PARAMETERS_TYPES);
- if (method != null) {
- processClassContext.removeMethod(method);
- facets.add(new MarkDirtyObjectFacetViaMethod(method, facetHolder));
- }
-
- FacetUtil.addFacets(facets);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/IsDirtyObjectFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/IsDirtyObjectFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/IsDirtyObjectFacetViaMethod.java
deleted file mode 100644
index 0a443be..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/IsDirtyObjectFacetViaMethod.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty.method;
-
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.core.commons.lang.MethodExtensions;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-import org.apache.isis.core.metamodel.facets.object.dirty.IsDirtyObjectFacetAbstract;
-
-public class IsDirtyObjectFacetViaMethod extends IsDirtyObjectFacetAbstract implements ImperativeFacet {
-
- private final Method method;
-
- public IsDirtyObjectFacetViaMethod(final Method method, final FacetHolder holder) {
- super(holder);
- this.method = method;
- }
-
- /**
- * Returns a singleton list of the {@link Method} provided in the
- * constructor.
- */
- @Override
- public List<Method> getMethods() {
- return Collections.singletonList(method);
- }
-
- @Override
- public Intent getIntent(final Method method) {
- return Intent.LIFECYCLE;
- }
-
- @Override
- public boolean invoke(final ObjectAdapter object) {
- return ((Boolean) MethodExtensions.invokeStatic(method)).booleanValue();
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/MarkDirtyObjectFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/MarkDirtyObjectFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/MarkDirtyObjectFacetViaMethod.java
deleted file mode 100644
index 2625e1e..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/dirty/method/MarkDirtyObjectFacetViaMethod.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty.method;
-
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.core.commons.lang.MethodExtensions;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-import org.apache.isis.core.metamodel.facets.object.dirty.MarkDirtyObjectFacetAbstract;
-
-public class MarkDirtyObjectFacetViaMethod extends MarkDirtyObjectFacetAbstract implements ImperativeFacet {
-
- private final Method method;
-
- public MarkDirtyObjectFacetViaMethod(final Method method, final FacetHolder holder) {
- super(holder);
- this.method = method;
- }
-
- @Override
- public List<Method> getMethods() {
- return Collections.singletonList(method);
- }
-
- @Override
- public Intent getIntent(final Method method) {
- return Intent.LIFECYCLE;
- }
-
- @Override
- public void invoke(final ObjectAdapter object) {
- MethodExtensions.invokeStatic(method);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
index e68e441..77593a7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
@@ -25,7 +25,6 @@ import org.apache.isis.core.commons.components.ApplicationScopedComponent;
import org.apache.isis.core.commons.components.Injectable;
import org.apache.isis.core.metamodel.adapter.DomainObjectServices;
import org.apache.isis.core.metamodel.adapter.LocalizationProvider;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
@@ -64,8 +63,6 @@ public interface RuntimeContext extends Injectable, ApplicationScopedComponent {
public ServicesInjector getServicesInjector();
- public ObjectDirtier getObjectDirtier();
-
public ObjectPersistor getObjectPersistor();
public DomainObjectServices getDomainObjectServices();
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
index ea88d6a..23256ad 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
@@ -69,7 +69,6 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
getDomainObjectServices().injectInto(candidate);
getLocalizationProvider().injectInto(candidate);
getObjectInstantiator().injectInto(candidate);
- getObjectDirtier().injectInto(candidate);
getObjectPersistor().injectInto(candidate);
getQuerySubmitter().injectInto(candidate);
getSpecificationLoader().injectInto(candidate);
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
index 037db4d..124d496 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
@@ -53,7 +53,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
private final AuthenticationSessionProviderAbstract authenticationSessionProvider;
private final AdapterManager adapterManager;
private final ObjectInstantiatorAbstract objectInstantiator;
- private final ObjectDirtierAbstract objectDirtier;
private final ObjectPersistorAbstract objectPersistor;
private final DomainObjectServicesAbstract domainObjectServices;
private final LocalizationProviderAbstract localizationProvider;
@@ -164,18 +163,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
}
};
- objectDirtier = new ObjectDirtierAbstract() {
-
- @Override
- public void objectChanged(final Object object) {
- throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
- }
-
- @Override
- public void objectChanged(final ObjectAdapter adapter) {
- throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
- }
- };
objectPersistor = new ObjectPersistorAbstract() {
@Override
@@ -347,11 +334,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
}
@Override
- public ObjectDirtier getObjectDirtier() {
- return objectDirtier;
- }
-
- @Override
public ObjectPersistor getObjectPersistor() {
return objectPersistor;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
index b961550..aa68091 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
@@ -59,8 +59,6 @@ import org.apache.isis.core.metamodel.adapter.DomainObjectServicesAware;
import org.apache.isis.core.metamodel.adapter.LocalizationProvider;
import org.apache.isis.core.metamodel.adapter.LocalizationProviderAware;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtierAware;
import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
import org.apache.isis.core.metamodel.adapter.ObjectPersistorAware;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
@@ -80,7 +78,7 @@ import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
@DomainService(nature = NatureOfService.DOMAIN)
public class DomainObjectContainerDefault
- implements DomainObjectContainer, QuerySubmitterAware, ObjectDirtierAware, DomainObjectServicesAware,
+ implements DomainObjectContainer, QuerySubmitterAware, DomainObjectServicesAware,
ObjectPersistorAware, SpecificationLoaderAware, AuthenticationSessionProviderAware, AdapterManagerAware,
LocalizationProviderAware, ExceptionRecognizer {
@@ -262,13 +260,12 @@ public class DomainObjectContainerDefault
}
/**
- * Deprecated because all supported objectstores provide lazy loading and dirty object tracking.
+ * @deprecated - no-op.
*/
@Deprecated
@Programmatic
@Override
public void objectChanged(final Object object) {
- getObjectDirtier().objectChanged(unwrapped(object));
}
//endregion
@@ -758,7 +755,6 @@ public class DomainObjectContainerDefault
//region > framework dependencies
- private ObjectDirtier objectDirtier;
private ObjectPersistor objectPersistor;
private QuerySubmitter querySubmitter;
private SpecificationLoader specificationLoader;
@@ -817,16 +813,6 @@ public class DomainObjectContainerDefault
this.adapterManager = adapterManager;
}
- protected ObjectDirtier getObjectDirtier() {
- return objectDirtier;
- }
-
- @Programmatic
- @Override
- public void setObjectDirtier(final ObjectDirtier objectDirtier) {
- this.objectDirtier = objectDirtier;
- }
-
protected ObjectPersistor getObjectPersistor() {
return objectPersistor;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Dirtiable.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Dirtiable.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Dirtiable.java
deleted file mode 100644
index 34b9dda..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Dirtiable.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.spec;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-
-public interface Dirtiable {
-
- /**
- * Clear the dirty flag so that a call to <tt>isDirty()</tt>, and before
- * <tt>markDirty()</tt> is called, will return false;
- *
- * @see #isDirty(ObjectAdapter)
- * @see #markDirty(ObjectAdapter)
- */
- void clearDirty(ObjectAdapter object);
-
- /**
- * Checks if the specified object has been changed, and hence needs
- * persisting.
- *
- * @see #markDirty(ObjectAdapter)
- * @see #clearDirty(ObjectAdapter)
- */
- boolean isDirty(ObjectAdapter object);
-
- /**
- * Mark the specified object as having been changed, and hence needing
- * persisting.
- *
- * @see #isDirty(ObjectAdapter)
- * @see #clearDirty(ObjectAdapter)
- */
- void markDirty(ObjectAdapter object);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index 18a0ab1..45fb7fd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -64,7 +64,7 @@ import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitut
* first, and then later work out its internals. Hence we create
* {@link ObjectSpecification}s as we need them, and then introspect them later.
*/
-public interface ObjectSpecification extends Specification, ObjectActionContainer, ObjectAssociationContainer, Hierarchical, Dirtiable, DefaultProvider {
+public interface ObjectSpecification extends Specification, ObjectActionContainer, ObjectAssociationContainer, Hierarchical, DefaultProvider {
public final static List<ObjectSpecification> EMPTY_LIST = Collections.emptyList();
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index db3df11..d83b627 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -63,9 +63,6 @@ import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.facets.object.dirty.ClearDirtyObjectFacet;
-import org.apache.isis.core.metamodel.facets.object.dirty.IsDirtyObjectFacet;
-import org.apache.isis.core.metamodel.facets.object.dirty.MarkDirtyObjectFacet;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
@@ -171,10 +168,6 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
private Persistability persistability = Persistability.USER_PERSISTABLE;
- private MarkDirtyObjectFacet markDirtyObjectFacet;
- private ClearDirtyObjectFacet clearDirtyObjectFacet;
- private IsDirtyObjectFacet isDirtyObjectFacet;
-
private TitleFacet titleFacet;
private IconFacet iconFacet;
private CssClassFacet cssClassFacet;
@@ -375,9 +368,6 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
// //////////////////////////////////////////////////////////////////////
public void updateFromFacetValues() {
- clearDirtyObjectFacet = getFacet(ClearDirtyObjectFacet.class);
- markDirtyObjectFacet = getFacet(MarkDirtyObjectFacet.class);
- isDirtyObjectFacet = getFacet(IsDirtyObjectFacet.class);
titleFacet = getFacet(TitleFacet.class);
iconFacet = getFacet(IconFacet.class);
@@ -401,13 +391,6 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
}
}
- /**
- * Intended to be called (if at all) within {@link #updateFromFacetValues()}
- * .
- */
- protected void setClearDirtyObjectFacet(final ClearDirtyObjectFacet clearDirtyObjectFacet) {
- this.clearDirtyObjectFacet = clearDirtyObjectFacet;
- }
// //////////////////////////////////////////////////////////////////////
@@ -548,28 +531,6 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
return persistability;
}
- // //////////////////////////////////////////////////////////////////////
- // Dirty object support
- // //////////////////////////////////////////////////////////////////////
-
- @Override
- public boolean isDirty(final ObjectAdapter object) {
- return isDirtyObjectFacet == null ? false : isDirtyObjectFacet.invoke(object);
- }
-
- @Override
- public void clearDirty(final ObjectAdapter object) {
- if (clearDirtyObjectFacet != null) {
- clearDirtyObjectFacet.invoke(object);
- }
- }
-
- @Override
- public void markDirty(final ObjectAdapter object) {
- if (markDirtyObjectFacet != null) {
- markDirtyObjectFacet.invoke(object);
- }
- }
// //////////////////////////////////////////////////////////////////////
// Facet Handling
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index 1a36e96..d45f48d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -77,7 +77,6 @@ import org.apache.isis.core.metamodel.facets.object.cssclass.annotation.CssClass
import org.apache.isis.core.metamodel.facets.object.cssclass.method.CssClassFacetMethodFactory;
import org.apache.isis.core.metamodel.facets.object.defaults.annotcfg.DefaultedFacetAnnotationElseConfigurationFactory;
import org.apache.isis.core.metamodel.facets.object.describedas.annotation.DescribedAsFacetOnTypeAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.object.dirty.method.DirtyMethodsFacetFactory;
import org.apache.isis.core.metamodel.facets.object.disabled.method.DisabledObjectFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.object.domainobject.DomainObjectAnnotationFacetFactory;
import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.DomainObjectLayoutFacetFactory;
@@ -305,7 +304,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(UpdateCallbackFacetFactory.class);
addFactory(RemoveCallbackFacetFactory.class);
- addFactory(DirtyMethodsFacetFactory.class);
addFactory(ValidateObjectFacetMethodFactory.class);
addFactory(ObjectValidPropertiesFacetImplFactory.class);
addFactory(PluralFacetStaticMethodFactory.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyMethodsFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyMethodsFacetFactoryTest.java
deleted file mode 100644
index 2d2ad1a..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/dirty/DirtyMethodsFacetFactoryTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.dirty;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.object.dirty.method.ClearDirtyObjectFacetViaMethod;
-import org.apache.isis.core.metamodel.facets.object.dirty.method.DirtyMethodsFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.dirty.method.IsDirtyObjectFacetViaMethod;
-import org.apache.isis.core.metamodel.facets.object.dirty.method.MarkDirtyObjectFacetViaMethod;
-
-public class DirtyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
-
- private DirtyMethodsFacetFactory facetFactory;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- facetFactory = new DirtyMethodsFacetFactory();
- }
-
- @Override
- protected void tearDown() throws Exception {
- facetFactory = null;
- super.tearDown();
- }
-
- public void testMarkDirtyMethodPickedUpOn() {
- class Customer {
- @SuppressWarnings("unused")
- public void markDirty() {
- };
- }
- final Method method = findMethod(Customer.class, "markDirty");
-
- facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(MarkDirtyObjectFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof MarkDirtyObjectFacetViaMethod);
- final MarkDirtyObjectFacetViaMethod markDirtyFacet = (MarkDirtyObjectFacetViaMethod) facet;
- assertEquals(method, markDirtyFacet.getMethods().get(0));
-
- assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(method));
- }
-
- public void testIsDirtyMethodPickedUpOn() {
- class Customer {
- @SuppressWarnings("unused")
- public boolean isDirty() {
- return false;
- };
- }
- final Method method = findMethod(Customer.class, "isDirty");
-
- facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(IsDirtyObjectFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof IsDirtyObjectFacetViaMethod);
- final IsDirtyObjectFacetViaMethod isDirtyFacet = (IsDirtyObjectFacetViaMethod) facet;
- assertEquals(method, isDirtyFacet.getMethods().get(0));
-
- assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(method));
- }
-
- public void testClearDirtyMethodPickedUpOn() {
- class Customer {
- @SuppressWarnings("unused")
- public void clearDirty() {
- };
- }
- final Method method = findMethod(Customer.class, "clearDirty");
-
- facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(ClearDirtyObjectFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof ClearDirtyObjectFacetViaMethod);
- final ClearDirtyObjectFacetViaMethod clearDirtyFacet = (ClearDirtyObjectFacetViaMethod) facet;
- assertEquals(method, clearDirtyFacet.getMethods().get(0));
-
- assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(method));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index 078d171..9fa6c1b 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -29,9 +29,7 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.profiles.Localization;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
-import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.exceptions.IsisException;
-import org.apache.isis.core.commons.factory.InstanceUtil;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -97,38 +95,15 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
}
@Override
- public void clearDirty(final ObjectAdapter object) {
- }
-
- @Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
- public void debugData(final DebugBuilder debug) {
- }
-
- public String debugInterface() {
- return null;
- }
-
- public String debugTitle() {
- return "";
- }
-
- public ObjectAction getClassAction(final ActionType type, final String name, final ObjectSpecification[] parameters) {
- return null;
- }
-
@Override
public List<ObjectAction> getServiceActionsReturning(final List<ActionType> types) {
return null;
}
- public int getFeatures() {
- return 0;
- }
-
@Override
public boolean isAbstract() {
return false;
@@ -288,14 +263,6 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
return Collections.emptyList();
}
- public void introspect() {
- }
-
- @Override
- public boolean isDirty(final ObjectAdapter object) {
- return false;
- }
-
@Override
public boolean isOfType(final ObjectSpecification cls) {
return cls == this;
@@ -327,41 +294,10 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
}
@Override
- public void markDirty(final ObjectAdapter object) {
- }
-
- public Object newInstance() {
- return InstanceUtil.createInstance(name);
- }
-
- @Override
public Persistability persistability() {
return persistable;
}
- public void setupAction(final ObjectAction action) {
- this.action = action;
- }
-
- public void setupFields(final List<ObjectAssociation> fields) {
- this.fields = fields;
- }
-
- public void setupIsEncodeable() {
- isEncodeable = true;
- }
-
- public void setupSubclasses(final List<ObjectSpecification> subclasses) {
- this.subclasses = subclasses;
- }
-
- public void setupHasNoIdentity(final boolean hasNoIdentity) {
- }
-
- public void setupTitle(final String title) {
- this.title = title;
- }
-
@Override
public List<ObjectSpecification> subclasses() {
return subclasses;
@@ -392,11 +328,7 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
try {
final Class<?> cls = Class.forName(name);
return cls.newInstance();
- } catch (final ClassNotFoundException e) {
- throw new IsisException(e);
- } catch (final InstantiationException e) {
- throw new IsisException(e);
- } catch (final IllegalAccessException e) {
+ } catch (final ClassNotFoundException | InstantiationException | IllegalAccessException e) {
throw new IsisException(e);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/container/DomainObjectContainerObjectChanged.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/container/DomainObjectContainerObjectChanged.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/container/DomainObjectContainerObjectChanged.java
deleted file mode 100644
index b6f0161..0000000
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/container/DomainObjectContainerObjectChanged.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.runtime.persistence.container;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
-
-/**
- * Helper class that encapsulates the processing performed by domain object
- * containers that are performing an objectChanged.
- *
- * <p>
- * Implementation note: rather than inject in its dependencies, we instead look
- * up dependencies from the {@link IsisContext}. This is necessary, for the
- * {@link PersistenceSession} at least, because class enhancers may hold a
- * reference to the factory as part of the generated bytecode. Since the
- * {@link PersistenceSession} could change over the lifetime of the instance (eg
- * when using the {@link InMemoryObjectStore}), we must always look the
- * {@link PersistenceSession} from the {@link IsisContext}. The same applies to
- * the {@link ServicesInjectorSpi}.
- */
-public class DomainObjectContainerObjectChanged {
-
- public DomainObjectContainerObjectChanged() {
- }
-
- public void objectChanged(final Object object) {
- if (object != null) {
- final ObjectAdapter adapter = adapterFor(object);
- getPersistenceSession().objectChanged(adapter);
- }
- }
-
- private ObjectAdapter adapterFor(final Object object) {
- return getAdapterManager().adapterFor(object);
- }
-
- // /////////////////////////////////////////////////////////////////
- // Dependencies (looked up from context)
- // /////////////////////////////////////////////////////////////////
-
- protected PersistenceSession getPersistenceSession() {
- return IsisContext.getPersistenceSession();
- }
-
- protected AdapterManager getAdapterManager() {
- return getPersistenceSession().getAdapterManager();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
index 90a927a..503177c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
@@ -35,8 +35,6 @@ import org.apache.isis.core.metamodel.adapter.DomainObjectServices;
import org.apache.isis.core.metamodel.adapter.DomainObjectServicesAbstract;
import org.apache.isis.core.metamodel.adapter.LocalizationProviderAbstract;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
-import org.apache.isis.core.metamodel.adapter.ObjectDirtierAbstract;
import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
import org.apache.isis.core.metamodel.adapter.ObjectPersistorAbstract;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
@@ -60,7 +58,6 @@ import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.transactions.TransactionState;
import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
import org.apache.isis.core.metamodel.transactions.TransactionStateProviderAbstract;
-import org.apache.isis.core.runtime.persistence.container.DomainObjectContainerObjectChanged;
import org.apache.isis.core.runtime.persistence.container.DomainObjectContainerResolve;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -76,7 +73,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
private final AuthenticationSessionProvider authenticationSessionProvider;
private final AdapterManager adapterManager;
- private final ObjectDirtier objectDirtier;
private final ObjectInstantiator objectInstantiator;
private final ObjectPersistor objectPersistor;
private final QuerySubmitter querySubmitter;
@@ -165,18 +161,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
}
};
- this.objectDirtier = new ObjectDirtierAbstract() {
-
- @Override
- public void objectChanged(final ObjectAdapter adapter) {
- getPersistenceSession().objectChanged(adapter);
- }
-
- @Override
- public void objectChanged(final Object object) {
- new DomainObjectContainerObjectChanged().objectChanged(object);
- }
- };
this.objectPersistor = new ObjectPersistorAbstract() {
@Override
public void makePersistent(final ObjectAdapter adapter) {
@@ -349,11 +333,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
}
@Override
- public ObjectDirtier getObjectDirtier() {
- return objectDirtier;
- }
-
- @Override
public ObjectPersistor getObjectPersistor() {
return objectPersistor;
}
[2/4] isis git commit: ISIS-1194: removing DirtyFacet and supporting
code.
Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index 1f4eb16..fd1ae0f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -48,7 +48,6 @@ import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.services.ServiceUtil;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
-import org.apache.isis.core.metamodel.spec.Dirtiable;
import org.apache.isis.core.metamodel.spec.FreeStandingList;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -424,74 +423,10 @@ public class PersistenceSession implements SessionScopedComponent, DebuggableWit
@Override
public void onSuccess() {
- clearAllDirty();
}
});
}
- // ///////////////////////////////////////////////////////////////////////////
- // Manual dirtying support
- // ///////////////////////////////////////////////////////////////////////////
-
- public boolean isCheckObjectsForDirtyFlag() {
- return dirtiableSupport;
- }
-
-
- /**
- * Mark as {@link #objectChanged(ObjectAdapter) changed } all
- * {@link Dirtiable} objects that have been
- * {@link Dirtiable#markDirty(ObjectAdapter) manually marked} as dirty.
- *
- * <p>
- * If {@link #isCheckObjectsForDirtyFlag() enabled}, will mark as
- * {@link #objectChanged(ObjectAdapter) changed} any {@link Dirtiable}
- * objects that have manually been
- * {@link Dirtiable#markDirty(ObjectAdapter) marked as dirty}.
- *
- * <p>
- * Called by the {@link IsisTransactionManager}.
- */
- public void objectChangedAllDirty() {
- if (!dirtiableSupport) {
- return;
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("marking as changed any objects that have been manually set as dirty");
- }
- for (final ObjectAdapter adapter : adapterManager) {
- if (adapter.getSpecification().isDirty(adapter)) {
- if (LOG.isDebugEnabled()) {
- LOG.debug(" found dirty object " + adapter);
- }
- objectChanged(adapter);
- adapter.getSpecification().clearDirty(adapter);
- }
- }
- }
-
- /**
- * Set as {@link Dirtiable#clearDirty(ObjectAdapter) clean} any
- * {@link Dirtiable} objects.
- */
- public synchronized void clearAllDirty() {
- if (!isCheckObjectsForDirtyFlag()) {
- return;
- }
- if (LOG.isDebugEnabled()) {
- LOG.debug("cleaning any manually dirtied objects");
- }
-
- for (final ObjectAdapter object : adapterManager) {
- if (object.getSpecification().isDirty(object)) {
- if (LOG.isDebugEnabled()) {
- LOG.debug(" found dirty object " + object);
- }
- object.getSpecification().clearDirty(object);
- }
- }
- }
// ///////////////////////////////////////////////////////////////////////////
// Services
@@ -745,33 +680,6 @@ public class PersistenceSession implements SessionScopedComponent, DebuggableWit
});
}
- // ///////////////////////////////////////////////////////////////////////////
- // objectChanged
- // ///////////////////////////////////////////////////////////////////////////
-
- /**
- * Mark the {@link ObjectAdapter} as changed, and therefore requiring
- * flushing to the persistence mechanism.
- */
- public void objectChanged(final ObjectAdapter adapter) {
-
- if (adapter.isTransient() || (adapter.isParented() && adapter.getAggregateRoot().isTransient())) {
- return;
- }
-
- if (adapter.respondToChangesInPersistentObjects()) {
- if (isImmutable(adapter)) {
- // previously used to throw
- // new
- // ObjectPersistenceException("cannot change immutable object");
- // however, since the the bytecode enhancers effectively make
- // calling objectChanged() the responsibility of the framework,
- // we may as well now do the check here and ignore if doesn't
- // apply.
- return;
- }
- }
- }
// ///////////////////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
index bdb56e8..5b66a6c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
@@ -388,7 +388,6 @@ public class IsisTransactionManager implements SessionScopedComponent {
}
if (getTransaction() != null) {
- persistenceSession.objectChangedAllDirty();
getTransaction().flush();
}
return false;
@@ -467,17 +466,6 @@ public class IsisTransactionManager implements SessionScopedComponent {
}
try {
- persistenceSession.objectChangedAllDirty();
- } catch(RuntimeException ex) {
- // just in case any new exception was raised...
- abortCause = ex;
- transactionLevel = 1; // because the transactionLevel was decremented earlier
- }
- }
-
- if(abortCause == null) {
-
- try {
getTransaction().preCommit();
} catch(RuntimeException ex) {
// just in case any new exception was raised...
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java
index d4ce468..8dc8573 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java
@@ -236,8 +236,6 @@ public class FrameworkSynchronizer {
CallbackFacet.Util.callCallback(adapter, UpdatedCallbackFacet.class);
}
- Utils.clearDirtyFor(adapter);
-
Version versionIfAny = getVersionIfAny(pojo);
adapter.setVersion(versionIfAny);
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java
index 88fd45e..cb2a3ec 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java
@@ -18,15 +18,14 @@
*/
package org.apache.isis.objectstore.jdo.datanucleus.persistence;
-import java.util.Date;
-
import javax.jdo.listener.InstanceLifecycleEvent;
+import org.datanucleus.enhancement.Persistable;
+
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.version.SerialNumberVersion;
import org.apache.isis.core.metamodel.adapter.version.Version;
-import org.datanucleus.enhancement.Persistable;
public class Utils {
@@ -41,10 +40,6 @@ public class Utils {
return (Persistable)event.getSource();
}
- static void clearDirtyFor(final ObjectAdapter adapter) {
- adapter.getSpecification().clearDirty(adapter);
- }
-
static Version getVersionIfAny(final Persistable pojo, final AuthenticationSession authenticationSession) {
Object jdoVersion = pojo.dnGetVersion();
if(jdoVersion instanceof Long) {
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java
index ef9d3b7..5a2f8ef 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java
@@ -109,11 +109,6 @@ public class ObjectStoreTransactionManager_EndTransactionTest {
context.ignoring(mockObjectStore);
transactionManager.startTransaction();
- context.checking(new Expectations() {
- {
- oneOf(mockPersistenceSession).objectChangedAllDirty();
- }
- });
assertThat(transactionManager.getTransactionLevel(), is(1));
transactionManager.endTransaction();
assertThat(transactionManager.getTransactionLevel(), is(0));
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DelegatingInvocationHandlerDefault.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DelegatingInvocationHandlerDefault.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DelegatingInvocationHandlerDefault.java
index e1b7cdd..5ea1026 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DelegatingInvocationHandlerDefault.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DelegatingInvocationHandlerDefault.java
@@ -26,7 +26,6 @@ import org.apache.isis.applib.events.InteractionEvent;
import org.apache.isis.applib.services.wrapper.WrapperFactory;
import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.runtime.persistence.container.DomainObjectContainerObjectChanged;
import org.apache.isis.core.runtime.persistence.container.DomainObjectContainerResolve;
public class DelegatingInvocationHandlerDefault<T> implements DelegatingInvocationHandler<T> {
@@ -39,7 +38,6 @@ public class DelegatingInvocationHandlerDefault<T> implements DelegatingInvocati
protected final Method hashCodeMethod;
protected final Method toStringMethod;
- private final DomainObjectContainerObjectChanged domainObjectContainerObjectChanged;
private final DomainObjectContainerResolve domainObjectContainerResolve;
private boolean resolveObjectChangedEnabled;
@@ -53,7 +51,6 @@ public class DelegatingInvocationHandlerDefault<T> implements DelegatingInvocati
this.executionMode = executionMode;
this.domainObjectContainerResolve = new DomainObjectContainerResolve();
- this.domainObjectContainerObjectChanged = new DomainObjectContainerObjectChanged();
try {
equalsMethod = delegate.getClass().getMethod("equals", new Class[] { Object.class });
@@ -86,15 +83,6 @@ public class DelegatingInvocationHandlerDefault<T> implements DelegatingInvocati
}
}
- protected void objectChangedIfRequired(final ObjectAdapter targetAdapter) {
- objectChangedIfRequired(targetAdapter.getObject());
- }
-
- protected void objectChangedIfRequired(final Object domainObject) {
- if (resolveObjectChangedEnabled) {
- domainObjectContainerObjectChanged.objectChanged(domainObject);
- }
- }
public WrapperFactory getHeadlessViewer() {
return wrapperFactory;
http://git-wip-us.apache.org/repos/asf/isis/blob/dfdd6a85/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
index cb1b1b8..992550f 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -212,9 +212,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
throw new UnsupportedOperationException(String.format("Cannot invoke supporting method '%s'", memberName));
}
- // UNUSED?
- final String methodName = method.getName();
-
if (intent == Intent.DEFAULTS || intent == Intent.CHOICES_OR_AUTOCOMPLETE) {
return method.invoke(getDelegate(), args);
}
@@ -281,21 +278,20 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
final ObjectAction objectAction = (ObjectAction) objectMember;
- for (int i = 0; i < args.length; i++) {
- final Object arg = args[i];
- if(arg == null) {
+ for (final Object arg : args) {
+ if (arg == null) {
continue;
}
final ObjectSpecificationDefault objectSpec = getJavaSpecification(arg.getClass());
- if(args.length == 1) {
+ if (args.length == 1) {
// is this a contributed property/collection?
final List<ObjectAssociation> associations =
objectSpec.getAssociations(Contributed.INCLUDED);
for (final ObjectAssociation association : associations) {
- if(association instanceof ContributeeMember) {
+ if (association instanceof ContributeeMember) {
final ContributeeMember contributeeMember = (ContributeeMember) association;
- if(contributeeMember.isContributedBy(objectAction)) {
+ if (contributeeMember.isContributedBy(objectAction)) {
return contributeeMember;
}
}
@@ -306,9 +302,9 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
final List<ObjectAction> actions =
objectSpec.getObjectActions(Contributed.INCLUDED);
for (final ObjectAction action : actions) {
- if(action instanceof ContributeeMember) {
+ if (action instanceof ContributeeMember) {
final ContributeeMember contributeeMember = (ContributeeMember) action;
- if(contributeeMember.isContributedBy(objectAction)) {
+ if (contributeeMember.isContributedBy(objectAction)) {
return contributeeMember;
}
}
@@ -429,8 +425,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
property.set(targetAdapter, argumentAdapter, getInteractionInitiatedBy());
}
- objectChangedIfRequired(targetAdapter);
-
return null;
}
@@ -532,8 +526,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
otma.addElement(targetAdapter, argumentNO, getInteractionInitiatedBy());
}
- objectChangedIfRequired(targetAdapter);
-
return null;
}
@@ -574,8 +566,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
collection.removeElement(targetAdapter, argumentAdapter, getInteractionInitiatedBy());
}
- objectChangedIfRequired(targetAdapter);
-
return null;
}
@@ -637,8 +627,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
return ObjectAdapter.Util.unwrap(actionReturnNO);
}
- objectChangedIfRequired(targetAdapter);
-
return null;
}
[4/4] isis git commit: ISIS-1194: (also ISIS-1044): adding metamodel
validators to prevent the @NotPersistable annotation or the NonPersistable /
ProgramPersistable interfaces from being implemented.
Posted by da...@apache.org.
ISIS-1194: (also ISIS-1044): adding metamodel validators to prevent the @NotPersistable annotation or the NonPersistable / ProgramPersistable interfaces from being implemented.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/bafce553
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/bafce553
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/bafce553
Branch: refs/heads/master
Commit: bafce55350f16cc8f8e285051cb7f0bf3c6dacd3
Parents: dfdd6a8
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 3 17:18:37 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 3 17:18:37 2015 +0100
----------------------------------------------------------------------
.../isis/applib/annotation/NotPersistable.java | 12 ++---
.../isis/applib/marker/NonPersistable.java | 9 ++--
.../isis/applib/marker/ProgramPersistable.java | 9 ++--
.../NotPersistableFacetAnnotationFactory.java | 35 ++++++++++++-
...tPersistableFacetMarkerInterfaceFactory.java | 54 ++++++++++++++++----
.../DisablingInteractionAdvisor.java | 4 +-
6 files changed, 93 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/bafce553/core/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java
index 65a9b35..83d5225 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java
@@ -30,14 +30,11 @@ import org.apache.isis.applib.marker.ProgramPersistable;
import org.apache.isis.applib.util.Enums;
/**
- * Indicates that an instance cannot be persisted by a user, but only
- * programmatically.
+ * No longer supported - the MetaModel validator will reject any domain classes annotated with this annotation.
*
- * <p>
- * This annotation is only partly supported by the framework, and may be deprecated
- * in the future.
- * </p>
+ * @deprecated
*/
+@Deprecated
@Inherited
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@@ -48,6 +45,9 @@ public @interface NotPersistable {
USER_OR_PROGRAM;
public static By lookupForMarkerInterface(final Class<?> cls) {
+ if(cls.isInterface()) {
+ return null;
+ }
if (ProgramPersistable.class.isAssignableFrom(cls)) {
return USER;
} else if (NonPersistable.class.isAssignableFrom(cls)) {
http://git-wip-us.apache.org/repos/asf/isis/blob/bafce553/core/applib/src/main/java/org/apache/isis/applib/marker/NonPersistable.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/marker/NonPersistable.java b/core/applib/src/main/java/org/apache/isis/applib/marker/NonPersistable.java
index 6895a6d..1b53b64 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/marker/NonPersistable.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/marker/NonPersistable.java
@@ -19,13 +19,12 @@
package org.apache.isis.applib.marker;
-import org.apache.isis.applib.annotation.NotPersisted;
-
/**
- * Marker interface to show that an object cannot be persisted.
- *
- * Use {@link NotPersisted} annotation in preference to this marker interface.
+ * No longer supported - the MetaModel validator will reject any domain classes that implement this marker interface.
+ *
+ * @deprecated
*/
+@Deprecated
public interface NonPersistable {
}
http://git-wip-us.apache.org/repos/asf/isis/blob/bafce553/core/applib/src/main/java/org/apache/isis/applib/marker/ProgramPersistable.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/marker/ProgramPersistable.java b/core/applib/src/main/java/org/apache/isis/applib/marker/ProgramPersistable.java
index 90f19f4..a1f31d3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/marker/ProgramPersistable.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/marker/ProgramPersistable.java
@@ -19,13 +19,12 @@
package org.apache.isis.applib.marker;
-import org.apache.isis.applib.annotation.NotPersisted;
-
/**
- * Marker interface to show that an object cannot be persisted.
- *
- * Use {@link NotPersisted} annotation in preference to this marker interface.
+ * No longer supported - the MetaModel validator will reject any domain classes that implement this marker interface.
+ *
+ * @deprecated
*/
+@Deprecated
public interface ProgramPersistable {
}
http://git-wip-us.apache.org/repos/asf/isis/blob/bafce553/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistableannot/NotPersistableFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistableannot/NotPersistableFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistableannot/NotPersistableFacetAnnotationFactory.java
index 10db3bc..02c0e91 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistableannot/NotPersistableFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistableannot/NotPersistableFacetAnnotationFactory.java
@@ -20,14 +20,20 @@
package org.apache.isis.core.metamodel.facets.object.notpersistable.notpersistableannot;
import org.apache.isis.applib.annotation.NotPersistable;
+import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
import org.apache.isis.core.metamodel.facets.Annotations;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
+import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
-public class NotPersistableFacetAnnotationFactory extends FacetFactoryAbstract {
+public class NotPersistableFacetAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner {
public NotPersistableFacetAnnotationFactory() {
super(FeatureType.OBJECTS_ONLY);
@@ -49,4 +55,31 @@ public class NotPersistableFacetAnnotationFactory extends FacetFactoryAbstract {
return annotation != null ? new NotPersistableFacetAnnotation(annotation.value(), holder) : null;
}
+ @Override
+ public void refineMetaModelValidator(
+ final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
+ metaModelValidator.add(new MetaModelValidatorVisiting(newValidatorVisitor()));
+ }
+
+ private MetaModelValidatorVisiting.Visitor newValidatorVisitor() {
+ return new MetaModelValidatorVisiting.Visitor() {
+ @Override
+ public boolean visit(
+ final ObjectSpecification objectSpec,
+ final ValidationFailures validationFailures) {
+
+ if (objectSpec.containsDoOpFacet(NotPersistableFacet.class)) {
+ final NotPersistableFacet notPersistableFacet = objectSpec.getFacet(NotPersistableFacet.class);
+ if(notPersistableFacet instanceof NotPersistableFacetAnnotation) {
+ final Class<?> type = NotPersistable.class;
+ validationFailures.add(String.format(
+ "%s is annotated with %s; this annotation is no longer supported",
+ objectSpec.getFullIdentifier(), type.getSimpleName()));
+ }
+ }
+ return true;
+ }
+ };
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/bafce553/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistablemarkerifc/NotPersistableFacetMarkerInterfaceFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistablemarkerifc/NotPersistableFacetMarkerInterfaceFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistablemarkerifc/NotPersistableFacetMarkerInterfaceFactory.java
index 81345ee..8a51124 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistablemarkerifc/NotPersistableFacetMarkerInterfaceFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/notpersistablemarkerifc/NotPersistableFacetMarkerInterfaceFactory.java
@@ -19,33 +19,67 @@
package org.apache.isis.core.metamodel.facets.object.notpersistable.notpersistablemarkerifc;
-import java.lang.reflect.Method;
-
import org.apache.isis.applib.annotation.NotPersistable;
+import org.apache.isis.applib.marker.NonPersistable;
+import org.apache.isis.applib.marker.ProgramPersistable;
+import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
+import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
-public class NotPersistableFacetMarkerInterfaceFactory extends FacetFactoryAbstract {
+public class NotPersistableFacetMarkerInterfaceFactory extends FacetFactoryAbstract implements
+ MetaModelValidatorRefiner {
public NotPersistableFacetMarkerInterfaceFactory() {
super(FeatureType.OBJECTS_ONLY);
}
- public boolean recognizes(final Method method) {
- return false;
- }
-
@Override
- public void process(final ProcessClassContext processClassContaxt) {
- final NotPersistable.By initiatedBy = NotPersistable.By.lookupForMarkerInterface(processClassContaxt.getCls());
- FacetUtil.addFacet(create(initiatedBy, processClassContaxt.getFacetHolder()));
+ public void process(final ProcessClassContext processClassContext) {
+ final NotPersistable.By initiatedBy = NotPersistable.By.lookupForMarkerInterface(processClassContext.getCls());
+ FacetUtil.addFacet(create(initiatedBy, processClassContext.getFacetHolder()));
}
private NotPersistableFacet create(final NotPersistable.By initiatedBy, final FacetHolder holder) {
return initiatedBy != null ? new NotPersistableFacetMarkerInterface(initiatedBy, holder) : null;
}
+ @Override
+ public void refineMetaModelValidator(
+ final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
+ metaModelValidator.add(new MetaModelValidatorVisiting(newValidatorVisitor()));
+ }
+
+ private MetaModelValidatorVisiting.Visitor newValidatorVisitor() {
+ return new MetaModelValidatorVisiting.Visitor() {
+ @Override
+ public boolean visit(
+ final ObjectSpecification objectSpec,
+ final ValidationFailures validationFailures) {
+
+ if (objectSpec.containsDoOpFacet(NotPersistableFacet.class)) {
+ final NotPersistableFacet notPersistableFacet = objectSpec.getFacet(NotPersistableFacet.class);
+ if(notPersistableFacet instanceof NotPersistableFacetMarkerInterface) {
+ final NotPersistable.By by = ((NotPersistableFacetMarkerInterface) notPersistableFacet).value();
+ final Class<?> type =
+ by == NotPersistable.By.USER
+ ? ProgramPersistable.class
+ : NonPersistable.class;
+ validationFailures.add(String.format(
+ "%s implements %s; this interface is no longer supported",
+ objectSpec.getFullIdentifier(), type.getSimpleName()));
+ }
+ }
+ return true;
+ }
+ };
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/bafce553/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/DisablingInteractionAdvisor.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/DisablingInteractionAdvisor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/DisablingInteractionAdvisor.java
index e35d688..4b51b22 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/DisablingInteractionAdvisor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/DisablingInteractionAdvisor.java
@@ -39,9 +39,7 @@ public interface DisablingInteractionAdvisor extends InteractionAdvisorFacet, Di
* Implementations should use the provided {@link InteractionContext} to
* determine whether they disable the member from being modified or used.
* They must however guard against a <tt>null</tt>
- * {@link InteractionContext#getTarget() target} and
- * {@link InteractionContext#getSession() session} - neither are guaranteed
- * to be populated.
+ * {@link InteractionContext#getTarget() target} - this is not guaranteed to be populated.
*/
String disables(final UsabilityContext<? extends UsabilityEvent> ic);