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@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@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@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>(){};