[gatein-commits] gatein SVN: r4950 - in portal/branches/navcontroller: component/web/controller/src/main/java/org/exoplatform/web/controller and 5 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Nov 4 22:54:24 EDT 2010
Author: julien_viet
Date: 2010-11-04 22:54:23 -0400 (Thu, 04 Nov 2010)
New Revision: 4950
Added:
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestQualifiedName.java
Modified:
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/WebAppController.java
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/QualifiedName.java
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestBuildRoute.java
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestDescriptorBuilder.java
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestHierarchy.java
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestLegacyPortal.java
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestMatch.java
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestPortalConfiguration.java
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestRender.java
portal/branches/navcontroller/web/portal/src/main/webapp/WEB-INF/conf/default-router.xml
portal/branches/navcontroller/webui/framework/src/main/java/org/exoplatform/webui/url/ComponentLocator.java
portal/branches/navcontroller/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestHandler.java
portal/branches/navcontroller/webui/portal/src/main/java/org/exoplatform/portal/url/navigation/NavigationLocator.java
Log:
fine tune QualifiedName class
Modified: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/WebAppController.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/WebAppController.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/WebAppController.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -57,7 +57,7 @@
{
/** . */
- public static final QualifiedName HANDLER_PARAM = new QualifiedName("gtn", "handler");
+ public static final QualifiedName HANDLER_PARAM = QualifiedName.create("gtn", "handler");
/** . */
protected static Logger log = LoggerFactory.getLogger(WebAppController.class);
Modified: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/QualifiedName.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/QualifiedName.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/QualifiedName.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -19,77 +19,133 @@
package org.exoplatform.web.controller;
+import org.jboss.util.NullArgumentException;
+
/**
- * A qualified name that is a qualifier and a name. It can be seen as a simplified version of an XML QName
- * that retains only the prefix (qualifier) and the local name (name) and leaves out the namespace.
+ * <p>A qualified name that is a qualifier and a name. It can be seen as a simplified version of an XML QName
+ * that retains only the prefix (qualifier) and the local name (name) and leaves out the namespace.</p>
*
+ * <p>Qualified names have a string representation that is equals to the concatenation of the qualifier
+ * and name separated by a colon (:) character. When the </p>
+ *
* @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
* @version $Revision$
*/
public class QualifiedName
{
- public static QualifiedName parse(String qname)
+ /**
+ * Parse the string representation of a qname and returns a qualified name.
+ *
+ * @param qname the qname to parse
+ * @return the corresponding qualified name
+ * @throws NullArgumentException if the qname argument is null
+ * @throws IllegalArgumentException if the qname argument contains more than one colon character
+ */
+ public static QualifiedName parse(String qname) throws NullArgumentException, IllegalArgumentException
{
+ if (qname == null)
+ {
+ throw new NullPointerException("No null argument accepted");
+ }
if (qname.length() > 0)
{
int index = qname.indexOf(':');
if (index > -1)
{
- return new QualifiedName(qname.substring(0, index), qname.substring(index + 1));
+ return create(qname.substring(0, index), qname.substring(index + 1));
}
}
- return new QualifiedName(qname);
+ return create(qname);
}
- /** . */
- private final String qualifier;
-
- /** . */
- private final String name;
-
/**
- * Creates a qualified name with an empty string qualifier.
+ * Creates a qualified name.
*
+ * @param qualifier the qualifier
* @param name the name
+ * @return the qualified name
+ * @throws NullPointerException if any argument is null
+ * @throws IllegalArgumentException if any argument contains a colon character
*/
- public QualifiedName(String name)
+ public static QualifiedName create(String qualifier, String name) throws NullPointerException, IllegalArgumentException
{
- this("", name);
+ return new QualifiedName(qualifier, name);
}
/**
- * Creates a qualified name.
+ * Creates a qualified name with an empty string qualifier.
*
- * @param qualifier the qualifier
* @param name the name
+ * @return the qualified name
+ * @throws NullPointerException if any argument is null
+ * @throws IllegalArgumentException if any argument contains a colon character
*/
- public QualifiedName(String qualifier, String name)
+ public static QualifiedName create(String name) throws NullPointerException, IllegalArgumentException
{
+ return new QualifiedName(name);
+ }
+
+ /** The qualifier. */
+ private final String qualifier;
+
+ /** The name. */
+ private final String name;
+
+ private QualifiedName(String name) throws NullPointerException, IllegalArgumentException
+ {
+ this("", name);
+ }
+
+ private QualifiedName(String qualifier, String name) throws NullPointerException, IllegalArgumentException
+ {
if (qualifier == null)
{
throw new NullPointerException("No null prefix accepted");
}
+ if (qualifier.indexOf(':') != -1)
+ {
+ throw new IllegalArgumentException("The name '" + qualifier + "' must not contain a colon character");
+ }
if (name == null)
{
throw new NullPointerException("No null prefix accepted");
}
+ if (name.indexOf(':') != -1)
+ {
+ throw new IllegalArgumentException("The name '" + name + "' must not contain a colon character");
+ }
//
this.qualifier = qualifier;
this.name = name;
}
+ /**
+ * Returns the qualifier.
+ *
+ * @return the qualifier
+ */
public String getQualifier()
{
return qualifier;
}
+ /**
+ * Returns the name.
+ *
+ * @return the name
+ */
public String getName()
{
return name;
}
+ /**
+ * Returns the string representation.
+ *
+ * @return the string representation
+ */
public String getValue()
{
if (qualifier.isEmpty())
Modified: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestBuildRoute.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestBuildRoute.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestBuildRoute.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -24,8 +24,6 @@
import org.exoplatform.web.controller.metadata.RouteDescriptor;
import org.exoplatform.web.controller.metadata.RouterDescriptor;
-import java.util.Collections;
-
/**
* @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
* @version $Revision$
@@ -75,7 +73,7 @@
PatternRoute patternRoute = router.root.getPattern(0);
assertEquals("^([^/]+)", patternRoute.pattern.toString());
assertEquals(1, patternRoute.params.size());
- assertEquals(new QualifiedName("a"), patternRoute.params.get(0).name);
+ assertEquals(QualifiedName.create("a"), patternRoute.params.get(0).name);
assertEquals("^[^/]+$", patternRoute.params.get(0).pattern.toString());
assertEquals(EncodingMode.DEFAULT_FORM, patternRoute.params.get(0).encodingMode);
assertEquals(2, patternRoute.chunks.size());
@@ -99,7 +97,7 @@
PatternRoute patternRoute = router.root.getPattern(0);
assertEquals("^([^/]+)", patternRoute.pattern.toString());
assertEquals(1, patternRoute.params.size());
- assertEquals(new QualifiedName("q", "a"), patternRoute.params.get(0).name);
+ assertEquals(QualifiedName.create("q", "a"), patternRoute.params.get(0).name);
assertEquals("^[^/]+$", patternRoute.params.get(0).pattern.toString());
assertEquals(EncodingMode.DEFAULT_FORM, patternRoute.params.get(0).encodingMode);
assertEquals(2, patternRoute.chunks.size());
@@ -123,7 +121,7 @@
PatternRoute patternRoute = router.root.getPattern(0);
assertEquals("^(.*)", patternRoute.pattern.toString());
assertEquals(1, patternRoute.params.size());
- assertEquals(new QualifiedName("a"), patternRoute.params.get(0).name);
+ assertEquals(QualifiedName.create("a"), patternRoute.params.get(0).name);
assertEquals("^.*$", patternRoute.params.get(0).pattern.toString());
assertEquals(EncodingMode.DEFAULT_FORM, patternRoute.params.get(0).encodingMode);
assertEquals(2, patternRoute.chunks.size());
Modified: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestDescriptorBuilder.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestDescriptorBuilder.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestDescriptorBuilder.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -86,11 +86,11 @@
assertTrue(i.hasNext());
RouteDescriptor route5 = i.next();
assertEquals("/a", route5.getPath());
- assertEquals(Collections.singletonMap(new QualifiedName("a"), "a_value"), route5.getParams());
+ assertEquals(Collections.singletonMap(QualifiedName.create("a"), "a_value"), route5.getParams());
assertEquals(1, route5.getChildren().size());
RouteDescriptor route5_1 = route5.getChildren().get(0);
assertEquals("/b", route5_1.getPath());
- assertEquals(Collections.singletonMap(new QualifiedName("b"), "b_value"), route5_1.getParams());
+ assertEquals(Collections.singletonMap(QualifiedName.create("b"), "b_value"), route5_1.getParams());
//
assertTrue(i.hasNext());
Modified: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestHierarchy.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestHierarchy.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestHierarchy.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -45,12 +45,12 @@
Router router = new Router(new RouterDescriptor().addRoute(descriptor));
//
- assertEquals(Collections.singletonMap(new QualifiedName("foo"), "bar"), router.route("/a"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("foo"), "bar"), router.route("/a"));
//
Map<QualifiedName, String> expected = new HashMap<QualifiedName, String>();
- expected.put(new QualifiedName("foo"), "bar");
- expected.put(new QualifiedName("juu"), "daa");
+ expected.put(QualifiedName.create("foo"), "bar");
+ expected.put(QualifiedName.create("juu"), "daa");
assertEquals(expected, router.route("/a/b"));
}
}
Modified: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestLegacyPortal.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestLegacyPortal.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestLegacyPortal.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -63,11 +63,11 @@
public void testPrivateClassicComponent() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "handler"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "access"), "private");
- expectedParameters.put(new QualifiedName("gtn", "path"), "");
- expectedParameters.put(new QualifiedName("gtn", "componentid"), "foo");
+ expectedParameters.put(QualifiedName.create("gtn", "handler"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "access"), "private");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "");
+ expectedParameters.put(QualifiedName.create("gtn", "componentid"), "foo");
//
assertEquals(expectedParameters, router.route("/private/classic", Collections.singletonMap("portal:componentId", new String[]{"foo"})));
@@ -77,10 +77,10 @@
public void testPrivateClassic() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "handler"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "access"), "private");
- expectedParameters.put(new QualifiedName("gtn", "path"), "");
+ expectedParameters.put(QualifiedName.create("gtn", "handler"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "access"), "private");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "");
//
assertEquals(expectedParameters, router.route("/private/classic"));
@@ -90,10 +90,10 @@
public void testPrivateClassicSlash() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "handler"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "access"), "private");
- expectedParameters.put(new QualifiedName("gtn", "path"), "/");
+ expectedParameters.put(QualifiedName.create("gtn", "handler"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "access"), "private");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "/");
//
assertEquals(expectedParameters, router.route("/private/classic/"));
@@ -103,11 +103,11 @@
public void testPrivateClassicSlashComponent() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "handler"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "access"), "private");
- expectedParameters.put(new QualifiedName("gtn", "path"), "/");
- expectedParameters.put(new QualifiedName("gtn", "componentid"), "foo");
+ expectedParameters.put(QualifiedName.create("gtn", "handler"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "access"), "private");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "/");
+ expectedParameters.put(QualifiedName.create("gtn", "componentid"), "foo");
//
assertEquals(expectedParameters, router.route("/private/classic/", Collections.singletonMap("portal:componentId", new String[]{"foo"})));
@@ -117,10 +117,10 @@
public void testPrivateClassicHome() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "handler"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "access"), "private");
- expectedParameters.put(new QualifiedName("gtn", "path"), "/home");
+ expectedParameters.put(QualifiedName.create("gtn", "handler"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "access"), "private");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "/home");
//
assertEquals(expectedParameters, router.route("/private/classic/home"));
@@ -130,11 +130,11 @@
public void testPrivateClassicHomeComponent() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "handler"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "access"), "private");
- expectedParameters.put(new QualifiedName("gtn", "path"), "/home");
- expectedParameters.put(new QualifiedName("gtn", "componentid"), "foo");
+ expectedParameters.put(QualifiedName.create("gtn", "handler"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "access"), "private");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "/home");
+ expectedParameters.put(QualifiedName.create("gtn", "componentid"), "foo");
//
assertEquals(expectedParameters, router.route("/private/classic/home", Collections.singletonMap("portal:componentId", new String[]{"foo"})));
Modified: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestMatch.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestMatch.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestMatch.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -90,7 +90,7 @@
Router router = new Router(routerMD);
//
- assertEquals(Collections.singletonMap(new QualifiedName("p"), "a"), router.route("/a"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("p"), "a"), router.route("/a"));
}
public void testParameterPropagationToDescendants() throws Exception
@@ -101,7 +101,7 @@
Router router = new Router(routerMD);
//
- assertEquals(Collections.singletonMap(new QualifiedName("p"), "a"), router.route("/a"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("p"), "a"), router.route("/a"));
}
public void testWildcardPattern() throws Exception
@@ -111,10 +111,10 @@
Router router = new Router(routerMD);
//
- assertEquals(Collections.singletonMap(new QualifiedName("p"), ""), router.route("/"));
- assertEquals(Collections.singletonMap(new QualifiedName("p"), "a"), router.route("/a"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("p"), ""), router.route("/"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("p"), "a"), router.route("/a"));
assertNull(router.route("a"));
- assertEquals(Collections.singletonMap(new QualifiedName("p"), "a/b"), router.route("/a/b"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("p"), "a/b"), router.route("/a/b"));
}
public void testDefaultForm() throws Exception
@@ -124,7 +124,7 @@
Router router = new Router(routerMD);
//
- assertEquals(Collections.singletonMap(new QualifiedName("p"), "/"), router.route("/~"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("p"), "/"), router.route("/~"));
}
public void testSimplePattern() throws Exception
@@ -134,7 +134,7 @@
Router router = new Router(routerMD);
//
- assertEquals(Collections.singletonMap(new QualifiedName("p"), "a"), router.route("/a"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("p"), "a"), router.route("/a"));
assertNull(router.route("a"));
assertNull(router.route("/ab"));
assertNull(router.route("ab"));
@@ -151,7 +151,7 @@
assertNull(router.route("a"));
assertEquals(Collections.<QualifiedName, String>emptyMap(), router.route("/a"));
assertEquals(Collections.<QualifiedName, String>emptyMap(), router.route("/a/"));
- assertEquals(Collections.singletonMap(new QualifiedName("p"), "a"), router.route("/a/b"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("p"), "a"), router.route("/a/b"));
}
public void testTwoRules1() throws Exception
@@ -162,7 +162,7 @@
Router router = new Router(routerMD);
//
- assertEquals(Collections.singletonMap(new QualifiedName("b"), "b"), router.route("/a"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("b"), "b"), router.route("/a"));
assertEquals(Collections.<QualifiedName, String>emptyMap(), router.route("/a/b"));
}
@@ -175,9 +175,9 @@
//
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("a"), "a");
- expectedParameters.put(new QualifiedName("b"), "b");
+ expectedParameters.put(QualifiedName.create("a"), "a");
+ expectedParameters.put(QualifiedName.create("b"), "b");
assertEquals(expectedParameters, router.route("/a"));
- assertEquals(Collections.singletonMap(new QualifiedName("a"), "a"), router.route("/a/b"));
+ assertEquals(Collections.singletonMap(QualifiedName.create("a"), "a"), router.route("/a/b"));
}
}
Modified: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestPortalConfiguration.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestPortalConfiguration.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestPortalConfiguration.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -44,27 +44,27 @@
//
RouteDescriptor portalRouteMD = new RouteDescriptor("/private/{gtn:sitetype}/{gtn:sitename}{gtn:path}");
- portalRouteMD.addParam(new QualifiedName("gtn", "controller"), "site");
- portalRouteMD.addRequestParam(new QualifiedName("gtn", "componentid"), "portal:componentId", null, false);
- portalRouteMD.addPathParam(new QualifiedName("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
+ portalRouteMD.addParam(QualifiedName.create("gtn", "controller"), "site");
+ portalRouteMD.addRequestParam(QualifiedName.create("gtn", "componentid"), "portal:componentId", null, false);
+ portalRouteMD.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
routerMD.addRoute(portalRouteMD);
//
RouteDescriptor portalRouteMD2 = new RouteDescriptor("/private/{gtn:sitetype}/{gtn:sitename}{gtn:path}");
- portalRouteMD2.addParam(new QualifiedName("gtn", "controller"), "site");
- portalRouteMD2.addPathParam(new QualifiedName("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
+ portalRouteMD2.addParam(QualifiedName.create("gtn", "controller"), "site");
+ portalRouteMD2.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
routerMD.addRoute(portalRouteMD2);
//
RouteDescriptor groupRouteMD = new RouteDescriptor("/groups/{gtn:sitetype}/{gtn:sitename}{gtn:path}");
- groupRouteMD.addParam(new QualifiedName("gtn", "controller"), "site");
- groupRouteMD.addPathParam(new QualifiedName("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
+ groupRouteMD.addParam(QualifiedName.create("gtn", "controller"), "site");
+ groupRouteMD.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
routerMD.addRoute(groupRouteMD);
//
RouteDescriptor userRouteMD = new RouteDescriptor("/users/{gtn:sitetype}/{gtn:sitename}{gtn:path}");
- userRouteMD.addParam(new QualifiedName("gtn", "controller"), "site");
- userRouteMD.addPathParam(new QualifiedName("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
+ userRouteMD.addParam(QualifiedName.create("gtn", "controller"), "site");
+ userRouteMD.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
routerMD.addRoute(userRouteMD);
//
@@ -74,11 +74,11 @@
public void testComponent() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "controller"), "site");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "sitetype"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "path"), "/");
- expectedParameters.put(new QualifiedName("gtn", "componentid"), "foo");
+ expectedParameters.put(QualifiedName.create("gtn", "controller"), "site");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "sitetype"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "/");
+ expectedParameters.put(QualifiedName.create("gtn", "componentid"), "foo");
//
assertEquals(expectedParameters, router.route("/private/portal/classic/", Collections.singletonMap("portal:componentId", new String[]{"foo"})));
@@ -88,10 +88,10 @@
public void testPrivateClassic() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "controller"), "site");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "sitetype"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "path"), "");
+ expectedParameters.put(QualifiedName.create("gtn", "controller"), "site");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "sitetype"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "");
//
assertEquals(expectedParameters, router.route("/private/portal/classic"));
@@ -101,10 +101,10 @@
public void testPrivateClassicSlash() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "controller"), "site");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "sitetype"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "path"), "/");
+ expectedParameters.put(QualifiedName.create("gtn", "controller"), "site");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "sitetype"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "/");
//
assertEquals(expectedParameters, router.route("/private/portal/classic/"));
@@ -114,10 +114,10 @@
public void testPrivateClassicHome() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "controller"), "site");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "classic");
- expectedParameters.put(new QualifiedName("gtn", "sitetype"), "portal");
- expectedParameters.put(new QualifiedName("gtn", "path"), "/home");
+ expectedParameters.put(QualifiedName.create("gtn", "controller"), "site");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "classic");
+ expectedParameters.put(QualifiedName.create("gtn", "sitetype"), "portal");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "/home");
//
assertEquals(expectedParameters, router.route("/private/portal/classic/home"));
@@ -127,20 +127,20 @@
public void testSiteType() throws Exception
{
Map<QualifiedName, String> expectedParameters = new HashMap<QualifiedName, String>();
- expectedParameters.put(new QualifiedName("gtn", "controller"), "site");
- expectedParameters.put(new QualifiedName("gtn", "sitetype"), "group");
- expectedParameters.put(new QualifiedName("gtn", "sitename"), "platform_administrator");
- expectedParameters.put(new QualifiedName("gtn", "path"), "/administration/registry");
+ expectedParameters.put(QualifiedName.create("gtn", "controller"), "site");
+ expectedParameters.put(QualifiedName.create("gtn", "sitetype"), "group");
+ expectedParameters.put(QualifiedName.create("gtn", "sitename"), "platform_administrator");
+ expectedParameters.put(QualifiedName.create("gtn", "path"), "/administration/registry");
//
assertEquals(expectedParameters, router.route("/private/group/platform_administrator/administration/registry"));
assertEquals("/private/group/platform_administrator/administration/registry", router.render(expectedParameters));
Map<QualifiedName, String> expectedParameters1 = new HashMap<QualifiedName, String>();
- expectedParameters1.put(new QualifiedName("gtn", "controller"), "site");
- expectedParameters1.put(new QualifiedName("gtn", "sitetype"), "user");
- expectedParameters1.put(new QualifiedName("gtn", "sitename"), "root");
- expectedParameters1.put(new QualifiedName("gtn", "path"), "/tab_0");
+ expectedParameters1.put(QualifiedName.create("gtn", "controller"), "site");
+ expectedParameters1.put(QualifiedName.create("gtn", "sitetype"), "user");
+ expectedParameters1.put(QualifiedName.create("gtn", "sitename"), "root");
+ expectedParameters1.put(QualifiedName.create("gtn", "path"), "/tab_0");
//
assertEquals(expectedParameters1, router.route("/private/user/root/tab_0"));
Added: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestQualifiedName.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestQualifiedName.java (rev 0)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestQualifiedName.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2010 eXo Platform SAS.
+ *
+ * This 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 (at your option) any later version.
+ *
+ * This software 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.web.controller.router;
+
+import junit.framework.TestCase;
+import org.exoplatform.web.controller.QualifiedName;
+
+/**
+ * @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public class TestQualifiedName extends TestCase
+{
+
+ public void testQualifiedName()
+ {
+ QualifiedName qd1 = QualifiedName.create("a", "bc");
+ assertEquals("a", qd1.getQualifier());
+ assertEquals("bc", qd1.getName());
+ assertEquals("a:bc", qd1.getValue());
+
+ //
+ QualifiedName qd2 = QualifiedName.parse("a:bc");
+ assertEquals("a", qd2.getQualifier());
+ assertEquals("bc", qd2.getName());
+ assertEquals("a:bc", qd2.getValue());
+
+ //
+ assertTrue(qd1.equals(qd2));
+ assertTrue(qd2.equals(qd1));
+ assertTrue(qd1.equals(qd1));
+ assertTrue(qd2.equals(qd2));
+
+ //
+ assertEquals(qd1.hashCode(), qd2.hashCode());
+ }
+
+ public void testEmptyQualifier()
+ {
+ QualifiedName qd1 = QualifiedName.create("abc");
+ assertEquals("", qd1.getQualifier());
+ assertEquals("abc", qd1.getName());
+ assertEquals("abc", qd1.getValue());
+
+ //
+ QualifiedName qd2 = QualifiedName.parse("abc");
+ assertEquals("", qd2.getQualifier());
+ assertEquals("abc", qd2.getName());
+ assertEquals("abc", qd2.getValue());
+
+ //
+ assertTrue(qd1.equals(qd2));
+ assertTrue(qd2.equals(qd1));
+ assertTrue(qd1.equals(qd1));
+ assertTrue(qd2.equals(qd2));
+
+ //
+ assertEquals(qd1.hashCode(), qd2.hashCode());
+ }
+
+ public void testNPEInCtor()
+ {
+ try
+ {
+ QualifiedName.create(null);
+ fail();
+ }
+ catch (NullPointerException ignore)
+ {
+ }
+ try
+ {
+ QualifiedName.create("a", null);
+ fail();
+ }
+ catch (NullPointerException ignore)
+ {
+ }
+ try
+ {
+ QualifiedName.create(null, "a");
+ fail();
+ }
+ catch (NullPointerException ignore)
+ {
+ }
+ try
+ {
+ QualifiedName.create(null, null);
+ fail();
+ }
+ catch (NullPointerException ignore)
+ {
+ }
+ try
+ {
+ QualifiedName.parse(null);
+ fail();
+ }
+ catch (NullPointerException ignore)
+ {
+ }
+ }
+
+ public void testIAEInCtor()
+ {
+ try
+ {
+ QualifiedName.create("a:b");
+ fail();
+ }
+ catch (IllegalArgumentException ignore)
+ {
+ }
+ try
+ {
+ QualifiedName.create(":", "a");
+ fail();
+ }
+ catch (IllegalArgumentException ignore)
+ {
+ }
+ try
+ {
+ QualifiedName.create("a", ":");
+ fail();
+ }
+ catch (IllegalArgumentException ignore)
+ {
+ }
+ try
+ {
+ QualifiedName.create(":", ":");
+ fail();
+ }
+ catch (IllegalArgumentException ignore)
+ {
+ }
+ try
+ {
+ QualifiedName.parse("::");
+ fail();
+ }
+ catch (IllegalArgumentException ignore)
+ {
+ }
+ }
+}
Modified: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestRender.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestRender.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestRender.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -69,7 +69,7 @@
Router router = new Router(routerMD);
//
- assertEquals("/a", router.render(Collections.singletonMap(new QualifiedName("p"), "a")));
+ assertEquals("/a", router.render(Collections.singletonMap(QualifiedName.create("p"), "a")));
assertNull(router.render(Collections.<QualifiedName, String>emptyMap()));
}
@@ -80,8 +80,8 @@
Router router = new Router(routerMD);
//
- assertEquals("/a", router.render(Collections.singletonMap(new QualifiedName("p"), "a")));
- assertNull(router.render(Collections.singletonMap(new QualifiedName("p"), "ab")));
+ assertEquals("/a", router.render(Collections.singletonMap(QualifiedName.create("p"), "a")));
+ assertNull(router.render(Collections.singletonMap(QualifiedName.create("p"), "ab")));
}
public void testWildcardPathParam() throws Exception
@@ -91,9 +91,9 @@
Router router = new Router(routerMD);
//
- assertEquals("/", router.render(Collections.singletonMap(new QualifiedName("p"), "")));
- assertEquals("/a", router.render(Collections.singletonMap(new QualifiedName("p"), "a")));
- assertEquals("/a/b", router.render(Collections.singletonMap(new QualifiedName("p"), "a/b")));
+ assertEquals("/", router.render(Collections.singletonMap(QualifiedName.create("p"), "")));
+ assertEquals("/a", router.render(Collections.singletonMap(QualifiedName.create("p"), "a")));
+ assertEquals("/a/b", router.render(Collections.singletonMap(QualifiedName.create("p"), "a/b")));
}
public void testFoo() throws Exception
@@ -103,7 +103,7 @@
Router router = new Router(routerMD);
//
- assertEquals(null, router.render(Collections.singletonMap(new QualifiedName("p"), "/")));
+ assertEquals(null, router.render(Collections.singletonMap(QualifiedName.create("p"), "/")));
}
public void testBar() throws Exception
@@ -113,7 +113,7 @@
Router router = new Router(routerMD);
//
- assertEquals("/~", router.render(Collections.singletonMap(new QualifiedName("p"), "/")));
+ assertEquals("/~", router.render(Collections.singletonMap(QualifiedName.create("p"), "/")));
}
public void testWildcardParamPathPreservePathEncoding() throws Exception
@@ -123,7 +123,7 @@
Router router = new Router(routerMD);
//
- assertEquals("//", router.render(Collections.singletonMap(new QualifiedName("p"), "/")));
+ assertEquals("//", router.render(Collections.singletonMap(QualifiedName.create("p"), "/")));
}
public void testWildcardParamPathDefaultFormEncoded() throws Exception
@@ -133,7 +133,7 @@
Router router = new Router(routerMD);
//
- assertEquals("/~", router.render(Collections.singletonMap(new QualifiedName("p"), "/")));
+ assertEquals("/~", router.render(Collections.singletonMap(QualifiedName.create("p"), "/")));
}
public void testPrecedence() throws Exception
@@ -147,6 +147,6 @@
assertEquals("/a", router.render(Collections.<QualifiedName, String>emptyMap()));
//
- assertEquals("/a/b", router.render(Collections.singletonMap(new QualifiedName("p"), "a")));
+ assertEquals("/a/b", router.render(Collections.singletonMap(QualifiedName.create("p"), "a")));
}
}
Modified: portal/branches/navcontroller/web/portal/src/main/webapp/WEB-INF/conf/default-router.xml
===================================================================
--- portal/branches/navcontroller/web/portal/src/main/webapp/WEB-INF/conf/default-router.xml 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/web/portal/src/main/webapp/WEB-INF/conf/default-router.xml 2010-11-05 02:54:23 UTC (rev 4950)
@@ -37,10 +37,17 @@
</route>
<!-- The group access -->
- <route path="/groups/{gtn:sitename}{gtn:path}">
+ <route path="/groups">
<route-param name="gtn:access" value="private"/>
- <route-param name="gtn:sitetype" value="group"/>
- <path-param name="gtn:path" pattern=".*" encoding="preserve-path"/>
+ <route path="/">
+ <route-param name="gtn:sitetype" value="portal"/>
+ <route-param name="gtn:sitename" value="classic"/>
+ <route-param name="gtn:path" value="/groupnavigation"/>
+ </route>
+ <route path="/{gtn:sitename}{gtn:path}">
+ <route-param name="gtn:sitetype" value="group"/>
+ <path-param name="gtn:path" pattern=".*" encoding="preserve-path"/>
+ </route>
</route>
<!-- The user access -->
Modified: portal/branches/navcontroller/webui/framework/src/main/java/org/exoplatform/webui/url/ComponentLocator.java
===================================================================
--- portal/branches/navcontroller/webui/framework/src/main/java/org/exoplatform/webui/url/ComponentLocator.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/webui/framework/src/main/java/org/exoplatform/webui/url/ComponentLocator.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -41,16 +41,16 @@
public static final ResourceType<UIComponent, ComponentLocator> TYPE = new ResourceType<UIComponent, ComponentLocator>() {};
/** . */
- public static final QualifiedName COMPONENT = new QualifiedName("gtn", "componentid");
+ public static final QualifiedName COMPONENT = QualifiedName.create("gtn", "componentid");
/** . */
- public static final QualifiedName ACTION = new QualifiedName("gtn", "action");
+ public static final QualifiedName ACTION = QualifiedName.create("gtn", "action");
/** . */
- public static final QualifiedName TARGET = new QualifiedName("gtn", "objectid");
+ public static final QualifiedName TARGET = QualifiedName.create("gtn", "objectid");
/** . */
- public static final QualifiedName PATH = new QualifiedName("gtn", "path");
+ public static final QualifiedName PATH = QualifiedName.create("gtn", "path");
/** . */
private static final Set<QualifiedName> NAMES = Collections.unmodifiableSet(Tools.toSet(COMPONENT, ACTION, TARGET, PATH));
Modified: portal/branches/navcontroller/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestHandler.java
===================================================================
--- portal/branches/navcontroller/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestHandler.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestHandler.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -57,16 +57,16 @@
public static final String PRIVATE_ACCESS = "private";
/** . */
- public static final QualifiedName REQUEST_PATH = new QualifiedName("gtn", "path");
+ public static final QualifiedName REQUEST_PATH = QualifiedName.create("gtn", "path");
/** . */
- public static final QualifiedName REQUEST_SITE_TYPE = new QualifiedName("gtn", "sitetype");
+ public static final QualifiedName REQUEST_SITE_TYPE = QualifiedName.create("gtn", "sitetype");
/** . */
- public static final QualifiedName REQUEST_SITE_NAME = new QualifiedName("gtn", "sitename");
+ public static final QualifiedName REQUEST_SITE_NAME = QualifiedName.create("gtn", "sitename");
/** . */
- public static final QualifiedName ACCESS = new QualifiedName("gtn", "access");
+ public static final QualifiedName ACCESS = QualifiedName.create("gtn", "access");
public String getHandlerName()
{
Modified: portal/branches/navcontroller/webui/portal/src/main/java/org/exoplatform/portal/url/navigation/NavigationLocator.java
===================================================================
--- portal/branches/navcontroller/webui/portal/src/main/java/org/exoplatform/portal/url/navigation/NavigationLocator.java 2010-11-05 02:22:01 UTC (rev 4949)
+++ portal/branches/navcontroller/webui/portal/src/main/java/org/exoplatform/portal/url/navigation/NavigationLocator.java 2010-11-05 02:54:23 UTC (rev 4950)
@@ -36,16 +36,16 @@
{
/** . */
- public static final QualifiedName PATH = new QualifiedName("gtn", "path");
+ public static final QualifiedName PATH = QualifiedName.create("gtn", "path");
/** . */
- public static final QualifiedName REQUEST_SITE_TYPE = new QualifiedName("gtn", "sitetype");
+ public static final QualifiedName REQUEST_SITE_TYPE = QualifiedName.create("gtn", "sitetype");
/** . */
- public static final QualifiedName REQUEST_SITE_NAME = new QualifiedName("gtn", "sitename");
+ public static final QualifiedName REQUEST_SITE_NAME = QualifiedName.create("gtn", "sitename");
/** . */
- public static final QualifiedName ACCESS = new QualifiedName("gtn", "access");
+ public static final QualifiedName ACCESS = QualifiedName.create("gtn", "access");
/** . */
public static final ResourceType<NavigationResource, NavigationLocator> TYPE = new ResourceType<NavigationResource, NavigationLocator>(){};
More information about the gatein-commits
mailing list