ISIS-939: simplified MessageBroker - removed the defunct MessageBroker interface (in runtime) - renamed MessageBrokerDefault to MessageBroker (unextract interface), now in metamodel - removed #setApplicationError, since no longer used.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e48ab59c Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e48ab59c Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e48ab59c Branch: refs/heads/master Commit: e48ab59c110d923be288687a9e461bc3410736aa Parents: 30eb514 Author: Dan Haywood <[email protected]> Authored: Mon Nov 3 20:01:43 2014 +0000 Committer: Dan Haywood <[email protected]> Committed: Thu Nov 6 16:18:58 2014 +0000 ---------------------------------------------------------------------- .../scimpi/dispatcher/action/ActionAction.java | 3 +- .../scimpi/dispatcher/edit/EditAction.java | 3 +- .../dispatcher/view/display/AddMessage.java | 2 +- .../dispatcher/view/display/AddWarning.java | 2 +- .../dispatcher/view/display/Messages.java | 3 +- .../dispatcher/view/display/Warnings.java | 3 +- .../commons/authentication/MessageBroker.java | 109 +++++++++-- .../internal/RuntimeContextFromSession.java | 2 +- .../runtime/system/context/IsisContext.java | 6 +- .../system/transaction/IsisTransaction.java | 10 +- .../transaction/IsisTransactionManager.java | 15 +- .../system/transaction/MessageBroker.java | 28 --- .../transaction/MessageBrokerDefault.java | 179 ------------------- ...reTransactionManager_EndTransactionTest.java | 11 +- ...TransactionManager_StartTransactionTest.java | 10 +- .../system/transaction/IsisTransactionTest.java | 1 + 16 files changed, 126 insertions(+), 261 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java ---------------------------------------------------------------------- diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java index c598ba3..44a9756 100644 --- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java +++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java @@ -21,11 +21,11 @@ package org.apache.isis.viewer.scimpi.dispatcher.action; import java.io.IOException; import java.util.List; - import org.apache.isis.applib.annotation.Where; import org.apache.isis.applib.profiles.Localization; import org.apache.isis.core.commons.authentication.AnonymousSession; import org.apache.isis.core.commons.authentication.AuthenticationSession; +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.commons.debug.DebugBuilder; import org.apache.isis.core.metamodel.adapter.ObjectAdapter; import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager; @@ -39,7 +39,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification; import org.apache.isis.core.metamodel.spec.feature.ObjectAction; import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter; import org.apache.isis.core.runtime.system.context.IsisContext; -import org.apache.isis.core.runtime.system.transaction.MessageBroker; import org.apache.isis.viewer.scimpi.dispatcher.Action; import org.apache.isis.viewer.scimpi.dispatcher.Dispatcher; import org.apache.isis.viewer.scimpi.dispatcher.context.RequestContext; http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java ---------------------------------------------------------------------- diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java index 3784472..852ccea 100644 --- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java +++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java @@ -21,11 +21,11 @@ package org.apache.isis.viewer.scimpi.dispatcher.edit; import java.io.IOException; import java.util.List; - import org.apache.isis.applib.annotation.Where; import org.apache.isis.applib.profiles.Localization; import org.apache.isis.core.commons.authentication.AnonymousSession; import org.apache.isis.core.commons.authentication.AuthenticationSession; +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.commons.debug.DebugBuilder; import org.apache.isis.core.metamodel.adapter.ObjectAdapter; import org.apache.isis.core.metamodel.adapter.version.Version; @@ -38,7 +38,6 @@ import org.apache.isis.core.metamodel.spec.feature.Contributed; import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation; import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation; import org.apache.isis.core.runtime.system.context.IsisContext; -import org.apache.isis.core.runtime.system.transaction.MessageBroker; import org.apache.isis.viewer.scimpi.dispatcher.Action; import org.apache.isis.viewer.scimpi.dispatcher.Dispatcher; import org.apache.isis.viewer.scimpi.dispatcher.NotLoggedInException; http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddMessage.java ---------------------------------------------------------------------- diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddMessage.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddMessage.java index acb53eb..7076f70 100644 --- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddMessage.java +++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddMessage.java @@ -19,8 +19,8 @@ package org.apache.isis.viewer.scimpi.dispatcher.view.display; +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.runtime.system.context.IsisContext; -import org.apache.isis.core.runtime.system.transaction.MessageBroker; import org.apache.isis.viewer.scimpi.dispatcher.AbstractElementProcessor; import org.apache.isis.viewer.scimpi.dispatcher.processor.Request; http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddWarning.java ---------------------------------------------------------------------- diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddWarning.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddWarning.java index 59d3dcc..ac0d240 100644 --- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddWarning.java +++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AddWarning.java @@ -19,8 +19,8 @@ package org.apache.isis.viewer.scimpi.dispatcher.view.display; +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.runtime.system.context.IsisContext; -import org.apache.isis.core.runtime.system.transaction.MessageBroker; import org.apache.isis.viewer.scimpi.dispatcher.AbstractElementProcessor; import org.apache.isis.viewer.scimpi.dispatcher.processor.Request; http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Messages.java ---------------------------------------------------------------------- diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Messages.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Messages.java index a6c8213..8ec1420 100644 --- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Messages.java +++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Messages.java @@ -20,9 +20,8 @@ package org.apache.isis.viewer.scimpi.dispatcher.view.display; import java.util.List; - +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.runtime.system.context.IsisContext; -import org.apache.isis.core.runtime.system.transaction.MessageBroker; import org.apache.isis.viewer.scimpi.dispatcher.AbstractElementProcessor; import org.apache.isis.viewer.scimpi.dispatcher.processor.Request; http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Warnings.java ---------------------------------------------------------------------- diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Warnings.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Warnings.java index ca0becb..52be7d6 100644 --- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Warnings.java +++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/Warnings.java @@ -20,9 +20,8 @@ package org.apache.isis.viewer.scimpi.dispatcher.view.display; import java.util.List; - +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.runtime.system.context.IsisContext; -import org.apache.isis.core.runtime.system.transaction.MessageBroker; import org.apache.isis.viewer.scimpi.dispatcher.AbstractElementProcessor; import org.apache.isis.viewer.scimpi.dispatcher.processor.Request; http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java index 2dc1d5b..12d5068 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java @@ -20,26 +20,107 @@ package org.apache.isis.core.commons.authentication; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import com.google.common.collect.Lists; +import org.apache.isis.core.commons.debug.DebugBuilder; +import org.apache.isis.core.commons.debug.DebuggableWithTitle; -/** - * Moving from runtime, so that can preserve messages between interactions that - * correspond to the same session. - */ -public interface MessageBroker extends Serializable { +public class MessageBroker implements Serializable, DebuggableWithTitle { + + private static final long serialVersionUID = 1L; + + private final List<String> messages = Lists.newArrayList(); + private final List<String> warnings = Lists.newArrayList(); + + //region > acquire (factory method) + + public static MessageBroker acquire(final AuthenticationSession authenticationSession) { + MessageBroker messageBroker; + synchronized (authenticationSession) { + messageBroker = authenticationSession.getMessageBroker(); + if(messageBroker == null) { + messageBroker = new MessageBroker(); + authenticationSession.setMessageBroker(messageBroker); + } + } + return messageBroker; + } + + private MessageBroker() { + } + //endregion + + //region > reset + + public void reset() { + warnings.clear(); + messages.clear(); + } + + //endregion + + //region > messages + + public List<String> getMessages() { + return copyAndClear(messages); + } + + public void addMessage(final String message) { + messages.add(message); + } + + //endregion + + //region > warnings + + public List<String> getWarnings() { + return copyAndClear(warnings); + } + + public void addWarning(final String message) { + warnings.add(message); + } + + //endregion + + //region > debugging + + @Override + public void debugData(final DebugBuilder debug) { + debugArray(debug, "Messages", messages); + debugArray(debug, "Warnings", messages); + } + + private void debugArray(final DebugBuilder debug, final String title, final List<String> vector) { + debug.appendln(title); + debug.indent(); + if (vector.size() == 0) { + debug.appendln("none"); + } else { + for (final String text : vector) { + debug.appendln(text); + } + } + debug.unindent(); + } - void addMessage(String message); - List<String> getMessages(); - String getMessagesCombined(); + @Override + public String debugTitle() { + return "Simple Message Broker"; + } - void addWarning(String message); - List<String> getWarnings(); - String getWarningsCombined(); + //endregion + //region > helpers - void setApplicationError(String message); - String getApplicationError(); + private List<String> copyAndClear(final List<String> messages) { + final List<String> copy = Collections.unmodifiableList(new ArrayList<>(messages)); + messages.clear(); + return copy; + } + //endregion - void ensureEmpty(); } http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java index 782e18b..bc0d459 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java @@ -27,6 +27,7 @@ import org.apache.isis.applib.services.bookmark.Bookmark; import org.apache.isis.core.commons.authentication.AuthenticationSession; import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider; import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAbstract; +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.metamodel.adapter.*; import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager; import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware; @@ -50,7 +51,6 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceSession; import org.apache.isis.core.runtime.system.session.IsisSession; import org.apache.isis.core.runtime.system.transaction.IsisTransaction; import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager; -import org.apache.isis.core.runtime.system.transaction.MessageBroker; /** * Provides services to the metamodel based on the currently running http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java index f145f89..6c5652f 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java @@ -24,6 +24,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.isis.applib.profiles.Localization; import org.apache.isis.core.commons.authentication.AuthenticationSession; +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.commons.components.TransactionScopedComponent; import org.apache.isis.core.commons.config.IsisConfiguration; import org.apache.isis.core.commons.config.IsisConfigurationException; @@ -41,7 +42,6 @@ import org.apache.isis.core.runtime.system.session.IsisSession; import org.apache.isis.core.runtime.system.session.IsisSessionFactory; import org.apache.isis.core.runtime.system.transaction.IsisTransaction; import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager; -import org.apache.isis.core.runtime.system.transaction.MessageBroker; /** * Provides singleton <i>access to</i> the current (session scoped) @@ -460,11 +460,11 @@ public abstract class IsisContext implements DebuggableWithTitle { } /** - * Convenience method, returning the {@link MessageBroker} of the + * Convenience method, returning the {@link org.apache.isis.core.commons.authentication.MessageBroker} of the * {@link #getCurrentTransaction() current transaction}. */ public static MessageBroker getMessageBroker() { - return (MessageBroker) getCurrentTransaction().getMessageBroker(); + return getCurrentTransaction().getMessageBroker(); } // /////////////////////////////////////////////////////////// http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java index 259269c..b2536ba 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java @@ -48,6 +48,7 @@ import org.apache.isis.applib.services.command.spi.CommandService; import org.apache.isis.applib.services.eventbus.ActionInteractionEvent; import org.apache.isis.applib.services.publish.*; import org.apache.isis.core.commons.authentication.AuthenticationSession; +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.commons.components.TransactionScopedComponent; import org.apache.isis.core.commons.config.IsisConfiguration; import org.apache.isis.core.commons.ensure.Ensure; @@ -203,7 +204,7 @@ public class IsisTransaction implements TransactionScopedComponent { private final TransactionalResource objectStore; private final List<PersistenceCommand> commands = Lists.newArrayList(); private final IsisTransactionManager transactionManager; - private final org.apache.isis.core.commons.authentication.MessageBroker messageBroker; + private final MessageBroker messageBroker; private final ServicesInjector servicesInjector; @@ -238,7 +239,7 @@ public class IsisTransaction implements TransactionScopedComponent { public IsisTransaction( final IsisTransactionManager transactionManager, - final org.apache.isis.core.commons.authentication.MessageBroker messageBroker, + final MessageBroker messageBroker, final TransactionalResource objectStore, final ServicesInjector servicesInjector) { @@ -1031,16 +1032,15 @@ public class IsisTransaction implements TransactionScopedComponent { } /** - * The {@link MessageBroker} for this transaction. + * The {@link org.apache.isis.core.commons.authentication.MessageBroker} for this transaction. * * <p> * Injected in constructor * * @deprecated - obtain the {@link org.apache.isis.core.commons.authentication.MessageBroker} instead from the {@link AuthenticationSession}. */ - @Deprecated public MessageBroker getMessageBroker() { - return (MessageBroker) messageBroker; + return messageBroker; } public static class AdapterAndProperty { http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java index 8c0e523..2d89384 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java @@ -30,6 +30,7 @@ import org.apache.isis.applib.services.command.CommandContext; import org.apache.isis.applib.services.command.CommandDefault; import org.apache.isis.applib.services.command.spi.CommandService; import org.apache.isis.core.commons.authentication.AuthenticationSession; +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.commons.components.SessionScopedComponent; import org.apache.isis.core.commons.debug.DebugBuilder; import org.apache.isis.core.commons.exceptions.IsisException; @@ -119,10 +120,10 @@ public class IsisTransactionManager implements SessionScopedComponent { /** - * Convenience method returning the {@link MessageBroker} of the + * Convenience method returning the {@link org.apache.isis.core.commons.authentication.MessageBroker} of the * {@link #getTransaction() current transaction}. */ - protected org.apache.isis.core.commons.authentication.MessageBroker getMessageBroker() { + protected MessageBroker getMessageBroker() { return getTransaction().getMessageBroker(); } @@ -219,20 +220,20 @@ public class IsisTransactionManager implements SessionScopedComponent { * {@link #getTransaction()}. */ protected final IsisTransaction createTransaction() { - org.apache.isis.core.commons.authentication.MessageBroker messageBroker = createMessageBroker(); + MessageBroker messageBroker = createMessageBroker(); return this.transaction = createTransaction(messageBroker, transactionalResource); } /** - * The provided {@link MessageBroker} is + * The provided {@link org.apache.isis.core.commons.authentication.MessageBroker} is * obtained from the {@link #createMessageBroker()} hook method. * @param transactionalResource * * @see #createMessageBroker() */ private IsisTransaction createTransaction( - final org.apache.isis.core.commons.authentication.MessageBroker messageBroker, + final MessageBroker messageBroker, final TransactionalResource transactionalResource) { ensureThatArg(messageBroker, is(not(nullValue()))); @@ -533,8 +534,8 @@ public class IsisTransactionManager implements SessionScopedComponent { * * <p> Called when a new {@link IsisTransaction} is created. */ - protected org.apache.isis.core.commons.authentication.MessageBroker createMessageBroker() { - return MessageBrokerDefault.acquire(getAuthenticationSession()); + protected MessageBroker createMessageBroker() { + return MessageBroker.acquire(getAuthenticationSession()); } // //////////////////////////////////////////////////////////////// http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBroker.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBroker.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBroker.java deleted file mode 100644 index 282b8f3..0000000 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBroker.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.isis.core.runtime.system.transaction; - -/** - * @deprecated - replace with {@link org.apache.isis.core.commons.authentication.MessageBroker} in the core. - */ -@Deprecated -public interface MessageBroker extends org.apache.isis.core.commons.authentication.MessageBroker { - -} http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBrokerDefault.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBrokerDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBrokerDefault.java deleted file mode 100644 index b5fbd9a..0000000 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBrokerDefault.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.isis.core.runtime.system.transaction; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import com.google.common.collect.Lists; - -import org.apache.isis.core.commons.authentication.AuthenticationSession; -import org.apache.isis.core.commons.debug.DebugBuilder; -import org.apache.isis.core.commons.debug.DebuggableWithTitle; -import org.apache.isis.core.commons.exceptions.IsisException; -import org.apache.isis.core.commons.lang.ArrayExtensions; - -public class MessageBrokerDefault implements MessageBroker, DebuggableWithTitle { - - private static final long serialVersionUID = 1L; - - private final List<String> messages = Lists.newArrayList(); - private final List<String> warnings = Lists.newArrayList(); - private String applicationError; - - public static org.apache.isis.core.commons.authentication.MessageBroker acquire(final AuthenticationSession authenticationSession) { - org.apache.isis.core.commons.authentication.MessageBroker messageBroker; - synchronized (authenticationSession) { - messageBroker = authenticationSession.getMessageBroker(); - if(messageBroker == null) { - messageBroker = new MessageBrokerDefault(); - authenticationSession.setMessageBroker(messageBroker); - } - } - return messageBroker; - } - - /** - * @deprecated - use {@link #acquire()} - */ - @Deprecated - public MessageBrokerDefault() { - } - - // ////////////////////////////////////////////////// - // Reset / ensureEmpty - // ////////////////////////////////////////////////// - - public void reset() { - warnings.clear(); - messages.clear(); - } - - @Override - public void ensureEmpty() { - if (warnings.size() > 0) { - throw new IsisException("Message broker still has warnings"); - } - if (messages.size() > 0) { - throw new IsisException("Message broker still has messages"); - } - } - - // ////////////////////////////////////////////////// - // Messages - // ////////////////////////////////////////////////// - - @Override - public List<String> getMessages() { - return copyAndClear(messages); - } - - @Override - public void addMessage(final String message) { - messages.add(message); - } - - @Override - public String getMessagesCombined() { - final List<String> x = messages; - final String string = ArrayExtensions.asSemicolonDelimitedStr(x); - return string; - } - - // ////////////////////////////////////////////////// - // Warnings - // ////////////////////////////////////////////////// - - @Override - public List<String> getWarnings() { - return copyAndClear(warnings); - } - - @Override - public void addWarning(final String message) { - warnings.add(message); - } - - @Override - public String getWarningsCombined() { - final List<String> x = warnings; - final String string = ArrayExtensions.asSemicolonDelimitedStr(x); - return string; - } - - - // ////////////////////////////////////////////////// - // Application error - // ////////////////////////////////////////////////// - - @Override - public void setApplicationError(String error) { - this.applicationError = error; - - } - - @Override - public String getApplicationError() { - String error = applicationError; - setApplicationError(null); - return error; - } - - // ////////////////////////////////////////////////// - // Debugging - // ////////////////////////////////////////////////// - - @Override - public void debugData(final DebugBuilder debug) { - debugArray(debug, "Messages", messages); - debugArray(debug, "Warnings", messages); - } - - private void debugArray(final DebugBuilder debug, final String title, final List<String> vector) { - debug.appendln(title); - debug.indent(); - if (vector.size() == 0) { - debug.appendln("none"); - } else { - for (final String text : vector) { - debug.appendln(text); - } - } - debug.unindent(); - } - - @Override - public String debugTitle() { - return "Simple Message Broker"; - } - - // ////////////////////////////////////////////////// - // Helpers - // ////////////////////////////////////////////////// - - private List<String> copyAndClear(final List<String> messages) { - final List<String> copy = Collections.unmodifiableList(new ArrayList<String>(messages)); - messages.clear(); - return copy; - } - - -} http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java index baa6080..f9cc749 100644 --- a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java +++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java @@ -19,13 +19,7 @@ package org.apache.isis.core.runtime.persistence.objectstore.transaction; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; - import java.util.Collections; -import java.util.UUID; - import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; @@ -35,7 +29,6 @@ import org.jmock.auto.Mock; import org.junit.Before; import org.junit.Rule; import org.junit.Test; - import org.apache.isis.core.commons.authentication.AuthenticationSession; import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.metamodel.services.ServicesInjectorDefault; @@ -44,6 +37,10 @@ import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager; import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2; import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + public class ObjectStoreTransactionManager_EndTransactionTest { @Rule http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java index 091c643..14f67e9 100644 --- a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java +++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java @@ -19,18 +19,11 @@ package org.apache.isis.core.runtime.persistence.objectstore.transaction; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.not; -import static org.hamcrest.CoreMatchers.nullValue; -import static org.hamcrest.CoreMatchers.sameInstance; -import static org.junit.Assert.assertThat; - import org.jmock.Expectations; import org.jmock.auto.Mock; import org.junit.Before; import org.junit.Rule; import org.junit.Test; - import org.apache.isis.core.commons.authentication.AuthenticationSession; import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.metamodel.services.ServicesInjectorDefault; @@ -40,6 +33,9 @@ import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager; import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2; import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode; +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.assertThat; + public class ObjectStoreTransactionManager_StartTransactionTest { @Rule http://git-wip-us.apache.org/repos/asf/isis/blob/e48ab59c/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java index 9f4c2c8..ed7c66a 100644 --- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java +++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java @@ -34,6 +34,7 @@ import org.apache.isis.applib.services.command.spi.CommandService; import org.apache.isis.applib.services.publish.EventSerializer; import org.apache.isis.applib.services.publish.PublishingService; import org.apache.isis.core.commons.authentication.AuthenticationSession; +import org.apache.isis.core.commons.authentication.MessageBroker; import org.apache.isis.core.commons.matchers.IsisMatchers; import org.apache.isis.core.metamodel.adapter.ObjectAdapter; import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
