[java-opensaml COMMIT] in /trunk/opensaml-messaging-api/src: main/java/org/opensaml/messaging/context/AbstractContext...
noreply at shibboleth.net
noreply at shibboleth.net
Thu Jan 26 04:22:08 GMT 2012
Author: putmanb
Date: Thu Jan 26 04:22:08 2012
New Revision: 2933
URL: http://svn.shibboleth.net/view/java-opensaml?rev=2933&view=rev
Log:
Eliminate Context and MessageContext interfaces, replace with a abstract BaseContext impl and a new concrete MessageContext impl.
Added:
trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BaseContext.java
- copied, changed from r2932, trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java
trunk/opensaml-messaging-api/src/test/java/org/opensaml/messaging/context/BaseContextTest.java
- copied, changed from r2932, trunk/opensaml-messaging-api/src/test/java/org/opensaml/messaging/context/AbstractContextTest.java
Removed:
trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java
trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/Context.java
trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/MessageContext.java
trunk/opensaml-messaging-api/src/test/java/org/opensaml/messaging/context/AbstractContextTest.java
Modified:
trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BasicInOutOperationContext.java
trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BasicMessageContext.java
trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BasicMessageMetadataSubcontext.java
trunk/opensaml-messaging-api/src/test/java/org/opensaml/messaging/context/TestContext.java
Copied: trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BaseContext.java (from r2932, trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java)
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BaseContext.java?p2=trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BaseContext.java&p1=trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java&r1=2932&r2=2933&rev=2933&view=diff
==============================================================================
--- trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java (original)
+++ trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BaseContext.java Thu Jan 26 04:22:08 2012
@@ -23,6 +23,7 @@
import java.util.UUID;
import net.shibboleth.utilities.java.support.collection.ClassIndexedSet;
+import net.shibboleth.utilities.java.support.component.IdentifiableComponent;
import net.shibboleth.utilities.java.support.logic.Assert;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -31,20 +32,40 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
/**
- * Abstract implementation of {@link Context}.
+ * Base implementation of a component which represents the context used to store state
+ * used for purposes related to messaging.
+ *
+ * <p>
+ * Specific implementations of contexts would normally add additional properties to the
+ * context to represent the state that is to be stored by that particular context implementation.
+ * </p>
+ *
+ * <p>
+ * A context may also function as a container of subcontexts.
+ * Access to subcontexts is class-based. The parent context may hold only
+ * one instance of a given class at a given time. This class-based indexing approach
+ * is used to enforce type-safety over the subcontext instances returned from the parent context,
+ * and avoids the need for casting.
+ * </p>
+ *
+ * <p>
+ * When a subcontext is requested and it does not exist in the parent context, it may optionally be
+ * auto-created. In order to be auto-created in this manner, the subcontext type
+ * <strong>MUST</strong> have a no-arg constructor. If the requested subcontext does not conform
+ * to this convention, auto-creation will fail.
+ * </p>
*/
-public abstract class AbstractContext implements Context {
+public abstract class BaseContext implements IdentifiableComponent, Iterable<BaseContext> {
/** Logger. */
- private final Logger log = LoggerFactory.getLogger(AbstractContext.class);
+ private final Logger log = LoggerFactory.getLogger(BaseContext.class);
/** The owning parent context. */
- private Context parent;
+ private BaseContext parent;
/** The subcontexts being managed. */
- private ClassIndexedSet<Context> subcontexts;
+ private ClassIndexedSet<BaseContext> subcontexts;
/** The context id. */
private String id;
@@ -56,8 +77,8 @@
private boolean autoCreateSubcontexts;
/** Constructor. Generates a random context id. */
- public AbstractContext() {
- subcontexts = new ClassIndexedSet<Context>();
+ public BaseContext() {
+ subcontexts = new ClassIndexedSet<BaseContext>();
creationTime = new DateTime();
setAutoCreateSubcontexts(false);
@@ -78,13 +99,21 @@
[... 403 lines stripped ...]
More information about the commits
mailing list