Author: chathura
Date: Wed Jan 16 01:45:29 2008
New Revision: 12335
Log:
Implementing pluggable URL handlers.
Modified:
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/URLHandlerManager.java
Modified:
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/URLHandlerManager.java
==============================================================================
---
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/URLHandlerManager.java
(original)
+++
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/URLHandlerManager.java
Wed Jan 16 01:45:29 2008
@@ -18,23 +18,56 @@
import org.wso2.registry.RegistryException;
import org.wso2.registry.Resource;
+import org.wso2.registry.RegistryConstants;
+import org.wso2.registry.config.RegistryContext;
import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.lang.reflect.Constructor;
public class URLHandlerManager {
private List urlHandlers = new ArrayList();
- public URLHandlerManager(DataSource dataSource) {
+ public URLHandlerManager(DataSource dataSource) throws RegistryException {
urlHandlers.add(new CommentURLHandler(dataSource));
urlHandlers.add(new CommentCollectionURLHandler(dataSource));
urlHandlers.add(new RatingURLHandler(dataSource));
urlHandlers.add(new RatingsCollectionURLHandler(dataSource));
urlHandlers.add(new TagURLHandler(dataSource));
+
+ RegistryContext registryContext = (RegistryContext) System.
+ getProperties().get(RegistryConstants.REGISTRY_CONTEXT);
+
+ if (registryContext != null) {
+
+ Iterator iHandlers = registryContext.getUrlHandlers().iterator();
+ while (iHandlers.hasNext()) {
+
+ String urlHandlerClassName = (String) iHandlers.next();
+
+ try {
+ Class urlHandlerClass = Class.forName(urlHandlerClassName);
+ Constructor constructor =
+ urlHandlerClass.getConstructor(new Class[]
{DataSource.class});
+ URLHandler urlHandler =
+ (URLHandler) constructor.newInstance(new Object[]
{dataSource});
+ urlHandlers.add(urlHandler);
+
+ } catch (ClassNotFoundException e) {
+ String msg = "Could not find the class: " +
+ urlHandlerClassName + " for the URL handler.";
+ throw new RegistryException(msg, e);
+
+ } catch (Exception e) {
+ String msg = "Failed to add run-time URL handlers.";
+ throw new RegistryException(msg, e);
+ }
+ }
+ }
}
public Resource handleURL(String url)
_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev