[Red5commits] [1609] API, server core and persistence documentation improvements.Minor code fixes, d
mklishin
luke at codegent.com
Wed Jan 24 11:06:21 EST 2007
API, server core and persistence documentation improvements.
Minor code fixes, documentation review.
Timestamp: 01/02/07 19:33:25 EST (3 weeks ago)
Change: 1609
Author: mklishin
Files (see diff or trac for details):
java/server/trunk/src/org/red5/io/flv/impl/FLV.java
java/server/trunk/src/org/red5/io/flv/impl/FLVReader.java
java/server/trunk/src/org/red5/io/flv/meta/MetaCue.java
java/server/trunk/src/org/red5/io/utils/IOUtils.java
java/server/trunk/src/org/red5/io/utils/XMLUtils.java
java/server/trunk/src/org/red5/server/Context.java
java/server/trunk/src/org/red5/server/GlobalScope.java
java/server/trunk/src/org/red5/server/MappingStrategy.java
java/server/trunk/src/org/red5/server/Server.java
java/server/trunk/src/org/red5/server/adapter/AbstractScopeAdapter.java
java/server/trunk/src/org/red5/server/adapter/ApplicationAdapter.java
java/server/trunk/src/org/red5/server/adapter/IApplication.java
java/server/trunk/src/org/red5/server/adapter/StatefulScopeWrappingAdapter.java
java/server/trunk/src/org/red5/server/api/IBandwidthConfigure.java
java/server/trunk/src/org/red5/server/api/IBasicScope.java
java/server/trunk/src/org/red5/server/api/IClient.java
java/server/trunk/src/org/red5/server/api/IClientRegistry.java
java/server/trunk/src/org/red5/server/api/IConnection.java
java/server/trunk/src/org/red5/server/api/IContext.java
java/server/trunk/src/org/red5/server/api/ICoreObject.java
java/server/trunk/src/org/red5/server/api/IFlowControllable.java
java/server/trunk/src/org/red5/server/api/IMappingStrategy.java
java/server/trunk/src/org/red5/server/api/IScope.java
java/server/trunk/src/org/red5/server/api/IScopeAware.java
java/server/trunk/src/org/red5/server/api/IScopeHandler.java
java/server/trunk/src/org/red5/server/api/IScopeResolver.java
java/server/trunk/src/org/red5/server/api/IScopeService.java
java/server/trunk/src/org/red5/server/api/IServer.java
java/server/trunk/src/org/red5/server/api/Red5.java
java/server/trunk/src/org/red5/server/api/cache/ICacheable.java
java/server/trunk/src/org/red5/server/api/event/IEventObservable.java
java/server/trunk/src/org/red5/server/api/persistence/IPersistable.java
java/server/trunk/src/org/red5/server/api/persistence/IPersistenceStore.java
java/server/trunk/src/org/red5/server/persistence/FilePersistence.java
java/server/trunk/src/org/red5/server/persistence/RamPersistence.java
java/server/trunk/src/org/red5/server/so/SharedObjectScope.java
Trac: http://mirror1.cvsdude.com/trac/osflash/red5/changeset/1609
Index: /java/server/trunk/src/org/red5/server/adapter/ApplicationAdapter.java
===================================================================
--- /java/server/trunk/src/org/red5/server/adapter/ApplicationAdapter.java (revision 1599)
+++ /java/server/trunk/src/org/red5/server/adapter/ApplicationAdapter.java (revision 1609)
@@ -20,28 +20,9 @@
*/
-import static org.red5.server.api.ScopeUtils.getScopeService;
-import static org.red5.server.api.ScopeUtils.isApp;
-import static org.red5.server.api.ScopeUtils.isRoom;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.red5.io.IStreamableFile;
-import org.red5.io.IStreamableFileFactory;
-import org.red5.io.IStreamableFileService;
-import org.red5.io.ITagReader;
-import org.red5.io.StreamableFileFactory;
-import org.red5.server.api.IClient;
-import org.red5.server.api.IConnection;
-import org.red5.server.api.IScope;
-import org.red5.server.api.Red5;
-import org.red5.server.api.ScopeUtils;
+import org.red5.io.*;
+import org.red5.server.api.*;
+import static org.red5.server.api.ScopeUtils.*;
import org.red5.server.api.scheduling.IScheduledJob;
import org.red5.server.api.scheduling.ISchedulingService;
@@ -49,13 +30,5 @@
import org.red5.server.api.so.ISharedObject;
import org.red5.server.api.so.ISharedObjectService;
-import org.red5.server.api.stream.IBroadcastStream;
-import org.red5.server.api.stream.IBroadcastStreamService;
-import org.red5.server.api.stream.IClientBroadcastStream;
-import org.red5.server.api.stream.IOnDemandStream;
-import org.red5.server.api.stream.IOnDemandStreamService;
-import org.red5.server.api.stream.IStreamAwareScopeHandler;
-import org.red5.server.api.stream.IStreamService;
-import org.red5.server.api.stream.ISubscriberStream;
-import org.red5.server.api.stream.ISubscriberStreamService;
+import org.red5.server.api.stream.*;
import org.red5.server.exception.ClientRejectedException;
import org.red5.server.scheduling.QuartzSchedulingService;
@@ -66,4 +39,8 @@
import org.red5.server.stream.StreamService;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
+
/**
* ApplicationAdapter class serves as a base class for your Red5 applications.
@@ -151,6 +128,8 @@
* This method throws {@link ClientRejectedException} exception.
*
- */
- protected void rejectClient() {
+ * @throws org.red5.server.exception.ClientRejectedException
+ * Thrown when client connection must be rejected by application logic
+ */
+ protected void rejectClient() throws ClientRejectedException {
throw new ClientRejectedException();
}
@@ -163,7 +142,10 @@
*
* @param reason
- * additional error message to return
- */
- protected void rejectClient(Object reason) {
+ * Additional error message to return to client-side Flex/Flash application
+ *
+ * @throws org.red5.server.exception.ClientRejectedException
+ * Thrown when client connection must be rejected by application logic
+ */
+ protected void rejectClient(Object reason) throws ClientRejectedException{
throw new ClientRejectedException(reason);
}
Index: /java/server/trunk/src/org/red5/server/adapter/StatefulScopeWrappingAdapter.java
===================================================================
--- /java/server/trunk/src/org/red5/server/adapter/StatefulScopeWrappingAdapter.java (revision 1597)
+++ /java/server/trunk/src/org/red5/server/adapter/StatefulScopeWrappingAdapter.java (revision 1609)
@@ -20,16 +20,11 @@
*/
+import org.red5.server.api.*;
+import org.springframework.core.io.Resource;
+
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
-
-import org.red5.server.api.IAttributeStore;
-import org.red5.server.api.IClient;
-import org.red5.server.api.IConnection;
-import org.red5.server.api.IContext;
-import org.red5.server.api.IScope;
-import org.red5.server.api.IScopeAware;
-import org.springframework.core.io.Resource;
/**
@@ -50,7 +45,7 @@
/**
- * Getter for property 'scope'.
- *
- * @return Value for property 'scope'.
+ * Getter for wrapped scope
+ *
+ * @return Wrapped scope
*/
public IScope getScope() {
@@ -227,5 +222,5 @@
* @param pattern Resource pattern
* @return Returns array of resources
- * @throws IOException IO exxception
+ * @throws IOException I/O exception
*/
public Resource[] getResources(String pattern) throws IOException {
Index: /java/server/trunk/src/org/red5/server/adapter/IApplication.java
===================================================================
--- /java/server/trunk/src/org/red5/server/adapter/IApplication.java (revision 1406)
+++ /java/server/trunk/src/org/red5/server/adapter/IApplication.java (revision 1609)
@@ -29,6 +29,5 @@
* an applications life.
*
- * @author unknown
- * @author daccattato
+ * @author Dominick Accattato
*
*/
Index: /java/server/trunk/src/org/red5/server/adapter/AbstractScopeAdapter.java
===================================================================
--- /java/server/trunk/src/org/red5/server/adapter/AbstractScopeAdapter.java (revision 1597)
+++ /java/server/trunk/src/org/red5/server/adapter/AbstractScopeAdapter.java (revision 1609)
@@ -20,30 +20,47 @@
*/
-import org.red5.server.api.IBasicScope;
-import org.red5.server.api.IClient;
-import org.red5.server.api.IConnection;
-import org.red5.server.api.IScope;
-import org.red5.server.api.IScopeHandler;
+import org.red5.server.api.*;
import org.red5.server.api.event.IEvent;
import org.red5.server.api.service.IServiceCall;
+/**
+ * Base scope handler implementation. Mean to be subclassed.
+ */
public abstract class AbstractScopeAdapter implements IScopeHandler {
-
+ /**
+ * Can start flag.
+ * <code>true</code> if scope is ready to be activated, <code>false</code> otherwise
+ */
private boolean canStart = true;
-
+ /**
+ * Can connect flag.
+ * <code>true</code> if connections to scope are allowed, <code>false</code> otherwise
+ */
private boolean canConnect = true;
-
+ /**
+ * Can join flag.
+ * <code>true</code> if scope may be joined by users, <code>false</code> otherwise
+ */
private boolean canJoin = true;
-
+ /**
+ * Can call service flag.
+ * <code>true</code> if remote service calls are allowed for the scope, <code>false</code> otherwise
+ */
private boolean canCallService = true;
-
+ /**
+ * Can add child scope flag. <code>true</code> if scope is allowed to add child scopes, <code>false</code> otherwise
+ */
private boolean canAddChildScope = true;
- private boolean canHandleEvent = true;
+ /**
+ * Can handle event flag.
+ * <code>true</code> if events handling is allowed, <code>false</code> otherwise
+ */
+ private boolean canHandleEvent = true;
/**
- * Setter for property 'canStart'.
+ * Setter for can start flag.
*
- * @param canStart Value to set for property 'canStart'.
+ * @param canStart <code>true</code> if scope is ready to be activated, <code>false</code> otherwise
*/
public void setCanStart(boolean canStart) {
@@ -52,7 +69,7 @@
/**
- * Setter for property 'canCallService'.
+ * Setter for can call service flag
*
- * @param canCallService Value to set for property 'canCallService'.
+ * @param canCallService <code>true</code> if remote service calls are allowed for the scope, <code>false</code> otherwise
*/
public void setCanCallService(boolean canCallService) {
@@ -61,7 +78,7 @@
/**
- * Setter for property 'canConnect'.
+ * Setter for can connect flag
*
- * @param canConnect Value to set for property 'canConnect'.
+ * @param canConnect <code>true</code> if connections to scope are allowed, <code>false</code> otherwise
*/
public void setCanConnect(boolean canConnect) {
@@ -70,7 +87,7 @@
/**
- * Setter for property 'join'.
+ * Setter for 'can join' flag
*
- * @param canJoin Value to set for property 'join'.
+ * @param canJoin <code>true</code> if scope may be joined by users, <code>false</code> otherwise
*/
public void setJoin(boolean canJoin) {
Index: /java/server/trunk/src/org/red5/server/so/SharedObjectScope.java
===================================================================
--- /java/server/trunk/src/org/red5/server/so/SharedObjectScope.java (revision 1601)
+++ /java/server/trunk/src/org/red5/server/so/SharedObjectScope.java (revision 1609)
@@ -43,5 +43,5 @@
public class SharedObjectScope extends BasicScope implements ISharedObject {
/**
- *
+ * Logger
*/
private Log log = LogFactory.getLog(SharedObjectScope.class.getName());
@@ -184,14 +184,18 @@
// Invoke method on registered handler
String serviceName, serviceMethod;
- int dotPos = handler.lastIndexOf('.');
- if (dotPos != -1) {
+ // Find out last dot position
+ int dotPos = handler.lastIndexOf('.');
+ // If any, split service name and service method name
+ if (dotPos != -1) {
serviceName = handler.substring(0, dotPos);
serviceMethod = handler.substring(dotPos + 1);
} else {
- serviceName = "";
+ // Otherwise only service method name is available
+ serviceName = "";
serviceMethod = handler;
}
- Object soHandler = getServiceHandler(serviceName);
+ // Get previously registred handler for service
+ Object soHandler = getServiceHandler(serviceName);
if (soHandler == null && hasParent()) {
// No custom handler, check for service defined in the scope's
@@ -208,16 +212,21 @@
}
- if (soHandler != null) {
- Object[] methodResult = ServiceUtils.findMethodWithExactParameters(
+ // Once handler is found, find matching method
+ if (soHandler != null) {
+ // With exact params...
+ Object[] methodResult = ServiceUtils.findMethodWithExactParameters(
soHandler, serviceMethod, arguments);
- if (methodResult.length == 0 || methodResult[0] == null) {
+ // Or at least with suitable list params
+ if (methodResult.length == 0 || methodResult[0] == null) {
methodResult = ServiceUtils.findMethodWithListParameters(
soHandler, serviceMethod, arguments);
}
- if (methodResult.length > 0 && methodResult[0] != null) {
+ // If method is found...
+ if (methodResult.length > 0 && methodResult[0] != null) {
Method method = (Method) methodResult[0];
Object[] params = (Object[]) methodResult[1];
- try {
+ //...try to invoke it and handle exceptions
+ try {
method.invoke(soHandler, params);
} catch (Exception err) {
@@ -237,9 +246,13 @@
@Override
public synchronized boolean removeAttribute(String name) {
- beginUpdate();
- boolean success = so.removeAttribute(name);
- endUpdate();
-
- if (success) {
+ // Begin update of shared object
+ beginUpdate();
+ // Try to remove attribute
+ boolean success = so.removeAttribute(name);
+ // End update of SO
+ endUpdate();
+
+ // Notify listeners on success and return true
+ if (success) {
for (ISharedObjectListener listener : serverListeners) {
listener.onSharedObjectDelete(this, name);
@@ -252,8 +265,12 @@
@Override
public synchronized void removeAttributes() {
- beginUpdate();
- so.removeAttributes();
- endUpdate();
-
+ // Begin update
+ beginUpdate();
+ // Remove all attributes
+ so.removeAttributes();
+ // End update
+ endUpdate();
+
+ // Notify listeners on atributes clear
for (ISharedObjectListener listener : serverListeners) {
listener.onSharedObjectClear(this);
Index: /java/server/trunk/src/org/red5/server/persistence/FilePersistence.java
===================================================================
--- /java/server/trunk/src/org/red5/server/persistence/FilePersistence.java (revision 1606)
+++ /java/server/trunk/src/org/red5/server/persistence/FilePersistence.java (revision 1609)
@@ -235,5 +235,5 @@
}
- result = (IPersistable) constructor.newInstance(new Object[] { in });
+ result = (IPersistable) constructor.newInstance(in);
} catch (NoSuchMethodException err) {
// No valid constructor found, use empty
Index: /java/server/trunk/src/org/red5/server/persistence/RamPersistence.java
===================================================================
--- /java/server/trunk/src/org/red5/server/persistence/RamPersistence.java (revision 1606)
+++ /java/server/trunk/src/org/red5/server/persistence/RamPersistence.java (revision 1609)
@@ -36,4 +36,5 @@
* @author The Red5 Project (red5 at osflash.org)
* @author Joachim Bauch (jojo at struktur.de)
+ * @author Michael Klishin (michael at novemberain.com)
*/
public class RamPersistence implements IPersistenceStore {
@@ -128,8 +129,10 @@
/** {@inheritDoc} */
public synchronized boolean save(IPersistable object) {
- objects.put(getObjectId(object), object);
- object.setPersistent(true);
- return true;
- }
+ final String key = getObjectId(object);
+
+ objects.put(key, object);
+ object.setPersistent(true);
+ return true;
+ }
/** {@inheritDoc} */
Index: /java/server/trunk/src/org/red5/server/GlobalScope.java
===================================================================
--- /java/server/trunk/src/org/red5/server/GlobalScope.java (revision 1599)
+++ /java/server/trunk/src/org/red5/server/GlobalScope.java (revision 1609)
@@ -26,5 +26,6 @@
/**
- * Global scope is a top level scope
+ * Global scope is a top level scope. Server instance is meant to be injected with Spring before
+ * initialization (otherwise NullPointerException is thrown).
*
* @see org.red5.server.api.IGlobalScope
Index: /java/server/trunk/src/org/red5/server/Server.java
===================================================================
--- /java/server/trunk/src/org/red5/server/Server.java (revision 1590)
+++ /java/server/trunk/src/org/red5/server/Server.java (revision 1609)
@@ -19,8 +19,4 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
import org.apache.commons.logging.Log;
@@ -32,4 +28,8 @@
import org.springframework.core.style.ToStringCreator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
/**
* Red5 server core class implementation.
@@ -61,6 +61,6 @@
/**
- *
- * @param applicationContext
+ * Setter for Spring application context
+ * @param applicationContext Application context
*/
public void setApplicationContext(ApplicationContext applicationContext) {
@@ -93,6 +93,8 @@
*/
public IGlobalScope lookupGlobal(String hostName, String contextPath) {
- String key = getKey(hostName, contextPath);
- while (contextPath.indexOf(SLASH) != -1) {
+ // Init mappings key
+ String key = getKey(hostName, contextPath);
+ // If context path contains slashes get complex key and look up for it in mappings
+ while (contextPath.indexOf(SLASH) != -1) {
key = getKey(hostName, contextPath);
if (log.isDebugEnabled()) {
@@ -102,12 +104,17 @@
return getGlobal(mapping.get(key));
}
- contextPath = contextPath.substring(0, contextPath
- .lastIndexOf(SLASH));
- }
- key = getKey(hostName, contextPath);
+ final int slashIndex = contextPath.lastIndexOf(SLASH);
+ // Context path is substring from the beginning and till last slash index
+ contextPath = contextPath.substring( 0, slashIndex );
+ }
+
+ // Get global scope key
+ key = getKey(hostName, contextPath);
if (log.isDebugEnabled()) {
log.debug("Check host and path: " + key);
}
- if (mapping.containsKey(key)) {
+
+ // Look up for global scope switching keys if still not found
+ if (mapping.containsKey(key)) {
return getGlobal(mapping.get(key));
}
Index: /java/server/trunk/src/org/red5/server/MappingStrategy.java
===================================================================
--- /java/server/trunk/src/org/red5/server/MappingStrategy.java (revision 1590)
+++ /java/server/trunk/src/org/red5/server/MappingStrategy.java (revision 1609)
@@ -23,5 +23,7 @@
/**
- *
+ * Basic mapping strategy implementation. This one uses slash as filesystem path separator,
+ * '.service' postfix for services naming, '.handler' for handlers naming and 'default' string as
+ * default application name.
*/
public class MappingStrategy implements IMappingStrategy {
@@ -48,5 +50,5 @@
/**
- * Setter for defaultApp
+ * Setter for default application name ('default' by default).
* @param defaultApp Default application
*/
@@ -58,5 +60,5 @@
* Resolves resource prefix from path. Default application used as root when path is specified
* @param path Path
- * @return Resource prefix
+ * @return Resource prefix according to this naming strategy
*/
public String mapResourcePrefix(String path) {
@@ -71,5 +73,5 @@
* Resolves scope handler name for path& Default application used as root when path is specified
* @param path Path
- * @return
+ * @return Scope handler name according to this naming strategy
*/
public String mapScopeHandlerName(String path) {
@@ -84,5 +86,5 @@
* Resolves service filename name from name
* @param name Service name
- * @return Service filename
+ * @return Service filename according to this naming strategy
*/
public String mapServiceName(String name) {
Index: /java/server/trunk/src/org/red5/server/Context.java
===================================================================
--- /java/server/trunk/src/org/red5/server/Context.java (revision 1590)
+++ /java/server/trunk/src/org/red5/server/Context.java (revision 1609)
@@ -20,12 +20,5 @@
*/
-import java.io.IOException;
-
-import org.red5.server.api.IClientRegistry;
-import org.red5.server.api.IContext;
-import org.red5.server.api.IMappingStrategy;
-import org.red5.server.api.IScope;
-import org.red5.server.api.IScopeHandler;
-import org.red5.server.api.IScopeResolver;
+import org.red5.server.api.*;
import org.red5.server.api.persistence.IPersistenceStore;
import org.red5.server.api.service.IServiceInvoker;
@@ -39,4 +32,11 @@
import org.springframework.core.io.Resource;
+import java.io.IOException;
+
+/**
+ * {@inheritDoc}
+ *
+ * <p>This is basic context implementation used by Red5.</p>
+ */
public class Context implements IContext, ApplicationContextAware {
/**
@@ -136,5 +136,5 @@
/**
* Setter for service invoker
- * @param serviceInvoker
+ * @param serviceInvoker Service invoker object
*/
public void setServiceInvoker(IServiceInvoker serviceInvoker) {
@@ -243,6 +243,5 @@
public IScopeHandler lookupScopeHandler(String contextPath) {
// Get target scope handler name
- String scopeHandlerName = getMappingStrategy().mapScopeHandlerName(
- contextPath);
+ String scopeHandlerName = getMappingStrategy().mapScopeHandlerName(contextPath);
// Get bean from bean factory
Object bean = applicationContext.getBean(scopeHandlerName);
@@ -255,5 +254,7 @@
/**
- * Return mapping stategy
+ * Return mapping strategy used by this context. Mapping strategy define
+ * naming rules (prefixes, postfixes, default application name, etc) for all named objects
+ * in context.
* @return Mapping strategy
*/
Index: /java/server/trunk/src/org/red5/server/api/Red5.java
===================================================================
--- /java/server/trunk/src/org/red5/server/api/Red5.java (revision 1597)
+++ /java/server/trunk/src/org/red5/server/api/Red5.java (revision 1609)
@@ -44,5 +44,5 @@
/**
* Current connection thread. Each connection of Red5 application runs in a
- * separate thread. This method returns thread object associated with
+ * separate thread. This is thread object associated with
* current connection.
*/
@@ -52,5 +52,5 @@
* Connection local to the current thread
*/
- public IConnection conn = null;
+ public IConnection conn;
/**
@@ -73,7 +73,7 @@
/**
- * Setter for property 'connectionLocal'.
+ * Setter for connection
*
- * @param connection Value to set for property 'connectionLocal'.
+ * @param connection Thread local connection
*/
public static void setConnectionLocal(IConnection connection) {
@@ -87,5 +87,5 @@
* provides you with it.
*
- * @return connection object
+ * @return Connection object
*/
public static IConnection getConnectionLocal() {
@@ -96,5 +96,5 @@
* Get the connection object
*
- * @return connection object
+ * @return Connection object
*/
public IConnection getConnection() {
@@ -105,5 +105,5 @@
* Get the scope
*
- * @return scope object
+ * @return Scope object
*/
public IScope getScope() {
@@ -114,5 +114,5 @@
* Get the client
*
- * @return client object
+ * @return Client object
*/
public IClient getClient() {
@@ -123,5 +123,5 @@
* Get the spring application context
*
- * @return application context
+ * @return Application context
*/
public IContext getContext() {
Index: /java/server/trunk/src/org/red5/server/api/event/IEventObservable.java
===================================================================
--- /java/server/trunk/src/org/red5/server/api/event/IEventObservable.java (revision 1597)
+++ /java/server/trunk/src/org/red5/server/api/event/IEventObservable.java (revision 1609)
@@ -28,13 +28,20 @@
*/
public interface IEventObservable {
-
+ /**
+ * Add event listener to this observable
+ * @param listener Event listener
+ */
public void addEventListener(IEventListener listener);
- public void removeEventListener(IEventListener listener);
+ /**
+ * Remove event listener from this observable
+ * @param listener Event listener
+ */
+ public void removeEventListener(IEventListener listener);
/**
- * Getter for property 'eventListeners'.
+ * Iterator for event listeners
*
- * @return Value for property 'eventListeners'.
+ * @return Event listeners iterator
*/
public Iterator<IEventListener> getEventListeners();
Index: /java/server/trunk/src/org/red5/server/api/IScopeAware.java
===================================================================
--- /java/server/trunk/src/org/red5/server/api/IScopeAware.java (revision 1406)
+++ /java/server/trunk/src/org/red5/server/api/IScopeAware.java (revision 1609)
@@ -34,5 +34,5 @@
*
* @param scope
- * scope for this object
+ * Scope for this object
*/
public void setScope(IScope scope);
Index: /java/server/trunk/src/org/red5/server/api/IScopeService.java
===================================================================
--- /java/server/trunk/src/org/red5/server/api/IScopeService.java (revision 1538)
+++ /java/server/trunk/src/org/red5/server/api/IScopeService.java (revision 1609)
@@ -21,6 +21,6 @@
/**
- * Base interface for all scope services. Used by the ScopeUtils to lookup
- * services defined in beans. A scope service usually can perform various
+ * Base marker interface for all scope services. Used by the ScopeUtils to lookup
+ * services defined as beans in Spring application context. A scope service usually can perform various
* tasks on a scope like managing shared objects, streams, etc.
*
Index: /java/server/trunk/src/org/red5/server/api/IScopeResolver.java
===================================================================
--- /java/server/trunk/src/org/red5/server/api/IScopeResolver.java (revision 1406)
+++ /java/server/trunk/src/org/red5/server/api/IScopeResolver.java (revision
Note:
Diffs are chopped if more than 25k.
This is to get past the limit on the mailing list.
More information about the Red5commits
mailing list