User: boissier
Date: 01/12/05 14:29:59
Modified: src/main/org/jboss/deployment/scope Scope.java
Log:
Added some Javadoc
Revision Changes Path
1.6 +79 -33 jboss/src/main/org/jboss/deployment/scope/Scope.java
Index: Scope.java
===================================================================
RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/deployment/scope/Scope.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Scope.java 2001/09/11 18:34:59 1.5
+++ Scope.java 2001/12/05 22:29:59 1.6
@@ -7,10 +7,12 @@
package org.jboss.deployment.scope;
-import java.util.Set;
-import java.util.Map;
-import java.util.Iterator;
import java.net.URL;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
import org.jboss.logging.Logger;
@@ -18,36 +20,46 @@
* Scope is a manager/mediator that connects several ScopedURLClassLoaders
* with each other and computes their dependencies. The locks used in the scope
* implementation are quite coarse-grained, maybe thread-unfriendly, but the
- * rationale is that classloading a) happens not too often (hopefully) in the
- * lifecycle of an application b) will dispatch only in special cases (where
applications depliberately
- * share classes) to this scope class and c) is optimized by caching the locations.
+ * rationale is that classloading:
+ * a) happens not too often (hopefully) in the lifecycle of an application
+ * b) will dispatch only in special cases (where applications depliberately
+ * share classes) to this scope class
+ * c) is optimized by caching the locations.
* @author cgjung
- * @version 0.8
+ * @version $Revision: 1.6 $
*/
public class Scope {
/** keeps a map of class loaders that participate in this scope */
- final protected Map classLoaders=new java.util.HashMap();
+ final protected Map classLoaders=new HashMap();
/** keeps a hashtable of dependencies between the classLoaders */
- final protected Map dependencies=new java.util.HashMap();
+ final protected Map dependencies=new HashMap();
/** keeps a hashtable of class appearances */
- final protected Map classLocations=new java.util.HashMap();
+ final protected Map classLocations=new HashMap();
/** keeps a hashtable of resource appearances */
- final protected Map resourceLocations=new java.util.HashMap();
+ final protected Map resourceLocations=new HashMap();
/** keeps a reference to a logger which which to interact */
final protected Logger log;
- /** Creates new Scope */
+ /**
+ * Creates new Scope
+ * @param log - The logger this new scope will interact with.
+ */
public Scope(Logger log) {
this.log=log;
}
- /** registers a classloader in this scope */
+ /**
+ * Registers a classloader in this scope.
+ *
+ * @param loader - The classloader to register.
+ * @return The newly registered classloader.
+ */
public ScopedURLClassLoader registerClassLoader(ScopedURLClassLoader loader) {
// must synchronize not to collide with deregistrations and
// dependency logging
@@ -55,11 +67,14 @@
return (ScopedURLClassLoader)
classLoaders.put(loader.deployment.getLocalUrl(),loader);
}
}
-
- /** deRegisters a classloader in this scope
- * removes all cached data related to this classloader
- */
+ /**
+ * Deregisters a classloader in this scope.
+ * Removes all cached data related to this classloader.
+ *
+ * @param loader - The classloader to deregister.
+ * @return The newly deregistered classloader.
+ */
public ScopedURLClassLoader deRegisterClassLoader(ScopedURLClassLoader loader) {
// synchronized not to collide with registrations
// and dependency logging
@@ -75,9 +90,13 @@
}
}
- /** helper method that will clear all entries from a map
- * with a dedicated target value.
- */
+ /**
+ * Helper method that will clear all entries from a map
+ * with a dedicated target value.
+ *
+ * @param map - The map we want to clear entries from.
+ * @param value - The object we want to remove from that map.
+ */
protected void clearByValue(Map map, Object value) {
Iterator values=map.values().iterator();
while(values.hasNext()) {
@@ -87,20 +106,29 @@
}
}
- /** returns the classLoaders that a particular classLoader is
- * dependent on. Should be called after locking classLoaders
- */
+ /**
+ * Returns the classLoaders that a particular classLoader is
+ * dependent on. Should be called after locking classLoaders.
+ *
+ * @param loader - The classloader we want to find dependencies of.
+ * @return The set of classloaders this classloader is dependent on.
+ */
public Set getDependentClassLoaders(ScopedURLClassLoader loader) {
Set result=(Set) dependencies.get(loader);
if(result==null)
- result=new java.util.HashSet();
+ result=new HashSet();
return result;
}
-
- /** adds a dependency between two classloaders. this can be called
- * from within application threads that require resource loading.
- * Should be called after locking classLoaders
- */
+
+ /**
+ * Adds a dependency between two classloaders. This can be called
+ * from within application threads that require resource loading.
+ * Should be called after locking classLoaders.
+ *
+ * @param source - The classloader we are adding dependency from.
+ * @param target - The classloader we are adding dependency to.
+ * @return true if the operation was successful, false otherwise.
+ */
protected boolean addDependency(ScopedURLClassLoader source,
ScopedURLClassLoader target) {
// no rescursions necessary (but not volatile for the code)
if(source !=null && target!=null && !source.equals(target)) {
@@ -108,7 +136,7 @@
Set deps=(Set) dependencies.get(target);
if(deps==null) {
- deps=new java.util.HashSet();
+ deps=new HashSet();
dependencies.put(target,deps);
}
@@ -120,7 +148,17 @@
return false;
}
- /** loads a class on behalf of a given classloader */
+ /**
+ * Loads a class on behalf of a given classloader.
+ *
+ * @param className - The name of the class we are trying to load.
+ * @param resolve - Whether or not the class should be resolved.
+ * @param source - The classloader we want to load the class with.
+ *
+ * @throws ClassNotFoundException - If the class cannot be loaded
+ * properly.
+ * @return The new class that has been loaded.
+ */
public Class loadClass(String className, boolean resolve, ScopedURLClassLoader
source)
throws ClassNotFoundException {
@@ -165,8 +203,16 @@
} // sync
}
- /** gets a URL on behalf of a given classloader which may be null
- * in case that we do not check dependencies */
+ /**
+ * Gets a URL on behalf of a given classloader which may be null
+ * in case that we do not check dependencies.
+ *
+ * @param name - The name of the target ScopedURLClassLoader.
+ * @param source - The source ScopedURLClassLoader.
+ * @return The name of the target URL where the resource was loaded
+ * or null if no loader in the scope was able to load the
+ * resource.
+ */
public URL getResource(String name, ScopedURLClassLoader source) {
// short look into the resource location cache, is synchronized in
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development