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 2017/10/16 19:51:24 UTC
[isis] 09/09: ISIS-1742: splits out ExceptionRecognizer impl from
DomainObjectContainerDefault into new ExceptionRecognizerDocDefault
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 65a8be9850e6ebc54123107ef89c8f590fd52100
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 16 20:48:30 2017 +0100
ISIS-1742: splits out ExceptionRecognizer impl from DomainObjectContainerDefault into new ExceptionRecognizerDocDefault
---
.../container/DomainObjectContainerDefault.java | 63 +----------
.../container/ExceptionRecognizerDocDefault.java | 118 +++++++++++++++++++++
2 files changed, 119 insertions(+), 62 deletions(-)
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 a89895e..48f669a 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
@@ -51,8 +51,7 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
nature = NatureOfService.DOMAIN,
menuOrder = "" + Integer.MAX_VALUE
)
-public class DomainObjectContainerDefault
- implements DomainObjectContainer, ExceptionRecognizer {
+public class DomainObjectContainerDefault implements DomainObjectContainer {
//region > newViewModelInstance
@@ -221,63 +220,6 @@ public class DomainObjectContainerDefault
- //region > ExceptionRecognizer
-
- static class ExceptionRecognizerForConcurrencyException
- extends ExceptionRecognizerForType {
- public ExceptionRecognizerForConcurrencyException() {
- super(Category.CONCURRENCY, ConcurrencyException.class, prefix("Another user has just changed this data"));
- }
- }
- static class ExceptionRecognizerForRecoverableException extends ExceptionRecognizerForType {
- public ExceptionRecognizerForRecoverableException() {
- super(Category.CLIENT_ERROR, RecoverableException.class);
- }
- }
-
-
- private final ExceptionRecognizer recognizer =
- new ExceptionRecognizerComposite(
- new ExceptionRecognizerForConcurrencyException(),
- new ExceptionRecognizerForRecoverableException()
- );
-
- /**
- * Framework-provided implementation of {@link ExceptionRecognizer},
- * which will automatically recognize any {@link org.apache.isis.applib.RecoverableException}s or
- * any {@link ConcurrencyException}s.
- */
- @Programmatic
- @Override
- public String recognize(Throwable ex) {
- return recognizer.recognize(ex);
- }
-
- @Programmatic
- @Override
- public Recognition recognize2(final Throwable ex) {
- return recognizer.recognize2(ex);
- }
- //endregion
-
- //region > init, shutdown
-
- @Programmatic
- @PostConstruct
- @Override
- public void init(Map<String, String> properties) {
- serviceRegistry.injectServicesInto(recognizer);
- recognizer.init(properties);
- }
-
- @Programmatic
- @PreDestroy
- @Override
- public void shutdown() {
- recognizer.shutdown();
- }
-
- //endregion
//region > helpers
@@ -293,9 +235,6 @@ public class DomainObjectContainerDefault
SpecificationLoader specificationLoader;
@javax.inject.Inject
- ServiceRegistry serviceRegistry;
-
- @javax.inject.Inject
RepositoryService repositoryService;
@javax.inject.Inject
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/ExceptionRecognizerDocDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/ExceptionRecognizerDocDefault.java
new file mode 100644
index 0000000..c9db26b
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/ExceptionRecognizerDocDefault.java
@@ -0,0 +1,118 @@
+/*
+ * 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.services.container;
+
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.applib.PersistFailedException;
+import org.apache.isis.applib.RecoverableException;
+import org.apache.isis.applib.RepositoryException;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
+import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
+import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.core.commons.exceptions.IsisException;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.consent.InteractionResult;
+import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+
+@DomainService(
+ nature = NatureOfService.DOMAIN,
+ menuOrder = "" + Integer.MAX_VALUE
+)
+public class ExceptionRecognizerDocDefault
+ implements ExceptionRecognizer {
+
+
+ //region > init, shutdown
+
+ @Programmatic
+ @PostConstruct
+ @Override
+ public void init(Map<String, String> properties) {
+ serviceRegistry.injectServicesInto(recognizer);
+ recognizer.init(properties);
+ }
+
+ @Programmatic
+ @PreDestroy
+ @Override
+ public void shutdown() {
+ recognizer.shutdown();
+ }
+
+ //endregion
+
+ static class ExceptionRecognizerForConcurrencyException
+ extends ExceptionRecognizerForType {
+ public ExceptionRecognizerForConcurrencyException() {
+ super(Category.CONCURRENCY, ConcurrencyException.class, prefix("Another user has just changed this data"));
+ }
+ }
+ static class ExceptionRecognizerForRecoverableException extends ExceptionRecognizerForType {
+ public ExceptionRecognizerForRecoverableException() {
+ super(Category.CLIENT_ERROR, RecoverableException.class);
+ }
+ }
+
+
+ private final ExceptionRecognizer recognizer =
+ new ExceptionRecognizerComposite(
+ new ExceptionRecognizerForConcurrencyException(),
+ new ExceptionRecognizerForRecoverableException()
+ );
+
+ /**
+ * Framework-provided implementation of {@link ExceptionRecognizer},
+ * which will automatically recognize any {@link org.apache.isis.applib.RecoverableException}s or
+ * any {@link ConcurrencyException}s.
+ */
+ @Programmatic
+ @Override
+ public String recognize(Throwable ex) {
+ return recognizer.recognize(ex);
+ }
+
+ @Programmatic
+ @Override
+ public Recognition recognize2(final Throwable ex) {
+ return recognizer.recognize2(ex);
+ }
+
+
+
+ @javax.inject.Inject
+ ServiceRegistry serviceRegistry;
+
+}
--
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.