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 2013/02/08 19:29:51 UTC
[31/32] git commit: ISIS-328: done
ISIS-328: done
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e0fe2580
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e0fe2580
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e0fe2580
Branch: refs/heads/master
Commit: e0fe2580018817ea9026dfb205023bf88c0b55ba
Parents: ed11bc0
Author: Dan Haywood <da...@apache.org>
Authored: Fri Feb 8 17:52:59 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Fri Feb 8 18:00:51 2013 +0000
----------------------------------------------------------------------
.../wicket/viewer/IsisWicketApplication.java | 11 +++++++-
.../core/runtime/system/context/IsisContext.java | 22 +++++++++++++-
2 files changed, 30 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/e0fe2580/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 79fcdf3..e1cebfe 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -29,6 +29,8 @@ import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Module;
+import net.sf.cglib.transform.impl.AddInitTransformer;
+
import org.apache.log4j.Logger;
import org.apache.wicket.Application;
import org.apache.wicket.ConverterLocator;
@@ -72,6 +74,7 @@ import org.apache.isis.viewer.wicket.ui.pages.BookmarkedPagesModelProvider;
import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
+import org.apache.isis.viewer.wicket.viewer.integration.isis.IsisContextForWicket;
import org.apache.isis.viewer.wicket.viewer.integration.isis.WicketServer;
import org.apache.isis.viewer.wicket.viewer.integration.isis.WicketServerPrototype;
import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
@@ -121,7 +124,6 @@ import org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleFo
public class IsisWicketApplication extends AuthenticatedWebApplication implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, AuthenticationSessionProvider, BookmarkedPagesModelProvider {
private static final long serialVersionUID = 1L;
- @SuppressWarnings("unused")
private static final Logger LOG = Logger.getLogger(IsisWicketApplication.class);
/**
@@ -195,6 +197,13 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
this.bookmarkedPagesModel = new BookmarkedPagesModel();
initWicketComponentInjection(injector);
+
+ }
+
+ @Override
+ protected void onDestroy() {
+ IsisContext.shutdown();
+ super.onDestroy();
}
protected IsisInjectModule newIsisModule(final DeploymentType deploymentType, final IsisConfigurationBuilder isisConfigurationBuilder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/e0fe2580/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 bc36b2a..640d7ad 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
@@ -19,8 +19,11 @@
package org.apache.isis.core.runtime.system.context;
+import java.lang.reflect.Method;
import java.util.List;
+import javax.annotation.PreDestroy;
+
import org.apache.log4j.Logger;
import org.apache.isis.applib.profiles.Localization;
@@ -33,6 +36,8 @@ import org.apache.isis.core.commons.debug.DebugList;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.adapter.util.InvokeUtils;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.runtime.authentication.AuthenticationManager;
import org.apache.isis.core.runtime.authorization.AuthorizationManager;
@@ -71,7 +76,7 @@ public abstract class IsisContext implements DebuggableWithTitle {
private static IsisConfiguration configuration;
// ///////////////////////////////////////////////////////////
- // Singleton & Constructor
+ // Singleton & Constructor, shutdown
// ///////////////////////////////////////////////////////////
/**
@@ -133,6 +138,15 @@ public abstract class IsisContext implements DebuggableWithTitle {
this.replacePolicy = replacePolicy;
}
+ protected void shutdownInstance() {
+ this.sessionFactory.shutdown();
+ }
+
+ public static void shutdown() {
+ getInstance().shutdownInstance();
+ }
+
+
// ///////////////////////////////////////////////////////////
// SessionFactory
// ///////////////////////////////////////////////////////////
@@ -179,7 +193,7 @@ public abstract class IsisContext implements DebuggableWithTitle {
}
// ///////////////////////////////////////////////////////////
- // open / close / shutdown
+ // open / close
// ///////////////////////////////////////////////////////////
/**
@@ -227,6 +241,8 @@ public abstract class IsisContext implements DebuggableWithTitle {
*/
protected abstract void closeAllSessionsInstance();
+
+
// ///////////////////////////////////////////////////////////
// getSession()
// ///////////////////////////////////////////////////////////
@@ -257,6 +273,7 @@ public abstract class IsisContext implements DebuggableWithTitle {
// Static Convenience methods (session management)
// ///////////////////////////////////////////////////////////
+
/**
* Convenience method to open a new {@link IsisSession}.
*
@@ -550,4 +567,5 @@ public abstract class IsisContext implements DebuggableWithTitle {
debug.appendln("context ", this);
}
+
}