You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2003/02/07 05:18:42 UTC
cvs commit: jakarta-tapestry/framework/src/net/sf/tapestry/engine AbstractEngine.java
hlship 2003/02/06 20:18:42
Modified: framework/src/net/sf/tapestry/engine AbstractEngine.java
Log:
Deprecated and remove support for interface PageCleanupListener.
Revision Changes Path
1.42 +29 -138 jakarta-tapestry/framework/src/net/sf/tapestry/engine/AbstractEngine.java
Index: AbstractEngine.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/net/sf/tapestry/engine/AbstractEngine.java,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- AbstractEngine.java 24 Jan 2003 00:49:33 -0000 1.41
+++ AbstractEngine.java 7 Feb 2003 04:18:42 -0000 1.42
@@ -174,8 +174,7 @@
*
**/
-public abstract class AbstractEngine
- implements IEngine, IEngineServiceView, Externalizable, HttpSessionBindingListener
+public abstract class AbstractEngine implements IEngine, IEngineServiceView, Externalizable
{
private static final Log LOG = LogFactory.getLog(AbstractEngine.class);
@@ -193,17 +192,6 @@
private transient boolean _stateful;
private transient ListenerMap _listeners;
- /**
- * Set to true just before the engine is "refreshed" into the
- * HttpSesson, which causes it to ignore {@link #valueUnbound(HttpSessionBindingEvent)}
- * events.
- *
- * @since 2.2
- *
- **/
-
- private transient boolean _refreshing;
-
/** @since 2.2 **/
private transient DataSqueezer _dataSqueezer;
@@ -1412,115 +1400,6 @@
}
/**
- * Invoked when the application object is stored into
- * the {@link HttpSession}. This implementation does nothing.
- *
- **/
-
- public void valueBound(HttpSessionBindingEvent event)
- {
- }
-
- /**
- * Invoked when the application object is removed from the {@link HttpSession}.
- * This occurs when the session times out or is explicitly invalidated
- * (for example, by the reset or restart services). Invokes
- * {@link #cleanupEngine()}.
- *
- * <p>
- * If the refreshing flag is set to true, then the notification is ignored.
- * (Some servlet containers invoke valueUnbound(), then valueBound()
- * when setAttribute() is invoked for an existing attribute.
- *
- **/
-
- public void valueUnbound(HttpSessionBindingEvent event)
- {
- if (_refreshing)
- return;
-
- // Note: there's a possible latent bug here. If cleaning up the
- // application requires loading any resources (specifically
- // component specifications) and we need a ResourceResolver and
- // the application instance is newly deserialized (i.e., was deserialized
- // so that it could unbound from the HttpSession) ... then
- // we may trip over a NullPointerException because the resolver
- // will be null. Don't have a great solution for this!
-
- cleanupEngine();
-
- }
-
- /**
- * Invoked when the engine is removed from the {@link HttpSession} i.e.,
- * because the sesssion timed out or was explicitly invalidated.
- *
- * <p>Locates all active pages (pages which have been activated) and
- * invokes {@link IPage#cleanupPage()} on them. This gives
- * pages a chance to release any long held resources. This primarily
- * exists so that pages that hold references to stateful session EJBs
- * can remove those EJBs in a timely manner.
- *
- * <p>Subclasses may overide this method to clean up any engine-held
- * resources, but should invoke this implementation <em>first</em>.
- **/
-
- protected void cleanupEngine()
- {
- if (LOG.isInfoEnabled())
- LOG.info(this +" cleanupEngine()");
-
- Collection activePageNames = getActivePageNames();
- if (activePageNames.isEmpty())
- return;
-
- IPageSource source = getPageSource();
-
- // A bit of a hack, used only when cleaning up the engine and any pages
- // as the session is invalidated. We don't really have the stuff we
- // need to create a context.
-
- RequestContext fakeContext = null;
-
- try
- {
- fakeContext = new RequestContext(null, null, null);
- }
- catch (IOException ex)
- {
- reportException(
- Tapestry.getString("AbstractEngine.unable-to-create-cleanup-context"),
- ex);
- return;
- }
-
- IRequestCycle fakeCycle = new RequestCycle(this, fakeContext, new NullMonitor());
-
- Iterator i = activePageNames.iterator();
-
- while (i.hasNext())
- {
- String name = (String) i.next();
-
- try
- {
- IPage page = source.getPage(fakeCycle, name, null);
- IPageRecorder recorder = getPageRecorder(name, fakeCycle);
-
- recorder.rollback(page);
-
- page.cleanupPage();
- }
- catch (Throwable t)
- {
- reportException(
- Tapestry.getString("AbstractEngine.unable-to-cleanup-page", name),
- t);
- }
- }
- }
-
- /**
* Returns true if the reset service is curently enabled.
*
**/
@@ -1551,7 +1430,12 @@
/**
* Gets the visit object, invoking {@link #createVisit(IRequestCycle)} to create
- * it lazily if needed.
+ * it lazily if needed. If cycle is null, the visit will not be lazily created.
+ *
+ * <p>
+ * After creating the visit, but before returning,
+ * the {@link HttpSession} will be created, and
+ * {@link #setStateful()} will be invoked.
*
*
**/
@@ -1560,11 +1444,14 @@
{
if (_visit == null && cycle != null)
{
- // Force the creation of the HttpSession
+ _visit = createVisit(cycle);
+
+ // Now that a visit object exists, we need to force the creation
+ // of a HttpSession.
cycle.getRequestContext().createSession();
- _visit = createVisit(cycle);
+ setStateful();
}
return _visit;
@@ -1619,13 +1506,6 @@
t);
}
- // Now that a visit object exists, we need to force the creation
- // of a HttpSession.
-
- cycle.getRequestContext().createSession();
-
- setStateful();
-
return result;
}
@@ -1694,7 +1574,7 @@
{
if (Tapestry.isNull(location))
{
- _location = "/";
+ _location = "";
_internal = true;
return;
@@ -1992,18 +1872,29 @@
return context.getParameter(Tapestry.SERVICE_QUERY_PARAMETER_NAME);
}
- /** @since 2.2 **/
+ /**
+ * Returns false.
+ *
+ * @deprecated With no replacement.
+ * @since 2.2
+ *
+ **/
public boolean isRefreshing()
{
- return _refreshing;
+ return false;
}
- /** @since 2.2 **/
+ /**
+ * Does nothing.
+ *
+ * @deprecated With no replacement.
+ * @since 2.2
+ *
+ **/
public void setRefreshing(boolean refreshing)
{
- _refreshing = refreshing;
}
/** @since 2.3 **/