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/11/25 19:24:11 UTC

[2/5] isis git commit: ISIS-803: new annotation attributes allowing suclasses of the lifecycle events to be posted (or disabled altogether). also updated docs.

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingCallbackFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingCallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingCallbackFacetAbstract.java
new file mode 100644
index 0000000..390c771
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingCallbackFacetAbstract.java
@@ -0,0 +1,37 @@
+/*
+ *  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.callbacks;
+
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
+import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetAbstract;
+
+public abstract class RemovingCallbackFacetAbstract extends CallbackFacetAbstract implements RemovingCallbackFacet {
+
+    public static Class<? extends Facet> type() {
+        return RemovingCallbackFacet.class;
+    }
+
+    public RemovingCallbackFacetAbstract(final FacetHolder holder) {
+        super(type(), holder);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingCallbackFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingCallbackFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingCallbackFacetViaMethod.java
new file mode 100644
index 0000000..dfa9947
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingCallbackFacetViaMethod.java
@@ -0,0 +1,65 @@
+/*
+ *  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.callbacks;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+
+public class RemovingCallbackFacetViaMethod extends RemovingCallbackFacetAbstract implements ImperativeFacet {
+
+    private final List<Method> methods = new ArrayList<Method>();
+
+    public RemovingCallbackFacetViaMethod(final Method method, final FacetHolder holder) {
+        super(holder);
+        addMethod(method);
+    }
+
+    @Override
+    public void addMethod(final Method method) {
+        methods.add(method);
+    }
+
+    @Override
+    public Intent getIntent(final Method method) {
+        return Intent.LIFECYCLE;
+    }
+
+    @Override
+    public List<Method> getMethods() {
+        return Collections.unmodifiableList(methods);
+    }
+
+    @Override
+    public void invoke(final ObjectAdapter adapter) {
+        ObjectAdapter.InvokeUtils.invokeAll(methods, adapter);
+    }
+
+    @Override
+    protected String toStringValues() {
+        return "methods=" + methods;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingLifecycleEventFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingLifecycleEventFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingLifecycleEventFacet.java
new file mode 100644
index 0000000..a3e7803
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingLifecycleEventFacet.java
@@ -0,0 +1,30 @@
+/*
+ *  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.callbacks;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacet;
+
+/**
+ * Corresponds to {@link DomainObject#removingLifecycleEvent()}<tt>.
+ */
+public interface RemovingLifecycleEventFacet extends SingleClassValueFacet, LifecycleEventFacet {
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingLifecycleEventFacetForDomainObjectAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingLifecycleEventFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingLifecycleEventFacetForDomainObjectAnnotation.java
new file mode 100644
index 0000000..9b07994
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemovingLifecycleEventFacetForDomainObjectAnnotation.java
@@ -0,0 +1,51 @@
+/*
+ *  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.callbacks;
+
+import org.apache.isis.applib.services.eventbus.ObjectRemovingEvent;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+
+public class RemovingLifecycleEventFacetForDomainObjectAnnotation extends SingleClassValueFacetAbstract implements LoadedLifecycleEventFacet {
+
+    static Class<? extends Facet> type() {
+        return RemovingLifecycleEventFacet.class;
+    }
+
+    public RemovingLifecycleEventFacetForDomainObjectAnnotation(
+            final FacetHolder holder,
+            final Class<? extends ObjectRemovingEvent<?>> value,
+            final SpecificationLoader specificationLoader) {
+        super(type(), holder, value, specificationLoader);
+    }
+
+    public Class<? extends ObjectRemovingEvent<?>> getEventType() {
+        //noinspection unchecked
+        return eventType();
+    }
+
+    Class eventType() {
+        return value();
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdateCallbackFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdateCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdateCallbackFacetFactory.java
new file mode 100644
index 0000000..fc1d149
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdateCallbackFacetFactory.java
@@ -0,0 +1,68 @@
+/*
+ *  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.callbacks;
+
+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;
+import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
+
+public class UpdateCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
+
+    private static final String[] PREFIXES = { MethodPrefixConstants.UPDATED_PREFIX, MethodPrefixConstants.UPDATING_PREFIX, };
+
+    public UpdateCallbackFacetFactory() {
+        super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+    }
+
+    @Override
+    public void process(final ProcessClassContext processClassContext) {
+        final Class<?> cls = processClassContext.getCls();
+        final FacetHolder facetHolder = processClassContext.getFacetHolder();
+
+        final List<Facet> facets = new ArrayList<Facet>();
+        final List<Method> methods = new ArrayList<Method>();
+
+        Method method = null;
+        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.UPDATING_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        if (method != null) {
+            methods.add(method);
+            facets.add(new UpdatingCallbackFacetViaMethod(method, facetHolder));
+        }
+
+        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.UPDATED_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        if (method != null) {
+            methods.add(method);
+            facets.add(new UpdatedCallbackFacetViaMethod(method, facetHolder));
+        }
+
+        processClassContext.removeMethods(methods);
+        FacetUtil.addFacets(facets);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedCallbackFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedCallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedCallbackFacetAbstract.java
new file mode 100644
index 0000000..edbf7f4
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedCallbackFacetAbstract.java
@@ -0,0 +1,37 @@
+/*
+ *  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.callbacks;
+
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedCallbackFacet;
+import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetAbstract;
+
+public abstract class UpdatedCallbackFacetAbstract extends CallbackFacetAbstract implements UpdatedCallbackFacet {
+
+    public static Class<? extends Facet> type() {
+        return UpdatedCallbackFacet.class;
+    }
+
+    public UpdatedCallbackFacetAbstract(final FacetHolder holder) {
+        super(type(), holder);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedCallbackFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedCallbackFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedCallbackFacetViaMethod.java
new file mode 100644
index 0000000..c856237
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedCallbackFacetViaMethod.java
@@ -0,0 +1,65 @@
+/*
+ *  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.callbacks;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+
+public class UpdatedCallbackFacetViaMethod extends UpdatedCallbackFacetAbstract implements ImperativeFacet {
+
+    private final List<Method> methods = new ArrayList<Method>();
+
+    public UpdatedCallbackFacetViaMethod(final Method method, final FacetHolder holder) {
+        super(holder);
+        addMethod(method);
+    }
+
+    @Override
+    public void addMethod(final Method method) {
+        methods.add(method);
+    }
+
+    @Override
+    public List<Method> getMethods() {
+        return Collections.unmodifiableList(methods);
+    }
+
+    @Override
+    public Intent getIntent(final Method method) {
+        return Intent.LIFECYCLE;
+    }
+
+    @Override
+    public void invoke(final ObjectAdapter adapter) {
+        ObjectAdapter.InvokeUtils.invokeAll(methods, adapter);
+    }
+
+    @Override
+    protected String toStringValues() {
+        return "methods=" + methods;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedLifecycleEventFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedLifecycleEventFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedLifecycleEventFacet.java
new file mode 100644
index 0000000..d7f6c8c
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedLifecycleEventFacet.java
@@ -0,0 +1,30 @@
+/*
+ *  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.callbacks;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacet;
+
+/**
+ * Corresponds to {@link DomainObject#updatedLifecycleEvent()}<tt>.
+ */
+public interface UpdatedLifecycleEventFacet extends SingleClassValueFacet, LifecycleEventFacet {
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedLifecycleEventFacetForDomainObjectAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedLifecycleEventFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedLifecycleEventFacetForDomainObjectAnnotation.java
new file mode 100644
index 0000000..8549e86
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatedLifecycleEventFacetForDomainObjectAnnotation.java
@@ -0,0 +1,51 @@
+/*
+ *  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.callbacks;
+
+import org.apache.isis.applib.services.eventbus.ObjectUpdatedEvent;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+
+public class UpdatedLifecycleEventFacetForDomainObjectAnnotation extends SingleClassValueFacetAbstract implements LoadedLifecycleEventFacet {
+
+    static Class<? extends Facet> type() {
+        return UpdatedLifecycleEventFacet.class;
+    }
+
+    public UpdatedLifecycleEventFacetForDomainObjectAnnotation(
+            final FacetHolder holder,
+            final Class<? extends ObjectUpdatedEvent<?>> value,
+            final SpecificationLoader specificationLoader) {
+        super(type(), holder, value, specificationLoader);
+    }
+
+    public Class<? extends ObjectUpdatedEvent<?>> getEventType() {
+        //noinspection unchecked
+        return eventType();
+    }
+
+    Class eventType() {
+        return value();
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingCallbackFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingCallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingCallbackFacetAbstract.java
new file mode 100644
index 0000000..a12ea17
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingCallbackFacetAbstract.java
@@ -0,0 +1,37 @@
+/*
+ *  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.callbacks;
+
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingCallbackFacet;
+import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetAbstract;
+
+public abstract class UpdatingCallbackFacetAbstract extends CallbackFacetAbstract implements UpdatingCallbackFacet {
+
+    public static Class<? extends Facet> type() {
+        return UpdatingCallbackFacet.class;
+    }
+
+    public UpdatingCallbackFacetAbstract(final FacetHolder holder) {
+        super(type(), holder);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingCallbackFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingCallbackFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingCallbackFacetViaMethod.java
new file mode 100644
index 0000000..80c04ed
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingCallbackFacetViaMethod.java
@@ -0,0 +1,69 @@
+/*
+ *  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.callbacks;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import org.apache.isis.core.commons.lang.Wormhole;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+
+public class UpdatingCallbackFacetViaMethod extends UpdatingCallbackFacetAbstract implements ImperativeFacet {
+
+    private final List<Method> methods = new ArrayList<Method>();
+
+    public UpdatingCallbackFacetViaMethod(final Method method, final FacetHolder holder) {
+        super(holder);
+        addMethod(method);
+    }
+
+    @Override
+    public void addMethod(final Method method) {
+        methods.add(method);
+    }
+
+    @Override
+    public List<Method> getMethods() {
+        return Collections.unmodifiableList(methods);
+    }
+
+    @Override
+    public Intent getIntent(final Method method) {
+        return Intent.LIFECYCLE;
+    }
+
+    @Override
+    public void invoke(final ObjectAdapter adapter) {
+        Wormhole.invoke(new Runnable() {
+            @Override
+            public void run() {
+                ObjectAdapter.InvokeUtils.invokeAll(methods, adapter);
+            }
+        });
+    }
+
+    @Override
+    protected String toStringValues() {
+        return "methods=" + methods;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingLifecycleEventFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingLifecycleEventFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingLifecycleEventFacet.java
new file mode 100644
index 0000000..d7fa780
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingLifecycleEventFacet.java
@@ -0,0 +1,30 @@
+/*
+ *  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.callbacks;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacet;
+
+/**
+ * Corresponds to {@link DomainObject#updatingLifecycleEvent()}<tt>.
+ */
+public interface UpdatingLifecycleEventFacet extends SingleClassValueFacet, LifecycleEventFacet {
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingLifecycleEventFacetForDomainObjectAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingLifecycleEventFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingLifecycleEventFacetForDomainObjectAnnotation.java
new file mode 100644
index 0000000..c1ad0ba
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/UpdatingLifecycleEventFacetForDomainObjectAnnotation.java
@@ -0,0 +1,51 @@
+/*
+ *  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.callbacks;
+
+import org.apache.isis.applib.services.eventbus.ObjectUpdatingEvent;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+
+public class UpdatingLifecycleEventFacetForDomainObjectAnnotation extends SingleClassValueFacetAbstract implements LoadedLifecycleEventFacet {
+
+    static Class<? extends Facet> type() {
+        return UpdatingLifecycleEventFacet.class;
+    }
+
+    public UpdatingLifecycleEventFacetForDomainObjectAnnotation(
+            final FacetHolder holder,
+            final Class<? extends ObjectUpdatingEvent<?>> value,
+            final SpecificationLoader specificationLoader) {
+        super(type(), holder, value, specificationLoader);
+    }
+
+    public Class<? extends ObjectUpdatingEvent<?>> getEventType() {
+        //noinspection unchecked
+        return eventType();
+    }
+
+    Class eventType() {
+        return value();
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetAbstract.java
deleted file mode 100644
index 2921455..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetAbstract.java
+++ /dev/null
@@ -1,37 +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.callbacks.create;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetAbstract;
-
-public abstract class CreatedCallbackFacetAbstract extends CallbackFacetAbstract implements CreatedCallbackFacet {
-
-    public static Class<? extends Facet> type() {
-        return CreatedCallbackFacet.class;
-    }
-
-    public CreatedCallbackFacetAbstract(final FacetHolder holder) {
-        super(type(), holder);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetFactory.java
deleted file mode 100644
index 1d05fa9..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetFactory.java
+++ /dev/null
@@ -1,62 +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.callbacks.create;
-
-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;
-import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
-
-public class CreatedCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
-    private static final String[] PREFIXES = { MethodPrefixConstants.CREATED_PREFIX, };
-
-    public CreatedCallbackFacetFactory() {
-        super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> cls = processClassContext.getCls();
-        final FacetHolder holder = processClassContext.getFacetHolder();
-
-        final List<Facet> facets = new ArrayList<Facet>();
-        final List<Method> methods = new ArrayList<Method>();
-
-        Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.CREATED_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            facets.add(new CreatedCallbackFacetViaMethod(method, holder));
-        }
-
-        processClassContext.removeMethods(methods);
-        FacetUtil.addFacets(facets);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetViaMethod.java
deleted file mode 100644
index ce4d7e5..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/create/CreatedCallbackFacetViaMethod.java
+++ /dev/null
@@ -1,65 +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.callbacks.create;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-
-public class CreatedCallbackFacetViaMethod extends CreatedCallbackFacetAbstract implements ImperativeFacet {
-
-    private final List<Method> methods = new ArrayList<Method>();
-
-    public CreatedCallbackFacetViaMethod(final Method method, final FacetHolder holder) {
-        super(holder);
-        addMethod(method);
-    }
-
-    @Override
-    public void addMethod(final Method method) {
-        methods.add(method);
-    }
-
-    @Override
-    public Intent getIntent(final Method method) {
-        return Intent.LIFECYCLE;
-    }
-
-    @Override
-    public List<Method> getMethods() {
-        return Collections.unmodifiableList(methods);
-    }
-
-    @Override
-    public void invoke(final ObjectAdapter adapter) {
-        ObjectAdapter.InvokeUtils.invokeAll(methods, adapter);
-    }
-
-    @Override
-    protected String toStringValues() {
-        return "methods=" + methods;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadCallbackFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadCallbackFacetFactory.java
deleted file mode 100644
index e7b3023..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadCallbackFacetFactory.java
+++ /dev/null
@@ -1,68 +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.callbacks.load;
-
-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;
-import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
-
-public class LoadCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
-    private static final String[] PREFIXES = { MethodPrefixConstants.LOADED_PREFIX, MethodPrefixConstants.LOADING_PREFIX, };
-
-    public LoadCallbackFacetFactory() {
-        super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> cls = processClassContext.getCls();
-        final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
-        final List<Facet> facets = new ArrayList<Facet>();
-        final List<Method> methods = new ArrayList<Method>();
-
-        Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.LOADING_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            facets.add(new LoadingCallbackFacetViaMethod(method, facetHolder));
-        }
-
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.LOADED_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            facets.add(new LoadedCallbackFacetViaMethod(method, facetHolder));
-        }
-
-        processClassContext.removeMethods(methods);
-        FacetUtil.addFacets(facets);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadedCallbackFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadedCallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadedCallbackFacetAbstract.java
deleted file mode 100644
index a014324..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadedCallbackFacetAbstract.java
+++ /dev/null
@@ -1,37 +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.callbacks.load;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.callbacks.LoadedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetAbstract;
-
-public abstract class LoadedCallbackFacetAbstract extends CallbackFacetAbstract implements LoadedCallbackFacet {
-
-    public static Class<? extends Facet> type() {
-        return LoadedCallbackFacet.class;
-    }
-
-    public LoadedCallbackFacetAbstract(final FacetHolder holder) {
-        super(type(), holder);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadedCallbackFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadedCallbackFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadedCallbackFacetViaMethod.java
deleted file mode 100644
index b33c35b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadedCallbackFacetViaMethod.java
+++ /dev/null
@@ -1,65 +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.callbacks.load;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-
-public class LoadedCallbackFacetViaMethod extends LoadedCallbackFacetAbstract implements ImperativeFacet {
-
-    private final List<Method> methods = new ArrayList<Method>();
-
-    public LoadedCallbackFacetViaMethod(final Method method, final FacetHolder holder) {
-        super(holder);
-        addMethod(method);
-    }
-
-    @Override
-    public void addMethod(final Method method) {
-        methods.add(method);
-    }
-
-    @Override
-    public List<Method> getMethods() {
-        return Collections.unmodifiableList(methods);
-    }
-
-    @Override
-    public Intent getIntent(final Method method) {
-        return Intent.LIFECYCLE;
-    }
-
-    @Override
-    public void invoke(final ObjectAdapter adapter) {
-        ObjectAdapter.InvokeUtils.invokeAll(methods, adapter);
-    }
-
-    @Override
-    protected String toStringValues() {
-        return "methods=" + methods;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadingCallbackFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadingCallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadingCallbackFacetAbstract.java
deleted file mode 100644
index 731598b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadingCallbackFacetAbstract.java
+++ /dev/null
@@ -1,41 +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.callbacks.load;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.callbacks.LoadingCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetAbstract;
-
-/**
- * @deprecated - THIS CAN NEVER BE CALLED (BY JDO OBJECTSTORE AT LEAST)
- */
-@Deprecated
-public abstract class LoadingCallbackFacetAbstract extends CallbackFacetAbstract implements LoadingCallbackFacet {
-
-    public static Class<? extends Facet> type() {
-        return LoadingCallbackFacet.class;
-    }
-
-    public LoadingCallbackFacetAbstract(final FacetHolder holder) {
-        super(type(), holder);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadingCallbackFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadingCallbackFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadingCallbackFacetViaMethod.java
deleted file mode 100644
index e341560..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/load/LoadingCallbackFacetViaMethod.java
+++ /dev/null
@@ -1,69 +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.callbacks.load;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-
-/**
- * @deprecated - THIS CAN NEVER BE CALLED (BY JDO OBJECTSTORE AT LEAST)
- */
-@Deprecated
-public class LoadingCallbackFacetViaMethod extends LoadingCallbackFacetAbstract implements ImperativeFacet {
-
-    private final List<Method> methods = new ArrayList<Method>();
-
-    public LoadingCallbackFacetViaMethod(final Method method, final FacetHolder holder) {
-        super(holder);
-        addMethod(method);
-    }
-
-    @Override
-    public void addMethod(final Method method) {
-        methods.add(method);
-    }
-
-    @Override
-    public List<Method> getMethods() {
-        return Collections.unmodifiableList(methods);
-    }
-
-    @Override
-    public Intent getIntent(final Method method) {
-        return Intent.LIFECYCLE;
-    }
-
-    @Override
-    public void invoke(final ObjectAdapter adapter) {
-        ObjectAdapter.InvokeUtils.invokeAll(methods, adapter);
-    }
-
-    @Override
-    protected String toStringValues() {
-        return "methods=" + methods;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistCallbackFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistCallbackFacetFactory.java
deleted file mode 100644
index 9310d82..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistCallbackFacetFactory.java
+++ /dev/null
@@ -1,80 +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.callbacks.persist;
-
-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.facets.object.callbacks.PersistedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallbackFacet;
-import org.apache.isis.core.metamodel.methodutils.MethodScope;
-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 PersistCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
-    private static final String[] PREFIXES = { MethodPrefixConstants.PERSISTED_PREFIX, MethodPrefixConstants.PERSISTING_PREFIX, };
-
-    public PersistCallbackFacetFactory() {
-        super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> cls = processClassContext.getCls();
-        final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
-        final List<Facet> facets = new ArrayList<Facet>();
-        final List<Method> methods = new ArrayList<Method>();
-
-        Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.PERSISTING_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            final PersistingCallbackFacet facet = facetHolder.getFacet(PersistingCallbackFacet.class);
-            if (facet == null) {
-                facets.add(new PersistingCallbackFacetViaMethod(method, facetHolder));
-            } else {
-                facet.addMethod(method);
-            }
-        }
-
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.PERSISTED_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            final PersistedCallbackFacet facet = facetHolder.getFacet(PersistedCallbackFacet.class);
-            if (facet == null) {
-                facets.add(new PersistedCallbackFacetViaMethod(method, facetHolder));
-            } else {
-                facet.addMethod(method);
-            }
-        }
-
-        processClassContext.removeMethods(methods);
-        FacetUtil.addFacets(facets);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistCallbackViaSaveMethodFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistCallbackViaSaveMethodFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistCallbackViaSaveMethodFacetFactory.java
deleted file mode 100644
index 29b05db..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistCallbackViaSaveMethodFacetFactory.java
+++ /dev/null
@@ -1,80 +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.callbacks.persist;
-
-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.facets.object.callbacks.PersistedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallbackFacet;
-import org.apache.isis.core.metamodel.methodutils.MethodScope;
-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 PersistCallbackViaSaveMethodFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
-    private static final String[] PREFIXES = { MethodPrefixConstants.SAVED_PREFIX, MethodPrefixConstants.SAVING_PREFIX, };
-
-    public PersistCallbackViaSaveMethodFacetFactory() {
-        super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> cls = processClassContext.getCls();
-        final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
-        final List<Facet> facets = new ArrayList<Facet>();
-        final List<Method> methods = new ArrayList<Method>();
-
-        Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.SAVING_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            final PersistingCallbackFacet facet = facetHolder.getFacet(PersistingCallbackFacet.class);
-            if (facet == null) {
-                facets.add(new PersistingCallbackFacetViaMethod(method, facetHolder));
-            } else {
-                facet.addMethod(method);
-            }
-        }
-
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.SAVED_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            final PersistedCallbackFacet facet = facetHolder.getFacet(PersistedCallbackFacet.class);
-            if (facet == null) {
-                facets.add(new PersistedCallbackFacetViaMethod(method, facetHolder));
-            } else {
-                facet.addMethod(method);
-            }
-        }
-
-        processClassContext.removeMethods(methods);
-        FacetUtil.addFacets(facets);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistedCallbackFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistedCallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistedCallbackFacetAbstract.java
deleted file mode 100644
index 9685cd3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistedCallbackFacetAbstract.java
+++ /dev/null
@@ -1,37 +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.callbacks.persist;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetAbstract;
-
-public abstract class PersistedCallbackFacetAbstract extends CallbackFacetAbstract implements PersistedCallbackFacet {
-
-    public static Class<? extends Facet> type() {
-        return PersistedCallbackFacet.class;
-    }
-
-    public PersistedCallbackFacetAbstract(final FacetHolder holder) {
-        super(type(), holder);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistedCallbackFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistedCallbackFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistedCallbackFacetViaMethod.java
deleted file mode 100644
index 2b4d725..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistedCallbackFacetViaMethod.java
+++ /dev/null
@@ -1,65 +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.callbacks.persist;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-
-public class PersistedCallbackFacetViaMethod extends PersistedCallbackFacetAbstract implements ImperativeFacet {
-
-    private final List<Method> methods = new ArrayList<Method>();
-
-    public PersistedCallbackFacetViaMethod(final Method method, final FacetHolder holder) {
-        super(holder);
-        addMethod(method);
-    }
-
-    @Override
-    public void addMethod(final Method method) {
-        methods.add(method);
-    }
-
-    @Override
-    public Intent getIntent(final Method method) {
-        return Intent.LIFECYCLE;
-    }
-
-    @Override
-    public List<Method> getMethods() {
-        return Collections.unmodifiableList(methods);
-    }
-
-    @Override
-    public void invoke(final ObjectAdapter adapter) {
-        ObjectAdapter.InvokeUtils.invokeAll(methods, adapter);
-    }
-
-    @Override
-    protected String toStringValues() {
-        return "methods=" + methods;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistingCallbackFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistingCallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistingCallbackFacetAbstract.java
deleted file mode 100644
index c63f2d0..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistingCallbackFacetAbstract.java
+++ /dev/null
@@ -1,37 +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.callbacks.persist;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetAbstract;
-
-public abstract class PersistingCallbackFacetAbstract extends CallbackFacetAbstract implements PersistingCallbackFacet {
-
-    public static Class<? extends Facet> type() {
-        return PersistingCallbackFacet.class;
-    }
-
-    public PersistingCallbackFacetAbstract(final FacetHolder holder) {
-        super(type(), holder);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistingCallbackFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistingCallbackFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistingCallbackFacetViaMethod.java
deleted file mode 100644
index e30033c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/persist/PersistingCallbackFacetViaMethod.java
+++ /dev/null
@@ -1,65 +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.callbacks.persist;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-
-public class PersistingCallbackFacetViaMethod extends PersistingCallbackFacetAbstract implements ImperativeFacet {
-
-    private final List<Method> methods = new ArrayList<Method>();
-
-    public PersistingCallbackFacetViaMethod(final Method method, final FacetHolder holder) {
-        super(holder);
-        addMethod(method);
-    }
-
-    @Override
-    public void addMethod(final Method method) {
-        methods.add(method);
-    }
-
-    @Override
-    public List<Method> getMethods() {
-        return Collections.unmodifiableList(methods);
-    }
-
-    @Override
-    public Intent getIntent(final Method method) {
-        return Intent.LIFECYCLE;
-    }
-
-    @Override
-    public void invoke(final ObjectAdapter adapter) {
-        ObjectAdapter.InvokeUtils.invokeAll(methods, adapter);
-    }
-
-    @Override
-    protected String toStringValues() {
-        return "methods=" + methods;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemoveCallbackFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemoveCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemoveCallbackFacetFactory.java
deleted file mode 100644
index d850fd3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemoveCallbackFacetFactory.java
+++ /dev/null
@@ -1,80 +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.callbacks.remove;
-
-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.facets.object.callbacks.RemovedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
-import org.apache.isis.core.metamodel.methodutils.MethodScope;
-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 RemoveCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
-    private static final String[] PREFIXES = { MethodPrefixConstants.REMOVED_PREFIX, MethodPrefixConstants.REMOVING_PREFIX, };
-
-    public RemoveCallbackFacetFactory() {
-        super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> cls = processClassContext.getCls();
-        final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
-        final List<Facet> facets = new ArrayList<Facet>();
-        final List<Method> methods = new ArrayList<Method>();
-
-        Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.REMOVING_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            final RemovingCallbackFacet facet = facetHolder.getFacet(RemovingCallbackFacet.class);
-            if (facet == null) {
-                facets.add(new RemovingCallbackFacetViaMethod(method, facetHolder));
-            } else {
-                facet.addMethod(method);
-            }
-        }
-
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.REMOVED_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            final RemovedCallbackFacet facet = facetHolder.getFacet(RemovedCallbackFacet.class);
-            if (facet == null) {
-                facets.add(new RemovedCallbackFacetViaMethod(method, facetHolder));
-            } else {
-                facet.addMethod(method);
-            }
-        }
-
-        processClassContext.removeMethods(methods);
-        FacetUtil.addFacets(facets);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemoveCallbackViaDeleteMethodFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemoveCallbackViaDeleteMethodFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemoveCallbackViaDeleteMethodFacetFactory.java
deleted file mode 100644
index 92da2de..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemoveCallbackViaDeleteMethodFacetFactory.java
+++ /dev/null
@@ -1,80 +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.callbacks.remove;
-
-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.facets.object.callbacks.RemovedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
-import org.apache.isis.core.metamodel.methodutils.MethodScope;
-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 RemoveCallbackViaDeleteMethodFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
-    private static final String[] PREFIXES = { MethodPrefixConstants.DELETED_PREFIX, MethodPrefixConstants.DELETING_PREFIX, };
-
-    public RemoveCallbackViaDeleteMethodFacetFactory() {
-        super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> cls = processClassContext.getCls();
-        final FacetHolder holder = processClassContext.getFacetHolder();
-
-        final List<Facet> facets = new ArrayList<Facet>();
-        final List<Method> methods = new ArrayList<Method>();
-
-        Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.DELETING_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            final RemovingCallbackFacet facet = holder.getFacet(RemovingCallbackFacet.class);
-            if (facet == null) {
-                facets.add(new RemovingCallbackFacetViaMethod(method, holder));
-            } else {
-                facet.addMethod(method);
-            }
-        }
-
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.DELETED_PREFIX, void.class, NO_PARAMETERS_TYPES);
-        if (method != null) {
-            methods.add(method);
-            final RemovedCallbackFacet facet = holder.getFacet(RemovedCallbackFacet.class);
-            if (facet == null) {
-                facets.add(new RemovedCallbackFacetViaMethod(method, holder));
-            } else {
-                facet.addMethod(method);
-            }
-        }
-
-        processClassContext.removeMethods(methods);
-        FacetUtil.addFacets(facets);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemovedCallbackFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemovedCallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemovedCallbackFacetAbstract.java
deleted file mode 100644
index 964070e..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemovedCallbackFacetAbstract.java
+++ /dev/null
@@ -1,37 +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.callbacks.remove;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.callbacks.RemovedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetAbstract;
-
-public abstract class RemovedCallbackFacetAbstract extends CallbackFacetAbstract implements RemovedCallbackFacet {
-
-    public static Class<? extends Facet> type() {
-        return RemovedCallbackFacet.class;
-    }
-
-    public RemovedCallbackFacetAbstract(final FacetHolder holder) {
-        super(type(), holder);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/8cf480de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemovedCallbackFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemovedCallbackFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemovedCallbackFacetViaMethod.java
deleted file mode 100644
index e67940b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/remove/RemovedCallbackFacetViaMethod.java
+++ /dev/null
@@ -1,65 +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.callbacks.remove;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-
-public class RemovedCallbackFacetViaMethod extends RemovedCallbackFacetAbstract implements ImperativeFacet {
-
-    private final List<Method> methods = new ArrayList<Method>();
-
-    public RemovedCallbackFacetViaMethod(final Method method, final FacetHolder holder) {
-        super(holder);
-        addMethod(method);
-    }
-
-    @Override
-    public void addMethod(final Method method) {
-        methods.add(method);
-    }
-
-    @Override
-    public List<Method> getMethods() {
-        return Collections.unmodifiableList(methods);
-    }
-
-    @Override
-    public Intent getIntent(final Method method) {
-        return Intent.LIFECYCLE;
-    }
-
-    @Override
-    public void invoke(final ObjectAdapter adapter) {
-        ObjectAdapter.InvokeUtils.invokeAll(methods, adapter);
-    }
-
-    @Override
-    protected String toStringValues() {
-        return "methods=" + methods;
-    }
-
-}