Mail Archive Home | gotm-commits List | July 2005 Index
| <-- Date Index --> | <-- Thread Index --> |
Date: Monday, July 11, 2005 @ 10:27:05
Author: rouvoy
Path: /cvsroot/gotm/gotm
Added: lib/howl/howl.jar
src/fractal/org/objectweb/gotm/lib/coordination/TpCommitEngine.fractal
src/fractal/org/objectweb/gotm/lib/logging/TpLoggingHOWL.fractal
src/java/org/objectweb/gotm/lib/coordination/TimeoutAttribute.java
src/java/org/objectweb/gotm/lib/coordination/TimeoutImpl.java
src/java/org/objectweb/gotm/lib/event/PublishASyncThread.java
src/java/org/objectweb/gotm/lib/event/PublishSimple.java
src/java/org/objectweb/gotm/lib/event/PublishSyncThread.java
src/java/org/objectweb/gotm/lib/event/PublishThreadPool.java
src/java/org/objectweb/gotm/lib/event/SubscriberPool.java
src/java/org/objectweb/gotm/lib/event/SubscriberProvider.java
src/java/org/objectweb/gotm/lib/logging/GenericLogger.java
src/java/org/objectweb/gotm/lib/logging/HOWLoggerProvider.java
src/java/org/objectweb/gotm/lib/logging/LoggerAttributeController.java
src/java/org/objectweb/gotm/lib/logging/LoggerManager.java
src/java/org/objectweb/gotm/lib/logging/LoggerProvider.java
src/java/org/objectweb/gotm/lib/logging/LoggerProviderAttributeController.java
src/java/org/objectweb/gotm/lib/logging/SimpleLogger.java
src/java/org/objectweb/gotm/lib/resource/NoActionAvailableException.java
src/java/org/objectweb/gotm/lib/resource/ResourceManagerASync.java
src/java/org/objectweb/gotm/lib/resource/ResourceManagerWithPool.java
src/java/org/objectweb/gotm/lib/resource/ResourceManagerWithThread.java
src/java/org/objectweb/gotm/lib/transaction/InvalidStateException.java
src/java/org/objectweb/gotm/lib/transaction/InvalidTransitionException.java
src/java/org/objectweb/gotm/lib/xid/XidFeature.java
src/java/org/objectweb/gotm/lib/xid/XidImpl.java
Modified: .classpath .settings/org.eclipse.core.resources.prefs
src/fractal/org/objectweb/gotm/lib/coordination/Tp2PC.fractal
src/fractal/org/objectweb/gotm/lib/event/TpEventBus.fractal
src/java/org/objectweb/gotm/GoTMException.java
src/java/org/objectweb/gotm/lib/CurrentHandler.java
src/java/org/objectweb/gotm/lib/coordination/AbortFeature.java
src/java/org/objectweb/gotm/lib/coordination/AbstractCoordinationFeature.java
src/java/org/objectweb/gotm/lib/coordination/CommitFeature.java
src/java/org/objectweb/gotm/lib/coordination/TwoPCFeature.java
src/java/org/objectweb/gotm/lib/event/PublishState.java
src/java/org/objectweb/gotm/lib/event/SubscribablePrimitive.java
src/java/org/objectweb/gotm/lib/resource/AbstractActionProvider.java
src/java/org/objectweb/gotm/lib/resource/AbstractResourceManager.java
src/java/org/objectweb/gotm/lib/resource/ActionProvider.java
src/java/org/objectweb/gotm/lib/resource/ResourceManagerImpl.java
src/java/org/objectweb/gotm/lib/transaction/TransactionStateAuto.java
src/java/org/objectweb/gotm/lib/transaction/TransactionStateImpl.java
Removed:
src/java/org/objectweb/gotm/lib/coordination/AutoAbortAttributeController.java
src/java/org/objectweb/gotm/lib/coordination/AutoAbortImpl.java
src/java/org/objectweb/gotm/lib/coordination/StatusChecker.java
src/java/org/objectweb/gotm/lib/event/EventEngineSimple.java
src/java/org/objectweb/gotm/lib/event/EventEngineThreadPool.java
src/java/org/objectweb/gotm/lib/resource/ResourceWithPool.java
src/java/org/objectweb/gotm/lib/resource/ResourceWithThread.java
src/java/org/objectweb/gotm/lib/transaction/StatusNotAllowedException.java
src/java/org/objectweb/gotm/lib/xid/XidStateImpl.java
* Adding XA interfaces support,
* Adding adaptive commit protocol support,
* Adding logging support,
* Cosmetic updates.
--------------------------------------------------------------------------------+
.classpath
| 1
.settings/org.eclipse.core.resources.prefs
| 14
lib/howl/howl.jar
| <<Binary file>>
src/fractal/org/objectweb/gotm/lib/coordination/Tp2PC.fractal
| 37 +-
src/fractal/org/objectweb/gotm/lib/coordination/TpCommitEngine.fractal
| 53 +++
src/fractal/org/objectweb/gotm/lib/event/TpEventBus.fractal
| 28 +
src/fractal/org/objectweb/gotm/lib/logging/TpLoggingHOWL.fractal
| 36 ++
src/java/org/objectweb/gotm/GoTMException.java
| 11
src/java/org/objectweb/gotm/lib/CurrentHandler.java
| 174 ++++++----
src/java/org/objectweb/gotm/lib/coordination/AbortFeature.java
| 14
src/java/org/objectweb/gotm/lib/coordination/AbstractCoordinationFeature.java
| 21 -
src/java/org/objectweb/gotm/lib/coordination/AutoAbortAttributeController.java
| 53 ---
src/java/org/objectweb/gotm/lib/coordination/AutoAbortImpl.java
| 129 -------
src/java/org/objectweb/gotm/lib/coordination/CommitFeature.java
| 27 -
src/java/org/objectweb/gotm/lib/coordination/StatusChecker.java
| 70 ----
src/java/org/objectweb/gotm/lib/coordination/TimeoutAttribute.java
| 54 +++
src/java/org/objectweb/gotm/lib/coordination/TimeoutImpl.java
| 128 +++++++
src/java/org/objectweb/gotm/lib/coordination/TwoPCFeature.java
| 40 +-
src/java/org/objectweb/gotm/lib/event/EventEngineSimple.java
| 131 -------
src/java/org/objectweb/gotm/lib/event/EventEngineThreadPool.java
| 153 --------
src/java/org/objectweb/gotm/lib/event/PublishASyncThread.java
| 102 +++++
src/java/org/objectweb/gotm/lib/event/PublishSimple.java
| 74 ++++
src/java/org/objectweb/gotm/lib/event/PublishState.java
| 9
src/java/org/objectweb/gotm/lib/event/PublishSyncThread.java
| 74 ++++
src/java/org/objectweb/gotm/lib/event/PublishThreadPool.java
| 106 ++++++
src/java/org/objectweb/gotm/lib/event/SubscribablePrimitive.java
| 11
src/java/org/objectweb/gotm/lib/event/SubscriberPool.java
| 117 ++++++
src/java/org/objectweb/gotm/lib/event/SubscriberProvider.java
| 52 ++
src/java/org/objectweb/gotm/lib/logging/GenericLogger.java
| 156 ++++++++
src/java/org/objectweb/gotm/lib/logging/HOWLoggerProvider.java
| 144 ++++++++
src/java/org/objectweb/gotm/lib/logging/LoggerAttributeController.java
| 50 ++
src/java/org/objectweb/gotm/lib/logging/LoggerManager.java
| 74 ++++
src/java/org/objectweb/gotm/lib/logging/LoggerProvider.java
| 50 ++
src/java/org/objectweb/gotm/lib/logging/LoggerProviderAttributeController.java
| 62 +++
src/java/org/objectweb/gotm/lib/logging/SimpleLogger.java
| 59 +++
src/java/org/objectweb/gotm/lib/resource/AbstractActionProvider.java
| 22 -
src/java/org/objectweb/gotm/lib/resource/AbstractResourceManager.java
| 36 +-
src/java/org/objectweb/gotm/lib/resource/ActionProvider.java
| 12
src/java/org/objectweb/gotm/lib/resource/NoActionAvailableException.java
| 47 ++
src/java/org/objectweb/gotm/lib/resource/ResourceManagerASync.java
| 63 +++
src/java/org/objectweb/gotm/lib/resource/ResourceManagerImpl.java
| 16
src/java/org/objectweb/gotm/lib/resource/ResourceManagerWithPool.java
| 81 ++++
src/java/org/objectweb/gotm/lib/resource/ResourceManagerWithThread.java
| 77 ++++
src/java/org/objectweb/gotm/lib/resource/ResourceWithPool.java
| 79 ----
src/java/org/objectweb/gotm/lib/resource/ResourceWithThread.java
| 75 ----
src/java/org/objectweb/gotm/lib/transaction/InvalidStateException.java
| 56 +++
src/java/org/objectweb/gotm/lib/transaction/InvalidTransitionException.java
| 65 +++
src/java/org/objectweb/gotm/lib/transaction/StatusNotAllowedException.java
| 55 ---
src/java/org/objectweb/gotm/lib/transaction/TransactionStateAuto.java
| 9
src/java/org/objectweb/gotm/lib/transaction/TransactionStateImpl.java
| 23 +
src/java/org/objectweb/gotm/lib/xid/XidFeature.java
| 50 ++
src/java/org/objectweb/gotm/lib/xid/XidImpl.java
| 92 +++++
src/java/org/objectweb/gotm/lib/xid/XidStateImpl.java
| 160 ---------
53 files changed, 2245 insertions(+), 1087 deletions(-)
Index: gotm/.classpath
diff -u gotm/.classpath:1.9 gotm/.classpath:1.10
--- gotm/.classpath:1.9 Fri Jul 1 18:27:48 2005
+++ gotm/.classpath Mon Jul 11 10:27:05 2005
@@ -13,5 +13,6 @@
<classpathentry kind="lib"
path="/fractal-import/lib/julia/julia-mixins.jar"/>
<classpathentry kind="lib"
path="/fractal-import/lib/julia/julia-runtime.jar"/>
<classpathentry kind="src" path="/fractal-template"/>
+ <classpathentry kind="lib" path="lib/howl/howl.jar"/>
<classpathentry kind="output" path="output/eclipse"/>
</classpath>
Index: gotm/.settings/org.eclipse.core.resources.prefs
diff -u gotm/.settings/org.eclipse.core.resources.prefs:1.3
gotm/.settings/org.eclipse.core.resources.prefs:1.4
--- gotm/.settings/org.eclipse.core.resources.prefs:1.3 Mon May 23 13:20:55
2005
+++ gotm/.settings/org.eclipse.core.resources.prefs Mon Jul 11 10:27:04
2005
@@ -1,6 +1,8 @@
-#Wed Apr 20 19:34:07 CEST 2005
-eclipse.preferences.version=1
-encoding//src/fractal/org/objectweb/gotm/lib/coordination/Tp2PC.fractal=ISO-8859-1
-encoding//src/fractal/org/objectweb/gotm/lib/event/TpEventBus.fractal=ISO-8859-1
-encoding//src/fractal/org/objectweb/gotm/lib/event/TpEventBusWithPool.fractal=ISO-8859-1
-encoding//src/fractal/org/objectweb/gotm/lib/event/TpEventBusWithThread.fractal=ISO-8859-1
+#Fri Jul 08 18:16:18 CEST 2005
+eclipse.preferences.version=1
+encoding//src/fractal/org/objectweb/gotm/lib/coordination/Tp2PC.fractal=ISO-8859-1
+encoding//src/fractal/org/objectweb/gotm/lib/coordination/TpCommitEngine.fractal=ISO-8859-1
+encoding//src/fractal/org/objectweb/gotm/lib/event/TpEventBus.fractal=ISO-8859-1
+encoding//src/fractal/org/objectweb/gotm/lib/event/TpEventBusWithPool.fractal=ISO-8859-1
+encoding//src/fractal/org/objectweb/gotm/lib/event/TpEventBusWithThread.fractal=ISO-8859-1
+encoding//src/fractal/org/objectweb/gotm/lib/logging/TpLoggingHOWL.fractal=ISO-8859-1
Index: gotm/lib/howl/howl.jar
cvs rdiff: failed to read diff file header /tmp/cvsrx9VS1 for howl.jar,v: end
of file
Index: gotm/src/fractal/org/objectweb/gotm/lib/coordination/Tp2PC.fractal
diff -u
gotm/src/fractal/org/objectweb/gotm/lib/coordination/Tp2PC.fractal:1.2
gotm/src/fractal/org/objectweb/gotm/lib/coordination/Tp2PC.fractal:1.3
--- gotm/src/fractal/org/objectweb/gotm/lib/coordination/Tp2PC.fractal:1.2
Fri Jul 1 18:27:49 2005
+++ gotm/src/fractal/org/objectweb/gotm/lib/coordination/Tp2PC.fractal Mon
Jul 11 10:27:04 2005
@@ -9,32 +9,33 @@
<interface name="abort" role="server"
signature="org.objectweb.transaction.api.coordination.CoordinationFeature"/>
- <interface name="publish" role="client"
+ <interface name="sync-publish" role="client"
+ signature="org.objectweb.transaction.api.event.PublishFeature"/>
+ <interface name="async-publish" role="client"
signature="org.objectweb.transaction.api.event.PublishFeature"/>
<interface name="tx-state" role="client"
signature="org.objectweb.transaction.api.transaction.TransactionState"/>
+ <interface name="xid-provider" role="client"
+ signature="org.objectweb.gotm.lib.xid.XidFeature"/>
- <component name="Fc2PC"
- definition="org.objectweb.gotm.lib.coordination.TpTwoPCFeature"/>
- <component name="FcCommit"
- definition="org.objectweb.gotm.lib.coordination.TpCommitFeature"/>
- <component name="FcAbort"
- definition="org.objectweb.gotm.lib.coordination.TpAbortFeature"/>
+ <component name="FcCommitEngine"
+ definition="org.objectweb.gotm.lib.coordination.TpCommitEngine"/>
+ <component name="FcLogger"
+ definition="org.objectweb.gotm.lib.logging.TpLoggingHOWL"/>
- <binding client="this.commit" server="Fc2PC.coord-process"/>
- <binding client="this.abort" server="FcAbort.coord-process"/>
+ <binding client="this.commit" server="FcCommitEngine.commit"/>
+ <binding client="this.abort" server="FcCommitEngine.abort"/>
- <binding client="Fc2PC.commit" server="FcCommit.coord-process"/>
- <binding client="Fc2PC.abort" server="FcAbort.coord-process"/>
- <binding client="Fc2PC.publish" server="this.publish"/>
- <binding client="Fc2PC.tx-state" server="this.tx-state"/>
+ <binding client="FcCommitEngine.tx-state" server="this.tx-state"/>
+ <binding client="FcLogger.xid-provider"
server="this.xid-provider"/>
- <binding client="FcCommit.publish" server="this.publish"/>
- <binding client="FcCommit.tx-state" server="this.tx-state"/>
- <binding client="FcCommit.abort" server="FcAbort.coord-process"/>
+ <binding client="FcCommitEngine.commit-decision"
server="this.sync-publish"/>
+ <binding client="FcCommitEngine.prepare-decision"
server="this.async-publish"/>
+ <binding client="FcCommitEngine.abort-decision"
server="this.async-publish"/>
- <binding client="FcAbort.publish" server="this.publish"/>
- <binding client="FcAbort.tx-state" server="this.tx-state"/>
+ <binding client="FcCommitEngine.prepare-log" server="FcLogger.empty"/>
+ <binding client="FcCommitEngine.commit-log" server="FcLogger.empty"/>
+ <binding client="FcCommitEngine.abort-log" server="FcLogger.empty"/>
<template-controller desc="compositeTemplate" />
</definition>
Index:
gotm/src/fractal/org/objectweb/gotm/lib/coordination/TpCommitEngine.fractal
diff -u /dev/null
gotm/src/fractal/org/objectweb/gotm/lib/coordination/TpCommitEngine.fractal:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++
gotm/src/fractal/org/objectweb/gotm/lib/coordination/TpCommitEngine.fractal
Mon Jul 11 10:27:04 2005
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE definition PUBLIC
+ "-//objectweb.org//DTD Fractal ADL 2.0//EN"
+ "classpath://org/objectweb/fractal/adl/xml/basic.dtd">
+
+<definition name="org.objectweb.gotm.lib.coordination.TpCommitEngine">
+ <interface name="commit" role="server"
+
signature="org.objectweb.transaction.api.coordination.CoordinationFeature"/>
+ <interface name="abort" role="server"
+
signature="org.objectweb.transaction.api.coordination.CoordinationFeature"/>
+
+ <interface name="prepare-decision" role="client"
+ signature="org.objectweb.transaction.api.event.PublishFeature"/>
+ <interface name="commit-decision" role="client"
+ signature="org.objectweb.transaction.api.event.PublishFeature"/>
+ <interface name="abort-decision" role="client"
+ signature="org.objectweb.transaction.api.event.PublishFeature"/>
+ <interface name="tx-state" role="client"
+
signature="org.objectweb.transaction.api.transaction.TransactionState"/>
+ <interface name="prepare-log" role="client"
+ signature="org.objectweb.transaction.api.logging.LoggerFeature"/>
+ <interface name="commit-log" role="client"
+ signature="org.objectweb.transaction.api.logging.LoggerFeature"/>
+ <interface name="abort-log" role="client"
+ signature="org.objectweb.transaction.api.logging.LoggerFeature"/>
+
+ <component name="Fc2PC"
+ definition="org.objectweb.gotm.lib.coordination.TpTwoPCFeature"/>
+ <component name="FcCommit"
+ definition="org.objectweb.gotm.lib.coordination.TpCommitFeature"/>
+ <component name="FcAbort"
+ definition="org.objectweb.gotm.lib.coordination.TpAbortFeature"/>
+
+ <binding client="this.commit" server="Fc2PC.coord-process"/>
+ <binding client="this.abort" server="FcAbort.coord-process"/>
+
+ <binding client="Fc2PC.commit" server="FcCommit.coord-process"/>
+ <binding client="Fc2PC.tx-state" server="this.tx-state"/>
+ <binding client="Fc2PC.abort" server="FcAbort.coord-process"/>
+ <binding client="Fc2PC.publish" server="this.prepare-decision"/>
+ <binding client="Fc2PC.log" server="this.prepare-log"/>
+
+ <binding client="FcCommit.tx-state" server="this.tx-state"/>
+ <binding client="FcCommit.abort" server="FcAbort.coord-process"/>
+ <binding client="FcCommit.publish" server="this.commit-decision"/>
+ <binding client="FcCommit.log" server="this.commit-log"/>
+
+ <binding client="FcAbort.tx-state" server="this.tx-state"/>
+ <binding client="FcAbort.publish" server="this.abort-decision"/>
+ <binding client="FcAbort.log" server="this.abort-log"/>
+
+ <template-controller desc="compositeTemplate" />
+</definition>
Index: gotm/src/fractal/org/objectweb/gotm/lib/event/TpEventBus.fractal
diff -u gotm/src/fractal/org/objectweb/gotm/lib/event/TpEventBus.fractal:1.1
gotm/src/fractal/org/objectweb/gotm/lib/event/TpEventBus.fractal:1.2
--- gotm/src/fractal/org/objectweb/gotm/lib/event/TpEventBus.fractal:1.1
Mon May 23 13:20:54 2005
+++ gotm/src/fractal/org/objectweb/gotm/lib/event/TpEventBus.fractal Mon
Jul 11 10:27:05 2005
@@ -6,16 +6,30 @@
<definition name="org.objectweb.gotm.lib.event.TpEventBus">
<interface name="subscribe" role="server"
signature="org.objectweb.transaction.api.event.SubscribeFeature"/>
- <interface name="publish" role="server"
+ <interface name="sync-publish" role="server"
+ signature="org.objectweb.transaction.api.event.PublishFeature"/>
+ <interface name="async-publish" role="server"
signature="org.objectweb.transaction.api.event.PublishFeature"/>
- <component name="FcTopics"
- definition="org.objectweb.gotm.lib.event.TpEventEngineSimple"/>
-
+ <component name="FcSubscribers"
+ definition="org.objectweb.gotm.lib.event.TpSubscriberPool"/>
+ <component name="FcSyncPublish"
+ definition="org.objectweb.gotm.lib.event.TpPublishSimple"/>
+ <component name="FcASyncPublish"
+ definition="org.objectweb.gotm.lib.event.TpPublishASyncThread"/>
+
<binding client="this.subscribe"
- server="FcTopics.subscribe"/>
- <binding client="this.publish"
- server="FcTopics.publish"/>
+ server="FcSubscribers.subscribe"/>
+
+ <binding client="this.sync-publish"
+ server="FcSyncPublish.publish"/>
+ <binding client="FcSyncPublish.subscriber-provider"
+ server="FcSubscribers.subscriber-provider"/>
+
+ <binding client="this.async-publish"
+ server="FcASyncPublish.publish"/>
+ <binding client="FcASyncPublish.subscriber-provider"
+ server="FcSubscribers.subscriber-provider"/>
<template-controller desc="compositeTemplate" />
</definition>
Index: gotm/src/fractal/org/objectweb/gotm/lib/logging/TpLoggingHOWL.fractal
diff -u /dev/null
gotm/src/fractal/org/objectweb/gotm/lib/logging/TpLoggingHOWL.fractal:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/fractal/org/objectweb/gotm/lib/logging/TpLoggingHOWL.fractal
Mon Jul 11 10:27:05 2005
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE definition PUBLIC
+ "-//objectweb.org//DTD Fractal ADL 2.0//EN"
+ "classpath://org/objectweb/fractal/adl/xml/basic.dtd">
+
+<definition name="org.objectweb.gotm.lib.logging.TpLoggingHOWL">
+ <interface name="force" role="server"
+ signature="org.objectweb.transaction.api.logging.LoggerFeature"/>
+ <interface name="no-force" role="server"
+ signature="org.objectweb.transaction.api.logging.LoggerFeature"/>
+ <interface name="empty" role="server"
+ signature="org.objectweb.transaction.api.logging.LoggerFeature"/>
+ <interface name="xid-provider" role="client"
+ signature="org.objectweb.gotm.lib.xid.XidFeature"/>
+
+ <component name="FcProvider"
+
definition="org.objectweb.gotm.lib.logging.TpHOWLoggerProvider(log.txt,.)"/>
+ <component name="FcForceLogger"
+ definition="org.objectweb.gotm.lib.logging.TpGenericLogger(true)"/>
+ <component name="FcNoForceLogger"
+ definition="org.objectweb.gotm.lib.logging.TpGenericLogger(false)"/>
+ <component name="FcEmptyLogger"
+ definition="org.objectweb.gotm.lib.logging.TpSimpleLogger"/>
+
+ <binding client="this.force"
server="FcForceLogger.log"/>
+ <binding client="FcForceLogger.logger-provider"
server="FcProvider.logger-provider"/>
+ <binding client="FcForceLogger.xid-provider"
server="this.xid-provider"/>
+
+ <binding client="this.no-force"
server="FcNoForceLogger.log"/>
+ <binding client="FcNoForceLogger.logger-provider"
server="FcProvider.logger-provider"/>
+ <binding client="FcNoForceLogger.xid-provider"
server="this.xid-provider"/>
+
+ <binding client="this.empty" server="FcEmptyLogger.log"/>
+
+ <template-controller desc="compositeTemplate" />
+</definition>
Index: gotm/src/java/org/objectweb/gotm/GoTMException.java
diff -u gotm/src/java/org/objectweb/gotm/GoTMException.java:1.3
gotm/src/java/org/objectweb/gotm/GoTMException.java:1.4
--- gotm/src/java/org/objectweb/gotm/GoTMException.java:1.3 Mon Jan 10
17:16:06 2005
+++ gotm/src/java/org/objectweb/gotm/GoTMException.java Mon Jul 11 10:27:05
2005
@@ -23,7 +23,7 @@
Contributor(s): .
---------------------------------------------------------------------
-$Id: GoTMException.java,v 1.3 2005/01/10 16:16:06 rouvoy Exp $
+$Id: GoTMException.java,v 1.4 2005/07/11 08:27:05 rouvoy Exp $
====================================================================*/
package org.objectweb.gotm;
@@ -31,11 +31,18 @@
/**
* Exception wrapper for GoTM.
* @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class GoTMException
extends RuntimeException
{
+ /**
+ * @param msg the message specified when catching the initial exception.
+ */
+ public GoTMException(String msg) {
+ super(msg);
+ }
+
/**
* @param ex the delegated exception.
*/
Index: gotm/src/java/org/objectweb/gotm/lib/CurrentHandler.java
diff -u gotm/src/java/org/objectweb/gotm/lib/CurrentHandler.java:1.3
gotm/src/java/org/objectweb/gotm/lib/CurrentHandler.java:1.4
--- gotm/src/java/org/objectweb/gotm/lib/CurrentHandler.java:1.3 Mon
May 23 13:20:55 2005
+++ gotm/src/java/org/objectweb/gotm/lib/CurrentHandler.java Mon Jul 11
10:27:05 2005
@@ -1,115 +1,142 @@
/*====================================================================
-GoTM: GoTM is an open Transaction Monitor
-Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
-Contact: gotm-team@xxxxxxxxxxxxx
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-USA
-
-Initial developer(s): Romain Rouvoy.
-Contributor(s): .
-
----------------------------------------------------------------------
-$Id: CurrentHandler.java,v 1.3 2005/05/23 11:20:55 rouvoy Exp $
-====================================================================*/
+ GoTM: GoTM is an open Transaction Monitor
+ Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+ Contact: gotm-team@xxxxxxxxxxxxx
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): .
+
+ ---------------------------------------------------------------------
+ $Id: CurrentHandler.java,v 1.4 2005/07/11 08:27:05 rouvoy Exp $
+ ====================================================================*/
package org.objectweb.gotm.lib;
-
import org.objectweb.fractal.api.Component;
import org.objectweb.fractal.api.NoSuchInterfaceException;
+import org.objectweb.fractal.api.control.IllegalCacheException;
import org.objectweb.fractal.api.control.IllegalLifeCycleException;
import org.objectweb.fractal.api.control.LifeCycleController;
import org.objectweb.fractal.api.factory.Factory;
import org.objectweb.fractal.api.factory.InstantiationException;
import org.objectweb.fractal.lib.BindablePrimitive;
+import org.objectweb.fractal.pool.util.FcCache;
import org.objectweb.fractal.util.Fractal;
/**
* @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
* @created 1 févr. 2005
- * @modified $Date: 2005/05/23 11:20:55 $
- * @version $Revision: 1.3 $
- * @fractal.itf name="factory" role="client"
signature="org.objectweb.fractal.api.Component"
+ * @modified $Date: 2005/07/11 08:27:05 $
+ * @version $Revision: 1.4 $
+ * @fractal.itf name="factory" role="client"
+ * signature="org.objectweb.fractal.api.Component"
*/
public class CurrentHandler
-extends BindablePrimitive
-implements CurrentManager, LifeCycleController
-{
+ extends BindablePrimitive
+ implements CurrentManager, LifeCycleController {
/** Fractal ADL Identifier for the <code>FACTORY</code> interface. */
public static final String FACTORY = "factory";
-
+
/** <code>current</code> . */
private Component current = null;
+
private Component cleared = null;
-
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.objectweb.fractal.lib.BindablePrimitive#clientFc()
*/
protected String[] clientFc() {
- return new String[] {FACTORY};
+ return new String[] { FACTORY };
}
-
+
/**
* @return the transaction factory.
*/
private Factory getFactory() {
Component cpt = (Component) fcBindings.get(FACTORY);
try {
- return (Factory) cpt.getFcInterface("factory");
+ return (Factory) cpt.getFcInterface("factory");
} catch (NoSuchInterfaceException e) {
if (getLogger().isLoggable(ERROR))
- getLogger().log(ERROR,e.getMessage());
- return null ;
+ getLogger().log(ERROR, e.getMessage());
+ return null;
}
}
-
+
private Component getCleared() {
if (this.cleared == null) {
try {
this.cleared = getFactory().newFcInstance();
+ Fractal.getLifeCycleController(this.cleared).startFc();
} catch (InstantiationException e) {
e.printStackTrace();
+ } catch (IllegalLifeCycleException e) {
+ if (getLogger().isLoggable(ERROR))
+ getLogger().log(ERROR, e.getMessage());
+ } catch (NoSuchInterfaceException e) {
+ if (getLogger().isLoggable(ERROR))
+ getLogger().log(ERROR, e.getMessage());
}
}
- return this.cleared ;
+ return this.cleared;
}
-
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.objectweb.gotm.lib.CurrentManager#getCurrentFc()
*/
public Component getCurrentFc() {
return this.current;
}
-
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.objectweb.gotm.lib.CurrentManager#createCurrentFc()
*/
public void createCurrentFc() {
+ // try {
+ // this.current = this.cleared ;
+ // Fractal.getLifeCycleController(this.current).startFc();
+ // } catch (IllegalLifeCycleException e) {
+ // if (getLogger().isLoggable(ERROR))
+ // getLogger().log(ERROR,e.getMessage());
+ // } catch (NoSuchInterfaceException e) {
+ // // Ignored
+ // }
try {
- this.current = this.cleared ;
- Fractal.getLifeCycleController(this.current).startFc();
- } catch (IllegalLifeCycleException e) {
+ this.current = this.cleared;
+ FcCache.getCacheController(this.current).initFc();
+ } catch (IllegalCacheException e) {
if (getLogger().isLoggable(ERROR))
- getLogger().log(ERROR,e.getMessage());
+ getLogger().log(ERROR, e.getMessage());
} catch (NoSuchInterfaceException e) {
- // Ignored
+ if (getLogger().isLoggable(ERROR))
+ getLogger().log(ERROR, e.getMessage());
}
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see
org.objectweb.gotm.lib.CurrentManager#setCurrentFc(org.objectweb.fractal.api.Component)
*/
public void setCurrentFc(Component c) {
@@ -117,36 +144,62 @@
this.cleared = c;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.objectweb.gotm.lib.CurrentManager#clearCurrentFc()
*/
public void clearCurrentFc() {
+ // try {
+ // Fractal.getLifeCycleController(this.current).stopFc();
+ // } catch (IllegalLifeCycleException e) {
+ // getLogger().log(ERROR,e.getMessage());
+ // } catch (NoSuchInterfaceException e) {
+ // // Ignored
+ // }
try {
- Fractal.getLifeCycleController(this.current).stopFc();
- } catch (IllegalLifeCycleException e) {
- getLogger().log(ERROR,e.getMessage());
+ FcCache.getCacheController(this.current).clearFc();
+ } catch (IllegalCacheException e) {
+ if (getLogger().isLoggable(ERROR))
+ getLogger().log(ERROR, e.getMessage());
} catch (NoSuchInterfaceException e) {
- // Ignored
+ if (getLogger().isLoggable(ERROR))
+ getLogger().log(ERROR, e.getMessage());
}
this.current = null;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see
org.objectweb.fractal.api.control.LifeCycleController#getFcState()
*/
- public String getFcState() { return null; }
+ public String getFcState() {
+ return null;
+ }
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.objectweb.fractal.api.control.LifeCycleController#startFc()
*/
public void startFc() {
getCleared();
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.objectweb.fractal.api.control.LifeCycleController#stopFc()
*/
public void stopFc() {
+ try {
+ Fractal.getLifeCycleController(this.current).stopFc();
+ } catch (IllegalLifeCycleException e) {
+ getLogger().log(ERROR, e.getMessage());
+ } catch (NoSuchInterfaceException e) {
+ // Ignored
+ }
this.cleared = null;
}
}
Index: gotm/src/java/org/objectweb/gotm/lib/coordination/AbortFeature.java
diff -u
gotm/src/java/org/objectweb/gotm/lib/coordination/AbortFeature.java:1.1
gotm/src/java/org/objectweb/gotm/lib/coordination/AbortFeature.java:1.2
--- gotm/src/java/org/objectweb/gotm/lib/coordination/AbortFeature.java:1.1
Mon May 23 13:20:54 2005
+++ gotm/src/java/org/objectweb/gotm/lib/coordination/AbortFeature.java Mon
Jul 11 10:27:04 2005
@@ -23,11 +23,13 @@
Contributor(s): .
---------------------------------------------------------------------
-$Id: AbortFeature.java,v 1.1 2005/05/23 11:20:54 rouvoy Exp $
+$Id: AbortFeature.java,v 1.2 2005/07/11 08:27:04 rouvoy Exp $
====================================================================*/
package org.objectweb.gotm.lib.coordination;
+import java.util.Map;
+
import org.objectweb.transaction.lib.resource.ResourceEventRollback;
import org.objectweb.transaction.lib.transaction.TransactionStatusRolledBack;
import
org.objectweb.transaction.lib.transaction.TransactionStatusRollingBack;
@@ -35,20 +37,22 @@
/**
* Implementation of the cancel process.
* @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
* @fractal.itf
*/
public class AbortFeature
extends AbstractCoordinationFeature
{
/* (non-Javadoc)
- * @see
org.objectweb.transaction.api.coordination.CoordinationFeature#process()
+ * @see
org.objectweb.transaction.api.coordination.CoordinationFeature#process(java.util.Map)
*/
- public void process() {
+ public void process(Map context) {
if (getLogger().isLoggable(DEBUG))
getLogger().log(DEBUG,"Processing Abort.");
getTxState().setStatus(TransactionStatusRollingBack.status);
- getPublisher().notify(ResourceEventRollback.event.hashCode(),null);
+
getLog().log(TransactionStatusRollingBack.status.getLabel().getBytes());
+ getPublisher().notify(ResourceEventRollback.event,context);
+
getLog().log(TransactionStatusRolledBack.status.getLabel().getBytes());
getTxState().setStatus(TransactionStatusRolledBack.status);
}
}
Index:
gotm/src/java/org/objectweb/gotm/lib/coordination/AbstractCoordinationFeature.java
diff -u
gotm/src/java/org/objectweb/gotm/lib/coordination/AbstractCoordinationFeature.java:1.6
gotm/src/java/org/objectweb/gotm/lib/coordination/AbstractCoordinationFeature.java:1.7
---
gotm/src/java/org/objectweb/gotm/lib/coordination/AbstractCoordinationFeature.java:1.6
Mon May 23 13:20:54 2005
+++
gotm/src/java/org/objectweb/gotm/lib/coordination/AbstractCoordinationFeature.java
Mon Jul 11 10:27:04 2005
@@ -23,13 +23,14 @@
Contributor(s): .
---------------------------------------------------------------------
- $Id: AbstractCoordinationFeature.java,v 1.6 2005/05/23 11:20:54 rouvoy Exp $
+ $Id: AbstractCoordinationFeature.java,v 1.7 2005/07/11 08:27:04 rouvoy Exp $
====================================================================*/
package org.objectweb.gotm.lib.coordination;
import org.objectweb.transaction.api.coordination.CoordinationFeature;
import org.objectweb.transaction.api.event.PublishFeature;
+import org.objectweb.transaction.api.logging.LoggerFeature;
import org.objectweb.transaction.api.transaction.TransactionState;
import org.objectweb.fractal.lib.BindablePrimitive;
@@ -38,10 +39,11 @@
* Abstract implementation of a validation engine.
* @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
* @created 5 janv. 2005
- * @modified $Date: 2005/05/23 11:20:54 $
- * @version $Revision: 1.6 $
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.7 $
* @fractal.itf name="publish" role="client"
signature="org.objectweb.transaction.api.event.PublishFeature"
* @fractal.itf name="tx-state" role="client"
signature="org.objectweb.transaction.api.transaction.TransactionState"
+ * @fractal.itf name="log" role="client"
signature="org.objectweb.transaction.api.logging.LoggerFeature"
*/
public abstract class AbstractCoordinationFeature
extends BindablePrimitive
@@ -53,7 +55,8 @@
protected String[] clientFc() {
return new String[] {
PublishFeature.PUBLISH_FEATURE,
- TransactionState.TRANSACTION_STATE
+ TransactionState.TRANSACTION_STATE,
+ LoggerFeature.LOGGER
};
}
@@ -64,7 +67,17 @@
return (PublishFeature)
fcBindings.get(PublishFeature.PUBLISH_FEATURE);
}
+ /**
+ * @return the transaction state.
+ */
protected final TransactionState getTxState() {
return (TransactionState)
fcBindings.get(TransactionState.TRANSACTION_STATE);
+ }
+
+ /**
+ * @return the recovery logger.
+ */
+ protected final LoggerFeature getLog() {
+ return (LoggerFeature) fcBindings.get(LoggerFeature.LOGGER);
}
}
Index:
gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortAttributeController.java
diff -u
gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortAttributeController.java:1.1
gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortAttributeController.java:removed
---
gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortAttributeController.java:1.1
Mon May 23 13:20:54 2005
+++
gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortAttributeController.java
Mon Jul 11 10:27:05 2005
@@ -1,54 +0,0 @@
-/*====================================================================
-
-GoTM: GoTM is an open Transaction Monitor
-Copyright (C) 2000-2004 INRIA & USTL - LIFL - GOAL
-Contact: gotm-team@xxxxxxxxxxxxx
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-USA
-
-Initial developer(s): Romain Rouvoy.
-Contributor(s): .
-
----------------------------------------------------------------------
-$Id: AutoAbortAttributeController.java,v 1.1 2005/05/23 11:20:54 rouvoy Exp $
-====================================================================*/
-
-package org.objectweb.gotm.lib.coordination;
-
-import org.objectweb.fractal.api.control.AttributeController;
-
-/**
- * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
- * @created 5 janv. 2005
- * @modified $Date: 2005/05/23 11:20:54 $
- * @version $Revision: 1.1 $
- * @fractal.controller name="attribute"
- */
-public interface AutoAbortAttributeController
- extends AttributeController
-{
- /**
- * Defines the delay before autocompletion.
- * @param delay to apply in seconds (0 -> no delay).
- */
- public void setTimeout(int delay);
-
- /**
- * Provides the value of the autocompletion delay.
- * @return the delay applied (0 -> no delay).
- */
- public int getTimeout();
-}
Index: gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortImpl.java
diff -u
gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortImpl.java:1.1
gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortImpl.java:removed
--- gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortImpl.java:1.1
Mon May 23 13:20:54 2005
+++ gotm/src/java/org/objectweb/gotm/lib/coordination/AutoAbortImpl.java
Mon Jul 11 10:27:05 2005
@@ -1,129 +0,0 @@
-/*====================================================================
-
- GoTM: GoTM is an open Transaction Monitor
- Copyright (C) 2000-2004 INRIA & USTL - LIFL - GOAL
- Contact: gotm-team@xxxxxxxxxxxxx
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- USA
-
- Initial developer(s): Romain Rouvoy.
- Contributor(s): .
-
- ---------------------------------------------------------------------
- $Id: AutoAbortImpl.java,v 1.1 2005/05/23 11:20:54 rouvoy Exp $
- ====================================================================*/
-
-package org.objectweb.gotm.lib.coordination;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.Map;
-
-import javax.swing.Timer;
-
-import org.objectweb.gotm.lib.event.SubscribablePrimitive;
-import org.objectweb.transaction.api.coordination.CoordinationFeature;
-import org.objectweb.transaction.api.event.SubscribeFeature;
-import org.objectweb.transaction.lib.transaction.TransactionStatusCommitted;
-import
org.objectweb.transaction.lib.transaction.TransactionStatusNoTransaction;
-import org.objectweb.transaction.lib.transaction.TransactionStatusRolledBack;
-import
org.objectweb.transaction.lib.transaction.TransactionStatusTransactionActive;
-
-/**
- * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
- * @version $Revision: 1.1 $
- * @fractal.itf name="coord-process" role="client"
signature="org.objectweb.transaction.api.coordination.CoordinationFeature"
- */
-public class AutoAbortImpl
-extends SubscribablePrimitive
-implements AutoAbortAttributeController
-{
- /**
- * @fractal.attr argument="timeout"
- */
- private int timeout = 0;
-
- private Timer daemon ;
-
- /**
- * Default Constructor.
- */
- public AutoAbortImpl() {
- ActionListener taskPerformer = new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- AutoAbortImpl.this.getTerminator().process();
- }
- };
- this.daemon = new Timer(this.timeout, taskPerformer);
- this.daemon.setRepeats(false);
- }
-
- /* (non-Javadoc)
- * @see org.objectweb.gotm.lib.BindingFeature#clientFc()
- */
- protected String[] clientFc() {
- return new String[] {
- SubscribeFeature.SUBSCRIBE_FEATURE,
- CoordinationFeature.PROCESS_FEATURE
- };
- }
-
- /* (non-Javadoc)
- * @see org.objectweb.gotm.lib.SubscribablePrimitive#getEvents()
- */
- protected int[] getEvents() {
- return new int[] {
- TransactionStatusTransactionActive.status.hashCode(),
- TransactionStatusNoTransaction.status.hashCode(),
- TransactionStatusRolledBack.status.hashCode(),
- TransactionStatusCommitted.status.hashCode()
- };
- }
-
- protected CoordinationFeature getTerminator() {
- return (CoordinationFeature)
fcBindings.get(CoordinationFeature.PROCESS_FEATURE);
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.gotm.lib.coordination.AutoAbortAttributeController#setTimeout(int)
- */
- public void setTimeout(int delay) {
- this.timeout = delay ;
- this.daemon.setInitialDelay(this.timeout*1000);
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.gotm.lib.coordination.AutoAbortAttributeController#getTimeout()
- */
- public int getTimeout() {
- return this.timeout;
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.gotm.lib.topic.PublishFeature#notify(java.lang.String,
java.util.Map)
- */
- public void notify(int topic, Map context) {
- if (topic == TransactionStatusTransactionActive.status.hashCode()) {
- if (getTimeout() != 0) {
- //getTrace().debug("Starting timeout for "+getTimeout()+".");
- this.daemon.start();
- }
- } else if (getTimeout() != 0) {
- //getTrace().debug("Stopping timeout.");
- this.daemon.stop();
- }
- }
-}
Index: gotm/src/java/org/objectweb/gotm/lib/coordination/CommitFeature.java
diff -u
gotm/src/java/org/objectweb/gotm/lib/coordination/CommitFeature.java:1.2
gotm/src/java/org/objectweb/gotm/lib/coordination/CommitFeature.java:1.3
--- gotm/src/java/org/objectweb/gotm/lib/coordination/CommitFeature.java:1.2
Fri Jul 1 18:27:48 2005
+++ gotm/src/java/org/objectweb/gotm/lib/coordination/CommitFeature.java
Mon Jul 11 10:27:04 2005
@@ -23,14 +23,17 @@
Contributor(s): .
---------------------------------------------------------------------
- $Id: CommitFeature.java,v 1.2 2005/07/01 16:27:48 rouvoy Exp $
+ $Id: CommitFeature.java,v 1.3 2005/07/11 08:27:04 rouvoy Exp $
====================================================================*/
package org.objectweb.gotm.lib.coordination;
-import org.objectweb.gotm.lib.transaction.StatusNotAllowedException;
+import java.util.Map;
+
+import org.objectweb.gotm.lib.transaction.InvalidTransitionException;
import org.objectweb.transaction.api.coordination.CoordinationFeature;
import org.objectweb.transaction.api.event.PublishFeature;
+import org.objectweb.transaction.api.logging.LoggerFeature;
import org.objectweb.transaction.api.transaction.TransactionState;
import org.objectweb.transaction.lib.resource.ResourceEventCommit;
import org.objectweb.transaction.lib.transaction.TransactionStatusCommitted;
@@ -40,7 +43,7 @@
/**
* One phase validation process.
* @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
* @fractal.itf name="abort" role="client"
signature="org.objectweb.transaction.api.coordination.CoordinationFeature"
*/
public class CommitFeature
@@ -56,6 +59,7 @@
return new String[] {
PublishFeature.PUBLISH_FEATURE,
TransactionState.TRANSACTION_STATE,
+ LoggerFeature.LOGGER,
ABORT
};
}
@@ -66,20 +70,21 @@
protected CoordinationFeature abort() {
return (CoordinationFeature) fcBindings.get(ABORT);
}
-
/* (non-Javadoc)
- * @see org.objectweb.gotm.api.engine.ValidationFeature#validate()
+ * @see
org.objectweb.transaction.api.coordination.CoordinationFeature#process(java.util.Map)
*/
- public void process() {
+ public void process(Map context) {
if (getLogger().isLoggable(DEBUG))
getLogger().log(DEBUG,"Processing Commit.");
try {
- getTxState().setStatus(TransactionStatusCommitting.status);
- getPublisher().notify(ResourceEventCommit.event.hashCode(),null);
- getTxState().setStatus(TransactionStatusCommitted.status);
- } catch (StatusNotAllowedException e) {
- abort().process();
+ getTxState().setStatus(TransactionStatusCommitting.status);
+
getLog().log(TransactionStatusCommitting.status.getLabel().getBytes());
+ getPublisher().notify(ResourceEventCommit.event,context);
+
getLog().log(TransactionStatusCommitted.status.getLabel().getBytes());
+ getTxState().setStatus(TransactionStatusCommitted.status);
+ } catch (InvalidTransitionException e) {
+ abort().process(context);
}
}
}
Index: gotm/src/java/org/objectweb/gotm/lib/coordination/StatusChecker.java
diff -u
gotm/src/java/org/objectweb/gotm/lib/coordination/StatusChecker.java:1.4
gotm/src/java/org/objectweb/gotm/lib/coordination/StatusChecker.java:removed
--- gotm/src/java/org/objectweb/gotm/lib/coordination/StatusChecker.java:1.4
Mon May 23 13:20:54 2005
+++ gotm/src/java/org/objectweb/gotm/lib/coordination/StatusChecker.java
Mon Jul 11 10:27:05 2005
@@ -1,71 +0,0 @@
-/*====================================================================
-
-GoTM: GoTM is an open Transaction Monitor
-Copyright (C) 2000-2004 INRIA & USTL - LIFL - GOAL
-Contact: gotm-team@xxxxxxxxxxxxx
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-USA
-
-Initial developer(s): Romain Rouvoy.
-Contributor(s): .
-
----------------------------------------------------------------------
-$Id: StatusChecker.java,v 1.4 2005/05/23 11:20:54 rouvoy Exp $
-====================================================================*/
-
-package org.objectweb.gotm.lib.coordination;
-
-import org.objectweb.fractal.lib.BindablePrimitive;
-import org.objectweb.transaction.api.coordination.CoordinationFeature;
-import org.objectweb.transaction.api.transaction.TransactionStatusFeature;
-import
org.objectweb.transaction.lib.transaction.TransactionStatusMarkedRollback;
-
-/**
- * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
- * @version $Revision: 1.4 $
- * @fractal.itf name="tx-status" role="client"
signature="org.objectweb.transaction.api.transaction.TransactionStatusFeature"
- * @fractal.itf name="commit" role="client"
signature="org.objectweb.transaction.api.coordination.CoordinationFeature"
- * @fractal.itf name="rollback" role="client"
signature="org.objectweb.transaction.api.coordination.CoordinationFeature"
- */
-public class StatusChecker
- extends BindablePrimitive
- implements CoordinationFeature
-{
- /** Comment for <code>COMMIT</code>. */
- public static final String COMMIT = "commit";
- /** Comment for <code>ROLLBACK</code>. */
- public static final String ROLLBACK = "rollback";
-
- /* (non-Javadoc)
- * @see org.objectweb.gotm.lib.BindingFeature#clientFc()
- */
- protected String[] clientFc() {
- return new String[] {
- TransactionStatusFeature.TX_STATUS,
- COMMIT,
- ROLLBACK
- };
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.transaction.api.coordination.CoordinationFeature#process()
- */
- public void process() {
- TransactionStatusFeature status = (TransactionStatusFeature)
fcBindings.get(TransactionStatusFeature.TX_STATUS);
- CoordinationFeature delegate = (CoordinationFeature)
((status.getStatus()==TransactionStatusMarkedRollback.status)?fcBindings.get(ROLLBACK):fcBindings.get(COMMIT));
- delegate.process();
- }
-}
Index: gotm/src/java/org/objectweb/gotm/lib/coordination/TimeoutAttribute.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/coordination/TimeoutAttribute.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/coordination/TimeoutAttribute.java
Mon Jul 11 10:27:04 2005
@@ -0,0 +1,54 @@
+/*====================================================================
+
+GoTM: GoTM is an open Transaction Monitor
+Copyright (C) 2000-2004 INRIA & USTL - LIFL - GOAL
+Contact: gotm-team@xxxxxxxxxxxxx
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): .
+
+---------------------------------------------------------------------
+$Id: TimeoutAttribute.java,v 1.1 2005/07/11 08:27:04 rouvoy Exp $
+====================================================================*/
+
+package org.objectweb.gotm.lib.coordination;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 5 janv. 2005
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf name="timeout-attr"
+ */
+public interface TimeoutAttribute
+{
+ /** Fractal ADL Identifier for the <code>TimeoutAttribute</code>
interface. */
+ public static final String TIMEOUT_ATTRIBUTE = "timeout-attr";
+
+ /**
+ * Defines the delay before autocompletion.
+ * @param delay to apply in seconds (0 -> no delay).
+ */
+ public void setTimeout(int delay);
+
+ /**
+ * Provides the value of the autocompletion delay.
+ * @return the delay applied (0 -> no delay).
+ */
+ public int getTimeout();
+}
Index: gotm/src/java/org/objectweb/gotm/lib/coordination/TimeoutImpl.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/coordination/TimeoutImpl.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/coordination/TimeoutImpl.java Mon
Jul 11 10:27:04 2005
@@ -0,0 +1,128 @@
+/*====================================================================
+
+ GoTM: GoTM is an open Transaction Monitor
+ Copyright (C) 2000-2004 INRIA & USTL - LIFL - GOAL
+ Contact: gotm-team@xxxxxxxxxxxxx
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): .
+
+ ---------------------------------------------------------------------
+ $Id: TimeoutImpl.java,v 1.1 2005/07/11 08:27:04 rouvoy Exp $
+ ====================================================================*/
+
+package org.objectweb.gotm.lib.coordination;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.Timer;
+
+import org.objectweb.gotm.lib.event.SubscribablePrimitive;
+import org.objectweb.transaction.api.coordination.CoordinationFeature;
+import org.objectweb.transaction.api.event.Event;
+import org.objectweb.transaction.api.event.SubscribeFeature;
+import org.objectweb.transaction.lib.transaction.TransactionStatusCommitted;
+import
org.objectweb.transaction.lib.transaction.TransactionStatusNoTransaction;
+import org.objectweb.transaction.lib.transaction.TransactionStatusRolledBack;
+import
org.objectweb.transaction.lib.transaction.TransactionStatusTransactionActive;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @version $Revision: 1.1 $
+ * @fractal.itf name="coord-process" role="client"
signature="org.objectweb.transaction.api.coordination.CoordinationFeature"
+ */
+public class TimeoutImpl
+extends SubscribablePrimitive
+implements TimeoutAttribute
+{
+ private int timeout = 60;
+
+ private Timer daemon ;
+
+ /**
+ * Default Constructor.
+ */
+ public TimeoutImpl() {
+ ActionListener taskPerformer = new ActionListener() {
+ public void actionPerformed(ActionEvent evt) {
+ TimeoutImpl.this.getTerminator().process(new HashMap());
+ }
+ };
+ this.daemon = new Timer(this.timeout, taskPerformer);
+ this.daemon.setRepeats(false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.gotm.lib.BindingFeature#clientFc()
+ */
+ protected String[] clientFc() {
+ return new String[] {
+ SubscribeFeature.SUBSCRIBE_FEATURE,
+ CoordinationFeature.PROCESS_FEATURE
+ };
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.gotm.lib.SubscribablePrimitive#getEvents()
+ */
+ protected Event[] getEvents() {
+ return new Event[] {
+ TransactionStatusTransactionActive.status,
+ TransactionStatusNoTransaction.status,
+ TransactionStatusRolledBack.status,
+ TransactionStatusCommitted.status
+ };
+ }
+
+ protected CoordinationFeature getTerminator() {
+ return (CoordinationFeature)
fcBindings.get(CoordinationFeature.PROCESS_FEATURE);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.coordination.TimeoutAttribute#setTimeout(int)
+ */
+ public void setTimeout(int delay) {
+ this.timeout = delay ;
+ this.daemon.setInitialDelay(this.timeout*1000);
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.gotm.lib.coordination.TimeoutAttribute#getTimeout()
+ */
+ public int getTimeout() {
+ return this.timeout;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.topic.PublishFeature#notify(java.lang.String,
java.util.Map)
+ */
+ public void notify(Event topic, Map context) {
+ if (topic == TransactionStatusTransactionActive.status) {
+ if (getTimeout() != 0) {
+ //getTrace().debug("Starting timeout for "+getTimeout()+".");
+ this.daemon.start();
+ }
+ } else if (getTimeout() != 0) {
+ //getTrace().debug("Stopping timeout.");
+ this.daemon.stop();
+ }
+ }
+}
Index: gotm/src/java/org/objectweb/gotm/lib/coordination/TwoPCFeature.java
diff -u
gotm/src/java/org/objectweb/gotm/lib/coordination/TwoPCFeature.java:1.2
gotm/src/java/org/objectweb/gotm/lib/coordination/TwoPCFeature.java:1.3
--- gotm/src/java/org/objectweb/gotm/lib/coordination/TwoPCFeature.java:1.2
Fri Jul 1 18:27:48 2005
+++ gotm/src/java/org/objectweb/gotm/lib/coordination/TwoPCFeature.java Mon
Jul 11 10:27:04 2005
@@ -23,19 +23,20 @@
Contributor(s): .
---------------------------------------------------------------------
- $Id: TwoPCFeature.java,v 1.2 2005/07/01 16:27:48 rouvoy Exp $
+ $Id: TwoPCFeature.java,v 1.3 2005/07/11 08:27:04 rouvoy Exp $
====================================================================*/
package org.objectweb.gotm.lib.coordination;
-import java.util.HashMap;
+import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import org.objectweb.gotm.lib.transaction.StatusNotAllowedException;
+import org.objectweb.gotm.lib.transaction.InvalidTransitionException;
import org.objectweb.transaction.api.coordination.CoordinationFeature;
import org.objectweb.transaction.api.event.PublishFeature;
+import org.objectweb.transaction.api.logging.LoggerFeature;
import org.objectweb.transaction.api.transaction.TransactionState;
import org.objectweb.transaction.lib.resource.ResourceEventVote;
import org.objectweb.transaction.lib.resource.ResourceVoteCommit;
@@ -49,8 +50,8 @@
* Implementation of a Two-Phase Commit Protocol.
* @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
* @created 5 janv. 2005
- * @modified $Date: 2005/07/01 16:27:48 $
- * @version $Revision: 1.2 $
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.3 $
* @fractal.itf name="commit" role="client"
signature="org.objectweb.transaction.api.coordination.CoordinationFeature"
*/
public class TwoPCFeature
@@ -66,6 +67,7 @@
return new String[] {
PublishFeature.PUBLISH_FEATURE,
TransactionState.TRANSACTION_STATE,
+ LoggerFeature.LOGGER,
COMMIT,
ABORT
};
@@ -79,30 +81,32 @@
}
/* (non-Javadoc)
- * @see
org.objectweb.transaction.api.coordination.CoordinationFeature#process()
+ * @see
org.objectweb.transaction.api.coordination.CoordinationFeature#process(java.util.Map)
*/
- public void process() {
+ public void process(Map context) {
if (getLogger().isLoggable(DEBUG))
getLogger().log(DEBUG,"Processing Atomic 2 Phases Validation");
try {
getTxState().setStatus(TransactionStatusPreparing.status);
- Map votes = new HashMap();
- votes.put(ResourceVoteRollback.vote, new LinkedList());
- votes.put(ResourceVoteCommit.vote, new LinkedList());
- votes.put(ResourceVoteReadOnly.vote, new LinkedList());
- getPublisher().notify(ResourceEventVote.event.hashCode(), votes);
+ context.put(ResourceVoteRollback.vote,
Collections.synchronizedList(new LinkedList()));
+ context.put(ResourceVoteCommit.vote,
Collections.synchronizedList(new LinkedList()));
+ context.put(ResourceVoteReadOnly.vote,
Collections.synchronizedList(new LinkedList()));
+
+
getLog().log(TransactionStatusPreparing.status.getLabel().getBytes());
+ getPublisher().notify(ResourceEventVote.event, context);
getTxState().setStatus(TransactionStatusPrepared.status);
+
getLog().log(TransactionStatusPrepared.status.getLabel().getBytes());
- List enf_rollback = (List) votes.get(ResourceVoteRollback.vote);
- //List enf_commit = (List) votes.get(ResourceVoteCommit.vote);
+ List enf_rollback = (List)
context.get(ResourceVoteRollback.vote);
+ //List enf_commit = (List) context.get(ResourceVoteCommit.vote);
if (enf_rollback.size() == 0) {
// if (enf_commit.length != 0)
- commit().process();
+ commit().process(context);
} else {
- abort().process();
+ abort().process(context);
}
- } catch (StatusNotAllowedException e) {
- abort().process();
+ } catch (InvalidTransitionException e) {
+ abort().process(context);
}
}
}
Index: gotm/src/java/org/objectweb/gotm/lib/event/EventEngineSimple.java
diff -u gotm/src/java/org/objectweb/gotm/lib/event/EventEngineSimple.java:1.6
gotm/src/java/org/objectweb/gotm/lib/event/EventEngineSimple.java:removed
--- gotm/src/java/org/objectweb/gotm/lib/event/EventEngineSimple.java:1.6
Wed Jun 29 09:41:15 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/EventEngineSimple.java Mon
Jul 11 10:27:05 2005
@@ -1,132 +0,0 @@
-/*====================================================================
-
-GoTM: GoTM is an open Transaction Monitor
-Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
-Contact: gotm-team@xxxxxxxxxxxxx
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-USA
-
-Initial developer(s): Romain Rouvoy.
-Contributor(s): .
-
----------------------------------------------------------------------
-$Id: EventEngineSimple.java,v 1.6 2005/06/29 07:41:15 rouvoy Exp $
-====================================================================*/
-package org.objectweb.gotm.lib.event;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.objectweb.fractal.api.control.CacheController;
-import org.objectweb.fractal.lib.LoggablePrimitive;
-import org.objectweb.transaction.api.event.PublishFeature;
-import org.objectweb.transaction.api.event.SubscribeFeature;
-
-/**
- * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
- * @created 12 janv. 2005
- * @modified $Date: 2005/06/29 07:41:15 $
- * @version $Revision: 1.6 $
- * @fractal.itf
- */
-public class EventEngineSimple
- extends LoggablePrimitive
- implements SubscribeFeature, PublishFeature, CacheController
-{
- /**
- * Map containing all the available <code>topics</code>.
- */
- private Map topics = new HashMap();
-
- /**
- * @param topic the identifier of the requested topic
- * @return the requested topic.
- */
- protected Collection getTopic(int topic) {
- Collection set = (Collection) this.topics.get(new
Integer(topic)) ;
- if (set != null) return set;
- set = new ArrayList();
- this.topics.put(new Integer(topic),set);
- return set;
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.fractal.api.control.CacheController#getCacheState()
- */
- public String getCacheState() { return null; }
-
- /* (non-Javadoc)
- * @see org.objectweb.fractal.api.control.CacheController#initFc()
- */
- public void initFc() {
- // Ignored
- }
-
- /* (non-Javadoc)
- * @see org.objectweb.fractal.api.control.CacheController#clearFc()
- */
- public void clearFc() {
- this.topics.clear() ;
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.gotm.lib.topic.SubscribeFeature#suscribe(java.lang.String,
org.objectweb.gotm.lib.topic.PublishFeature)
- */
- public void subscribe(int topic, PublishFeature suscriber) {
- getTopic(topic).add(suscriber);
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.gotm.lib.topic.SubscribeFeature#unsuscribe(java.lang.String,
org.objectweb.gotm.lib.topic.PublishFeature)
- */
- public void unsubscribe(int topic, PublishFeature suscriber) {
- getTopic(topic).remove(suscriber);
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.gotm.lib.topic.PublishFeature#notify(java.lang.String,
java.util.Map)
- */
- public void notify(int topic, Map context) {
- if (getLogger().isLoggable(DEBUG))
- getLogger().log(DEBUG,"Notifying of topic "+topic);
-// Object[] listeners = getTopic(topic).toArray(); // Iterators
are less performing than arrays
-// for(int i=0 ; i <listeners.length;i++)
-// ((PublishFeature)listeners[i]).notify(topic, context);
- for(Iterator i=getTopic(topic).iterator() ; i.hasNext();)
- ((PublishFeature)i.next()).notify(topic, context);
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.transaction.api.event.SubscribeFeature#subscribe(java.lang.String[],
org.objectweb.transaction.api.event.PublishFeature)
- */
- public void subscribe(int[] topic, PublishFeature suscriber) {
- for(int i=0;i<topic.length;i++) {
- subscribe(topic[i],suscriber);
- }
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.transaction.api.event.SubscribeFeature#unsubscribe(java.lang.String[],
org.objectweb.transaction.api.event.PublishFeature)
- */
- public void unsubscribe(int[] topic, PublishFeature suscriber) {
- for(int i=0;i<topic.length;i++) {
- unsubscribe(topic[i],suscriber);
- }
- }
- }
Index: gotm/src/java/org/objectweb/gotm/lib/event/EventEngineThreadPool.java
diff -u
gotm/src/java/org/objectweb/gotm/lib/event/EventEngineThreadPool.java:1.4
gotm/src/java/org/objectweb/gotm/lib/event/EventEngineThreadPool.java:removed
--- gotm/src/java/org/objectweb/gotm/lib/event/EventEngineThreadPool.java:1.4
Wed Jun 29 09:41:15 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/EventEngineThreadPool.java
Mon Jul 11 10:27:05 2005
@@ -1,153 +0,0 @@
-/*====================================================================
-
- GoTM: GoTM is an open Transaction Monitor
- Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
- Contact: gotm-team@xxxxxxxxxxxxx
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- USA
-
- Initial developer(s): Romain Rouvoy.
- Contributor(s): .
-
- ---------------------------------------------------------------------
- $Id: EventEngineThreadPool.java,v 1.4 2005/06/29 07:41:15 rouvoy Exp $
- ====================================================================*/
-
-package org.objectweb.gotm.lib.event;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.objectweb.fractal.lib.BindablePrimitive;
-import org.objectweb.transaction.api.event.PublishFeature;
-import org.objectweb.transaction.api.event.SubscribeFeature;
-import org.objectweb.util.thread.api.RunnableManager;
-
-/**
- * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
- * @created 5 janv. 2005
- * @modified $Date: 2005/06/29 07:41:15 $
- * @version $Revision: 1.4 $
- * @fractal.itf name="runnable-manager" role="client"
signature="org.objectweb.util.thread.api.RunnableManager"
- */
-public class EventEngineThreadPool
-extends BindablePrimitive
-implements SubscribeFeature, PublishFeature
-{
- /**
- * Map containing all the available <code>topics</code>.
- */
- private final Map topics = new HashMap();
-
- /* (non-Javadoc)
- * @see org.objectweb.fractal.lib.BindablePrimitive#clientFc()
- */
- protected String[] clientFc() {
- return new String[] {RunnableManager.RUNNABLE_MANAGER};
- }
-
- /**
- * @return the runnable manager bound to the current component
- */
- protected final RunnableManager getRunnableManager() {
- return (RunnableManager)
fcBindings.get(RunnableManager.RUNNABLE_MANAGER);
- }
-
-
- /**
- * @param topic the identifier of the requested topic
- * @return the requested topic.
- */
- protected Collection getTopic(int topic) {
- Collection set = (Collection) this.topics.get(new Integer(topic)) ;
- if (set != null) return set;
- set = new ArrayList();
- this.topics.put(new Integer(topic),set);
- return set;
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.gotm.lib.topic.SubscribeFeature#suscribe(java.lang.String,
org.objectweb.gotm.lib.topic.PublishFeature)
- */
- public void subscribe(int topic, PublishFeature suscriber) {
- if (getLogger().isLoggable(DEBUG))
- getLogger().log(DEBUG,"Subscription of "+suscriber+" to the
"+topic+" topic.");
- getTopic(topic).add(suscriber);
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.gotm.lib.topic.SubscribeFeature#unsuscribe(java.lang.String,
org.objectweb.gotm.lib.topic.PublishFeature)
- */
- public void unsubscribe(int topic, PublishFeature suscriber) {
- if (getLogger().isLoggable(DEBUG))
- getLogger().log(DEBUG,"Unsubscription of "+suscriber+" from the
"+topic+" topic.");
- getTopic(topic).remove(suscriber);
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.gotm.lib.topic.PublishFeature#notify(java.lang.String,
java.util.Map)
- */
- public void notify(int topic, Map context) {
- if (getLogger().isLoggable(DEBUG))
- getLogger().log(DEBUG,"Notification of the "+topic+" topic.");
-// Object[] listeners = getTopic(topic).toArray(); // Iterators are
less performing than arrays
-// for(int i=0 ; i <listeners.length;i++)
- for (Iterator i = getTopic(topic).iterator(); i.hasNext();)
- getRunnableManager().submitRunnable(new
NotifyAction((PublishFeature)i.next(),topic,context));
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.transaction.api.event.SubscribeFeature#subscribe(java.lang.String[],
org.objectweb.transaction.api.event.PublishFeature)
- */
- public void subscribe(int[] topic, PublishFeature suscriber) {
- for(int i=0;i<topic.length;i++)
- subscribe(topic[i],suscriber);
- }
-
- /* (non-Javadoc)
- * @see
org.objectweb.transaction.api.event.SubscribeFeature#unsubscribe(java.lang.String[],
org.objectweb.transaction.api.event.PublishFeature)
- */
- public void unsubscribe(int[] topic, PublishFeature suscriber) {
- for(int i=0;i<topic.length;i++)
- unsubscribe(topic[i],suscriber);
- }
-
- private final class NotifyAction implements Runnable {
- private int topic ;
- private Map context ;
- private PublishFeature suscriber ;
- /**
- * @param suscriber
- * @param topic
- * @param context
- */
- public NotifyAction(PublishFeature suscriber, int topic, Map
context) {
- this.topic = topic ;
- this.context = context ;
- this.suscriber = suscriber;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Runnable#run()
- */
- public void run() {
- this.suscriber.notify(this.topic,this.context);
- }
- }
-}
Index: gotm/src/java/org/objectweb/gotm/lib/event/PublishASyncThread.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/event/PublishASyncThread.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/PublishASyncThread.java Mon
Jul 11 10:27:04 2005
@@ -0,0 +1,102 @@
+/*====================================================================
+
+GoTM: GoTM is an open Transaction Monitor
+Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+Contact: gotm-team@xxxxxxxxxxxxx
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): .
+
+---------------------------------------------------------------------
+$Id: PublishASyncThread.java,v 1.1 2005/07/11 08:27:04 rouvoy Exp $
+====================================================================*/
+package org.objectweb.gotm.lib.event;
+
+import java.util.Iterator;
+import java.util.Map;
+
+import org.objectweb.fractal.lib.BindablePrimitive;
+import org.objectweb.transaction.api.event.Event;
+import org.objectweb.transaction.api.event.PublishFeature;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 11 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf name="subscriber-provider" role="client"
signature="org.objectweb.gotm.lib.event.SubscriberProvider"
+ */
+public class PublishASyncThread
+ extends BindablePrimitive
+ implements PublishFeature {
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.lib.BindablePrimitive#clientFc()
+ */
+ protected String[] clientFc() {
+ return new String[] {SubscriberProvider.SUBSCRIBER_PROVIDER};
+ }
+
+ /**
+ * @return the subscriber provider.
+ */
+ protected SubscriberProvider getProvider() {
+ return (SubscriberProvider)
fcBindings.get(SubscriberProvider.SUBSCRIBER_PROVIDER);
+ }
+
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.transaction.api.event.PublishFeature#notify(org.objectweb.transaction.api.event.Event,
java.util.Map)
+ */
+ public void notify(Event topic, Map context) {
+ if (getLogger().isLoggable(DEBUG))
+ getLogger().log(DEBUG,"Notification of the "+topic+" topic.");
+ for (Iterator i = getProvider().getTopic(topic).iterator();
i.hasNext();) {
+ new NotifyAction((PublishFeature)i.next(),topic,context).start();
+ }
+ }
+
+ /**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 11 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf
+ */
+ protected final class NotifyAction extends Thread {
+ private Event topic ;
+ private Map context ;
+ private PublishFeature suscriber ;
+ /**
+ * @param suscriber
+ * @param topic
+ * @param context
+ */
+ public NotifyAction(PublishFeature suscriber, Event topic, Map
context) {
+ this.topic = topic ;
+ this.context = context ;
+ this.suscriber = suscriber;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Runnable#run()
+ */
+ public void run() {
+ this.suscriber.notify(this.topic,this.context);
+ }
+ }
+}
Index: gotm/src/java/org/objectweb/gotm/lib/event/PublishSimple.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/event/PublishSimple.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/PublishSimple.java Mon
Jul 11 10:27:04 2005
@@ -0,0 +1,74 @@
+/*====================================================================
+
+ GoTM: GoTM is an open Transaction Monitor
+ Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+ Contact: gotm-team@xxxxxxxxxxxxx
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): .
+
+ ---------------------------------------------------------------------
+ $Id: PublishSimple.java,v 1.1 2005/07/11 08:27:04 rouvoy Exp $
+ ====================================================================*/
+package org.objectweb.gotm.lib.event;
+
+import java.util.Iterator;
+import java.util.Map;
+
+import org.objectweb.fractal.lib.BindablePrimitive;
+import org.objectweb.transaction.api.event.Event;
+import org.objectweb.transaction.api.event.PublishFeature;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 12 janv. 2005
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf name="subscriber-provider" role="client"
signature="org.objectweb.gotm.lib.event.SubscriberProvider"
+ */
+public class PublishSimple
+ extends BindablePrimitive
+ implements PublishFeature {
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.lib.BindablePrimitive#clientFc()
+ */
+ protected String[] clientFc() {
+ return new String[] {SubscriberProvider.SUBSCRIBER_PROVIDER};
+ }
+
+ /**
+ * @return the subscriber provider.
+ */
+ protected SubscriberProvider getProvider() {
+ return (SubscriberProvider)
fcBindings.get(SubscriberProvider.SUBSCRIBER_PROVIDER);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.objectweb.gotm.lib.topic.PublishFeature#notify(java.lang.String,
+ * java.util.Map)
+ */
+ public void notify(Event topic, Map context) {
+ if (getLogger().isLoggable(DEBUG))
+ getLogger().log(DEBUG, "Notifying of topic " + topic);
+ for (Iterator i = getProvider().getTopic(topic).iterator();
i.hasNext();)
+ ((PublishFeature) i.next()).notify(topic, context);
+ }
+}
\ No newline at end of file
Index: gotm/src/java/org/objectweb/gotm/lib/event/PublishState.java
diff -u gotm/src/java/org/objectweb/gotm/lib/event/PublishState.java:1.2
gotm/src/java/org/objectweb/gotm/lib/event/PublishState.java:1.3
--- gotm/src/java/org/objectweb/gotm/lib/event/PublishState.java:1.2 Mon
May 23 13:20:55 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/PublishState.java Mon
Jul 11 10:27:04 2005
@@ -23,7 +23,7 @@
Contributor(s): .
---------------------------------------------------------------------
-$Id: PublishState.java,v 1.2 2005/05/23 11:20:55 rouvoy Exp $
+$Id: PublishState.java,v 1.3 2005/07/11 08:27:04 rouvoy Exp $
====================================================================*/
package org.objectweb.gotm.lib.event;
@@ -34,8 +34,8 @@
/**
* @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
* @created 5 janv. 2005
- * @modified $Date: 2005/05/23 11:20:55 $
- * @version $Revision: 1.2 $
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.3 $
* @fractal.itf name="publish" role="client"
signature="org.objectweb.transaction.api.event.PublishFeature"
*/
public abstract class PublishState
@@ -56,5 +56,4 @@
protected final PublishFeature getPublisher() {
return (PublishFeature)
fcBindings.get(PublishFeature.PUBLISH_FEATURE);
}
-
-}
+}
\ No newline at end of file
Index: gotm/src/java/org/objectweb/gotm/lib/event/PublishSyncThread.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/event/PublishSyncThread.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/PublishSyncThread.java Mon
Jul 11 10:27:04 2005
@@ -0,0 +1,74 @@
+/*====================================================================
+
+ GoTM: GoTM is an open Transaction Monitor
+ Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+ Contact: gotm-team@xxxxxxxxxxxxx
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): .
+
+ ---------------------------------------------------------------------
+ $Id: PublishSyncThread.java,v 1.1 2005/07/11 08:27:04 rouvoy Exp $
+ ====================================================================*/
+package org.objectweb.gotm.lib.event;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Vector;
+
+import org.objectweb.gotm.GoTMException;
+import org.objectweb.transaction.api.event.Event;
+import org.objectweb.transaction.api.event.PublishFeature;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 11 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf
+ */
+public class PublishSyncThread
+ extends PublishASyncThread {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.objectweb.transaction.api.event.PublishFeature#notify(org.objectweb.transaction.api.event.Event,
+ * java.util.Map)
+ */
+ public void notify(Event topic, Map context) {
+ if (getLogger().isLoggable(DEBUG))
+ getLogger().log(DEBUG, "Notification of the " + topic + "
topic.");
+ Vector actions = new Vector();
+ for (Iterator i = getProvider().getTopic(topic).iterator();
i.hasNext();) {
+ Thread action = new NotifyAction((PublishFeature) i.next(),
topic,
+ context);
+ actions.add(action);
+ action.start();
+ }
+ for (Iterator i = actions.iterator(); i.hasNext();) {
+ try {
+ ((Thread) i.next()).join();
+ } catch (InterruptedException e) {
+ if (getLogger().isLoggable(ERROR))
+ getLogger().log(ERROR, e);
+ throw new GoTMException(e);
+ }
+ }
+ }
+}
\ No newline at end of file
Index: gotm/src/java/org/objectweb/gotm/lib/event/PublishThreadPool.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/event/PublishThreadPool.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/PublishThreadPool.java Mon
Jul 11 10:27:04 2005
@@ -0,0 +1,106 @@
+/*====================================================================
+
+ GoTM: GoTM is an open Transaction Monitor
+ Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+ Contact: gotm-team@xxxxxxxxxxxxx
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): .
+
+ ---------------------------------------------------------------------
+ $Id: PublishThreadPool.java,v 1.1 2005/07/11 08:27:04 rouvoy Exp $
+ ====================================================================*/
+
+package org.objectweb.gotm.lib.event;
+
+import java.util.Iterator;
+import java.util.Map;
+
+import org.objectweb.fractal.lib.BindablePrimitive;
+import org.objectweb.transaction.api.event.Event;
+import org.objectweb.transaction.api.event.PublishFeature;
+import org.objectweb.util.thread.api.RunnableManager;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 5 janv. 2005
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf name="runnable-manager" role="client"
signature="org.objectweb.util.thread.api.RunnableManager"
+ * @fractal.itf name="subscriber-provider" role="client"
signature="org.objectweb.gotm.lib.event.SubscriberProvider"
+ */
+public class PublishThreadPool
+extends BindablePrimitive
+implements PublishFeature
+{
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.lib.BindablePrimitive#clientFc()
+ */
+ protected String[] clientFc() {
+ return new String[] {SubscriberProvider.SUBSCRIBER_PROVIDER,
RunnableManager.RUNNABLE_MANAGER};
+ }
+
+ /**
+ * @return the runnable manager bound to the current component
+ */
+ protected final RunnableManager getRunnableManager() {
+ return (RunnableManager)
fcBindings.get(RunnableManager.RUNNABLE_MANAGER);
+ }
+
+ /**
+ * @return the subscriber provider.
+ */
+ protected SubscriberProvider getProvider() {
+ return (SubscriberProvider)
fcBindings.get(SubscriberProvider.SUBSCRIBER_PROVIDER);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.topic.PublishFeature#notify(java.lang.String,
java.util.Map)
+ */
+ public void notify(Event topic, Map context) {
+ if (getLogger().isLoggable(DEBUG))
+ getLogger().log(DEBUG,"Notification of the "+topic+" topic.");
+// Object[] listeners = getTopic(topic).toArray(); // Iterators are
less performing than arrays
+// for(int i=0 ; i <listeners.length;i++)
+ for (Iterator i = getProvider().getTopic(topic).iterator();
i.hasNext();)
+ getRunnableManager().submitRunnable(new
NotifyAction((PublishFeature)i.next(),topic,context));
+ }
+
+ private final class NotifyAction implements Runnable {
+ private Event topic ;
+ private Map context ;
+ private PublishFeature suscriber ;
+ /**
+ * @param suscriber
+ * @param topic
+ * @param context
+ */
+ public NotifyAction(PublishFeature suscriber, Event topic, Map
context) {
+ this.topic = topic ;
+ this.context = context ;
+ this.suscriber = suscriber;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Runnable#run()
+ */
+ public void run() {
+ this.suscriber.notify(this.topic,this.context);
+ }
+ }
+}
Index: gotm/src/java/org/objectweb/gotm/lib/event/SubscribablePrimitive.java
diff -u
gotm/src/java/org/objectweb/gotm/lib/event/SubscribablePrimitive.java:1.2
gotm/src/java/org/objectweb/gotm/lib/event/SubscribablePrimitive.java:1.3
--- gotm/src/java/org/objectweb/gotm/lib/event/SubscribablePrimitive.java:1.2
Mon May 23 13:20:55 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/SubscribablePrimitive.java
Mon Jul 11 10:27:04 2005
@@ -23,21 +23,22 @@
Contributor(s): .
---------------------------------------------------------------------
-$Id: SubscribablePrimitive.java,v 1.2 2005/05/23 11:20:55 rouvoy Exp $
+$Id: SubscribablePrimitive.java,v 1.3 2005/07/11 08:27:04 rouvoy Exp $
====================================================================*/
package org.objectweb.gotm.lib.event;
import org.objectweb.fractal.api.control.CacheController;
import org.objectweb.fractal.lib.BindablePrimitive;
+import org.objectweb.transaction.api.event.Event;
import org.objectweb.transaction.api.event.PublishFeature;
import org.objectweb.transaction.api.event.SubscribeFeature;
/**
* @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
* @created 12 janv. 2005
- * @modified $Date: 2005/05/23 11:20:55 $
- * @version $Revision: 1.2 $
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.3 $
* @fractal.itf name="subscribe" role="client"
signature="org.objectweb.transaction.api.event.SubscribeFeature"
*/
public abstract class SubscribablePrimitive
@@ -48,7 +49,7 @@
* Provides the set of events handled by the component.
* @return the events handled by the current component.
*/
- protected abstract int[] getEvents() ;
+ protected abstract Event[] getEvents() ;
/* (non-Javadoc)
* @see org.objectweb.fractal.lib.BindablePrimitive#clientFc()
@@ -81,4 +82,4 @@
* @see org.objectweb.fractal.api.control.CacheController#getLoadState()
*/
public String getCacheState() { return null; }
-}
+}
\ No newline at end of file
Index: gotm/src/java/org/objectweb/gotm/lib/event/SubscriberPool.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/event/SubscriberPool.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/SubscriberPool.java Mon
Jul 11 10:27:04 2005
@@ -0,0 +1,117 @@
+/*====================================================================
+
+GoTM: GoTM is an open Transaction Monitor
+Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+Contact: gotm-team@xxxxxxxxxxxxx
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): .
+
+---------------------------------------------------------------------
+$Id: SubscriberPool.java,v 1.1 2005/07/11 08:27:04 rouvoy Exp $
+====================================================================*/
+package org.objectweb.gotm.lib.event;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.objectweb.fractal.api.control.CacheController;
+import org.objectweb.fractal.lib.LoggablePrimitive;
+import org.objectweb.transaction.api.event.Event;
+import org.objectweb.transaction.api.event.PublishFeature;
+import org.objectweb.transaction.api.event.SubscribeFeature;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 11 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf
+ */
+public class SubscriberPool
+ extends LoggablePrimitive
+ implements SubscriberProvider, SubscribeFeature, CacheController {
+ /**
+ * Map containing all the available <code>topics</code>.
+ */
+ private Map topics = new HashMap();
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.api.control.CacheController#getCacheState()
+ */
+ public String getCacheState() { return null; }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.api.control.CacheController#initFc()
+ */
+ public void initFc() {
+ // Ignored
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.api.control.CacheController#clearFc()
+ */
+ public void clearFc() {
+ this.topics.clear() ;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.event.SubscriberProvider#getTopic(org.objectweb.transaction.api.event.Event)
+ */
+ public Collection getTopic(Event topic) {
+ Collection set = (Collection) this.topics.get(topic) ;
+ if (set != null) return set;
+ set = new ArrayList();
+ this.topics.put(topic,set);
+ return set;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.transaction.api.event.SubscribeFeature#subscribe(org.objectweb.transaction.api.event.Event,
org.objectweb.transaction.api.event.PublishFeature)
+ */
+ public void subscribe(Event topic, PublishFeature suscriber) {
+ getTopic(topic).add(suscriber);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.transaction.api.event.SubscribeFeature#unsubscribe(org.objectweb.transaction.api.event.Event,
org.objectweb.transaction.api.event.PublishFeature)
+ */
+ public void unsubscribe(Event topic, PublishFeature suscriber) {
+ getTopic(topic).remove(suscriber);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.transaction.api.event.SubscribeFeature#subscribe(org.objectweb.transaction.api.event.Event[],
org.objectweb.transaction.api.event.PublishFeature)
+ */
+ public void subscribe(Event[] topic, PublishFeature suscriber) {
+ for(int i=0;i<topic.length;i++) {
+ subscribe(topic[i],suscriber);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.transaction.api.event.SubscribeFeature#unsubscribe(org.objectweb.transaction.api.event.Event[],
org.objectweb.transaction.api.event.PublishFeature)
+ */
+ public void unsubscribe(Event[] topic, PublishFeature suscriber) {
+ for(int i=0;i<topic.length;i++) {
+ unsubscribe(topic[i],suscriber);
+ }
+ }
+}
\ No newline at end of file
Index: gotm/src/java/org/objectweb/gotm/lib/event/SubscriberProvider.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/event/SubscriberProvider.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/event/SubscriberProvider.java Mon
Jul 11 10:27:04 2005
@@ -0,0 +1,52 @@
+/*====================================================================
+
+GoTM: GoTM is an open Transaction Monitor
+Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+Contact: gotm-team@xxxxxxxxxxxxx
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): .
+
+---------------------------------------------------------------------
+$Id: SubscriberProvider.java,v 1.1 2005/07/11 08:27:04 rouvoy Exp $
+====================================================================*/
+package org.objectweb.gotm.lib.event;
+
+import java.util.Collection;
+
+import org.objectweb.transaction.api.Feature;
+import org.objectweb.transaction.api.event.Event;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 11 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:04 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf name="subscriber-provider"
+ */
+public interface SubscriberProvider
+ extends Feature {
+ /** Fractal ADL Identifier for the <code>SubscriberProvider</code>
interface. */
+ public static final String SUBSCRIBER_PROVIDER = "subscriber-provider";
+
+ /**
+ * @param topic the identifier of the requested topic
+ * @return the requested topic.
+ */
+ Collection getTopic(Event topic);
+}
\ No newline at end of file
Index: gotm/src/java/org/objectweb/gotm/lib/logging/GenericLogger.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/logging/GenericLogger.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/logging/GenericLogger.java Mon
Jul 11 10:27:05 2005
@@ -0,0 +1,156 @@
+/*====================================================================
+
+GoTM: GoTM is an open Transaction Monitor
+Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+Contact: gotm-team@xxxxxxxxxxxxx
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): .
+
+---------------------------------------------------------------------
+$Id: GenericLogger.java,v 1.1 2005/07/11 08:27:05 rouvoy Exp $
+====================================================================*/
+package org.objectweb.gotm.lib.logging;
+
+
+import javax.transaction.xa.Xid;
+
+import org.objectweb.fractal.lib.BindablePrimitive;
+import org.objectweb.gotm.GoTMException;
+import org.objectweb.gotm.lib.xid.XidFeature;
+import org.objectweb.transaction.api.logging.LoggerFeature;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 7 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:05 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf name="logger-provider" role="client"
signature="org.objectweb.gotm.lib.logging.LoggerProvider"
+ * @fractal.itf name="xid-provider" role="client"
signature="org.objectweb.gotm.lib.xid.XidFeature"
+ */
+public class GenericLogger
+ extends BindablePrimitive
+ implements LoggerFeature, LoggerAttributeController {
+
+ /**
+ * @fractal.attr argument="force"
+ */
+ protected boolean force ;
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.lib.BindablePrimitive#clientFc()
+ */
+ protected String[] clientFc() {
+ return new String[] {
+ LoggerProvider.LOGGER_PROVIDER,
+ XidFeature.XID_PROVIDER
+ };
+ }
+
+ /**
+ * @return the HOWL LoggerProvider interface.
+ */
+ protected org.objectweb.howl.log.Logger logging() {
+ return
((LoggerProvider)fcBindings.get(LoggerProvider.LOGGER_PROVIDER)).getLogging();
+ }
+
+ /**
+ * @return the XID object.
+ */
+ protected Xid xid() {
+ return ((XidFeature)fcBindings.get(XidFeature.XID_PROVIDER)).xid();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.logging.LoggerAttributeController#setForce(boolean)
+ */
+ public void setForce(boolean value) {
+ this.force = value;
+ System.out.println("--> force="+value);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.logging.LoggerAttributeController#getForce()
+ */
+ public boolean getForce() {
+ return this.force;
+ }
+
+ /**
+ * @param formatId
+ * @return the byte conversion of the formatId.
+ */
+ private byte[] intToBytes(int formatId) {
+ byte[] buffer = new byte[4];
+ buffer[0] = (byte) (formatId >> 24);
+ buffer[1] = (byte) (formatId >> 16);
+ buffer[2] = (byte) (formatId >> 8);
+ buffer[3] = (byte) (formatId >> 0);
+ return buffer;
+ }
+
+ /**
+ * @param data
+ * @return a byte array with xid information computed.
+ */
+ protected byte[][] compute(byte[][] data) {
+ byte[][] result = new byte[3 + data.length][];
+ result[0] = intToBytes(xid().getFormatId());
+ result[1] = xid().getGlobalTransactionId();
+ result[2] = xid().getBranchQualifier();
+ for (int i=3 ; i<result.length ; i++) {
+ result[i] = data[i-3];
+ }
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.transaction.api.logging.LoggerFeature#log(byte[][])
+ */
+ public void log(byte[][] data) {
+ try {
+ logging().put(compute(data), this.force);
+ } catch (Exception e) {
+ throw new GoTMException(e);
+ }
+ }
+
+ /**
+ * @param data
+ * @return a byte array with xid information computed.
+ */
+ protected byte[][] compute(byte[] data) {
+ byte[][] result = new byte[4][];
+ result[0] = intToBytes(xid().getFormatId());
+ result[1] = xid().getGlobalTransactionId();
+ result[2] = xid().getBranchQualifier();
+ result[3] = data;
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.transaction.api.logging.LoggerFeature#log(byte[])
+ */
+ public void log(byte[] data) {
+ try {
+ logging().put(compute(data), this.force);
+ } catch (Exception e) {
+ throw new GoTMException(e);
+ }
+ }
+}
Index: gotm/src/java/org/objectweb/gotm/lib/logging/HOWLoggerProvider.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/logging/HOWLoggerProvider.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/logging/HOWLoggerProvider.java Mon
Jul 11 10:27:05 2005
@@ -0,0 +1,144 @@
+/*====================================================================
+
+GoTM: GoTM is an open Transaction Monitor
+Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+Contact: gotm-team@xxxxxxxxxxxxx
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): .
+
+---------------------------------------------------------------------
+$Id: HOWLoggerProvider.java,v 1.1 2005/07/11 08:27:05 rouvoy Exp $
+====================================================================*/
+package org.objectweb.gotm.lib.logging;
+
+import java.io.IOException;
+
+import org.objectweb.fractal.api.control.IllegalLifeCycleException;
+import org.objectweb.fractal.api.control.LifeCycleController;
+import org.objectweb.fractal.lib.LoggablePrimitive;
+import org.objectweb.howl.log.Configuration;
+import org.objectweb.howl.log.InvalidFileSetException;
+import org.objectweb.howl.log.InvalidLogBufferException;
+import org.objectweb.howl.log.LogConfigurationException;
+import org.objectweb.howl.log.Logger;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 7 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:05 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf
+ */
+public class HOWLoggerProvider
+ extends LoggablePrimitive
+ implements
LoggerManager,LoggerProvider,LoggerProviderAttributeController,LifeCycleController
{
+
+ /**
+ * @fractal.attr argument="file"
+ */
+ protected String filename ;
+
+ /**
+ * @fractal.attr argument="dir"
+ */
+ protected String dirpath ;
+
+ protected Logger logger ;
+
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.logging.LoggerProviderAttributeController#setFilename(java.lang.String)
+ */
+ public void setFilename(String name) {
+ this.filename = name;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.logging.LoggerProviderAttributeController#getFilename()
+ */
+ public String getFilename() {
+ return this.filename;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.logging.LoggerProviderAttributeController#setDirpath(java.lang.String)
+ */
+ public void setDirpath(String path) {
+ this.dirpath = path ;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.gotm.lib.logging.LoggerProviderAttributeController#getDirpath()
+ */
+ public String getDirpath() {
+ return this.dirpath ;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.fractal.api.control.LifeCycleController#getFcState()
+ */
+ public String getFcState() { return null; }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.api.control.LifeCycleController#startFc()
+ */
+ public void startFc() throws IllegalLifeCycleException {
+ Configuration cfg = new Configuration();
+ cfg.setLogFileName(this.filename);
+ cfg.setLogFileDir(this.dirpath);
+ try {
+ this.logger = new Logger(cfg);
+ this.open() ;
+ } catch (Exception e) {
+ throw new IllegalLifeCycleException(e.getMessage());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.api.control.LifeCycleController#stopFc()
+ */
+ public void stopFc() throws IllegalLifeCycleException {
+ try {
+ this.close() ;
+ } catch (Exception e) {
+ throw new IllegalLifeCycleException(e.getMessage());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.gotm.lib.logging.LoggerManager#close()
+ */
+ public void close() throws IOException, InterruptedException {
+ this.logger.close() ;
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.gotm.lib.logging.LoggerManager#open()
+ */
+ public void open() throws InvalidFileSetException, IOException,
LogConfigurationException, InvalidLogBufferException, InterruptedException {
+ this.logger.open() ;
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.gotm.lib.logging.LoggerProvider#getLogging()
+ */
+ public Logger getLogging() {
+ return this.logger;
+ }
+}
Index:
gotm/src/java/org/objectweb/gotm/lib/logging/LoggerAttributeController.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/logging/LoggerAttributeController.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++
gotm/src/java/org/objectweb/gotm/lib/logging/LoggerAttributeController.java
Mon Jul 11 10:27:05 2005
@@ -0,0 +1,50 @@
+/*====================================================================
+
+ GoTM: GoTM is an open Transaction Monitor
+ Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+ Contact: gotm-team@xxxxxxxxxxxxx
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): .
+
+ ---------------------------------------------------------------------
+ $Id: LoggerAttributeController.java,v 1.1 2005/07/11 08:27:05 rouvoy Exp $
+ ====================================================================*/
+package org.objectweb.gotm.lib.logging;
+
+import org.objectweb.fractal.api.control.AttributeController;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 7 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:05 $
+ * @version $Revision: 1.1 $
+ * @fractal.controller
+ */
+public interface LoggerAttributeController
+ extends AttributeController {
+ /**
+ * @param value the force tag to associate to the logger.
+ */
+ void setForce(boolean value);
+
+ /**
+ * @return the force tag associated to the logger.
+ */
+ boolean getForce();
+}
Index: gotm/src/java/org/objectweb/gotm/lib/logging/LoggerManager.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/logging/LoggerManager.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/logging/LoggerManager.java Mon
Jul 11 10:27:05 2005
@@ -0,0 +1,74 @@
+/*====================================================================
+
+GoTM: GoTM is an open Transaction Monitor
+Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+Contact: gotm-team@xxxxxxxxxxxxx
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): .
+
+---------------------------------------------------------------------
+$Id: LoggerManager.java,v 1.1 2005/07/11 08:27:05 rouvoy Exp $
+====================================================================*/
+package org.objectweb.gotm.lib.logging;
+
+import java.io.IOException;
+
+import org.objectweb.howl.log.InvalidFileSetException;
+import org.objectweb.howl.log.InvalidLogBufferException;
+import org.objectweb.howl.log.LogConfigurationException;
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * @author <a href="mailto:serrano@xxxxxxx">Patricia Serrano-Alvarado</a>
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 7 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:05 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf name="logger-manager"
+ */
+public interface LoggerManager
+ extends Feature {
+
+ /** Fractal ADL Identifier for the <code>LoggerManager</code>
interface.*/
+ public static final String LOGGER_MANAGER = "logging-manager";
+
+ /**
+ * close the Log files and perform necessary cleanup tasks.
+ *
+ * @throws IOException
+ * @throws InterruptedException
+ */
+ public void close() throws IOException, InterruptedException;
+
+ /**
+ * open Log files and perform necessart initialization. TODO: consider
+ * open(String name) to allow named configurations. this would allow
utility
+ * to open two loggers and copy old records to new files.
+ *
+ * @throws InvalidFileSetException
+ * @throws IOException
+ * @throws LogConfigurationException
+ * @throws InvalidLogBufferException
+ * @throws InterruptedException
+ */
+ public void open() throws InvalidFileSetException, IOException,
+ LogConfigurationException, InvalidLogBufferException,
+ InterruptedException;
+
+}
Index: gotm/src/java/org/objectweb/gotm/lib/logging/LoggerProvider.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/logging/LoggerProvider.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++ gotm/src/java/org/objectweb/gotm/lib/logging/LoggerProvider.java Mon
Jul 11 10:27:05 2005
@@ -0,0 +1,50 @@
+/*====================================================================
+
+ GoTM: GoTM is an open Transaction Monitor
+ Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+ Contact: gotm-team@xxxxxxxxxxxxx
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): .
+
+ ---------------------------------------------------------------------
+ $Id: LoggerProvider.java,v 1.1 2005/07/11 08:27:05 rouvoy Exp $
+ ====================================================================*/
+package org.objectweb.gotm.lib.logging;
+
+import org.objectweb.howl.log.Logger;
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 7 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:05 $
+ * @version $Revision: 1.1 $
+ * @fractal.itf name="logger-provider"
+ */
+public interface LoggerProvider
+ extends Feature {
+
+ /** Fractal ADL Identifier for the <code>LoggerProvider</code>
interface. */
+ public static final String LOGGER_PROVIDER = "logger-provider";
+
+ /**
+ * @return the logger.
+ */
+ Logger getLogging();
+}
\ No newline at end of file
Index:
gotm/src/java/org/objectweb/gotm/lib/logging/LoggerProviderAttributeController.java
diff -u /dev/null
gotm/src/java/org/objectweb/gotm/lib/logging/LoggerProviderAttributeController.java:1.1
--- /dev/null Mon Jul 11 10:27:05 2005
+++
gotm/src/java/org/objectweb/gotm/lib/logging/LoggerProviderAttributeController.java
Mon Jul 11 10:27:05 2005
@@ -0,0 +1,62 @@
+/*====================================================================
+
+ GoTM: GoTM is an open Transaction Monitor
+ Copyright (C) 2003-2005 INRIA - Jacquard & USTL - LIFL - GOAL
+ Contact: gotm-team@xxxxxxxxxxxxx
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): .
+
+ ---------------------------------------------------------------------
+ $Id: LoggerProviderAttributeController.java,v 1.1 2005/07/11 08:27:05
rouvoy Exp $
+ ====================================================================*/
+package org.objectweb.gotm.lib.logging;
+
+import org.objectweb.fractal.api.control.AttributeController;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @created 7 juil. 2005
+ * @modified $Date: 2005/07/11 08:27:05 $
+ * @version $Revision: 1.1 $
+ * @fractal.controller
+ */
+public interface LoggerProviderAttributeController
+ extends AttributeController {
+ /**
+ * @param name
+ * the filename.
+ */
+ void setFilename(String name);
+
+ /**
+ * @return the filename.
+ */
+ String getFilename();
+
+ /**
+ * @param path
+ * the path of the directory.
+ */
+ void setDirpath(String path);
+
+ /**
+ * @return the pa