[gatein-commits] gatein SVN: r4989 - in portal/branches/navcontroller/component/web/controller/src: main/java/org/exoplatform/web/controller/metadata and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Nov 9 11:28:49 EST 2010


Author: julien_viet
Date: 2010-11-09 11:28:48 -0500 (Tue, 09 Nov 2010)
New Revision: 4989

Modified:
   portal/branches/navcontroller/component/web/controller/src/main/java/gatein_router_1_0.xsd
   portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/DescriptorBuilder.java
   portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/PathParamDescriptor.java
   portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/RouteDescriptor.java
   portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParam.java
   portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/Route.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/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/component/web/controller/src/test/java/org/exoplatform/web/controller/router/router.xml
Log:
add required=true|false on a path param, need to impl it though


Modified: portal/branches/navcontroller/component/web/controller/src/main/java/gatein_router_1_0.xsd
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/gatein_router_1_0.xsd	2010-11-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/gatein_router_1_0.xsd	2010-11-09 16:28:48 UTC (rev 4989)
@@ -64,6 +64,7 @@
         </xs:restriction>
       </xs:simpleType>
     </xs:attribute>
+    <xs:attribute name="required" type="xs:boolean" use="optional"/>
   </xs:complexType>
 
   <xs:complexType name="requestParamType">

Modified: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/DescriptorBuilder.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/DescriptorBuilder.java	2010-11-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/DescriptorBuilder.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -110,8 +110,9 @@
                String name = reader.getAttributeValue(null, "name");
                String pattern = reader.getAttributeValue(null, "pattern");
                String encoded = reader.getAttributeValue(null, "encoding");
+               String required = reader.getAttributeValue(null, "required");
                EncodingMode encodingMode = "preserve-path".equals(encoded) ? EncodingMode.PRESERVE_PATH : EncodingMode.DEFAULT_FORM;
-               routeDesc.addPathParam(QualifiedName.parse(name), pattern, encodingMode);
+               routeDesc.addPathParam(QualifiedName.parse(name), pattern, encodingMode, !"false".equals(required));
             }
             else if (routeQN.equals(reader.getName()))
             {

Modified: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/PathParamDescriptor.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/PathParamDescriptor.java	2010-11-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/PathParamDescriptor.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -38,21 +38,21 @@
    /** . */
    private final EncodingMode encodingMode;
 
-   public PathParamDescriptor(QualifiedName name, String pattern, EncodingMode encodingMode)
+   /** . */
+   private final boolean required;
+
+   public PathParamDescriptor(QualifiedName name, String pattern, EncodingMode encodingMode, boolean required)
    {
       if (name == null)
       {
          throw new NullPointerException("No null name accepted");
       }
-      if (pattern == null)
-      {
-         throw new NullPointerException("No null pattern accepted");
-      }
 
       //
       this.name = name;
       this.pattern = pattern;
       this.encodingMode = encodingMode;
+      this.required = required;
    }
 
    public QualifiedName getName()
@@ -69,4 +69,9 @@
    {
       return encodingMode;
    }
+
+   public boolean isRequired()
+   {
+      return required;
+   }
 }

Modified: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/RouteDescriptor.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/RouteDescriptor.java	2010-11-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/metadata/RouteDescriptor.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -92,9 +92,9 @@
       return this;
    }
 
-   public RouteDescriptor addPathParam(QualifiedName name, String pattern, EncodingMode encodingMode)
+   public RouteDescriptor addPathParam(QualifiedName name, String pattern, EncodingMode encodingMode, boolean required)
    {
-      return addRequestParam(new PathParamDescriptor(name, pattern, encodingMode));
+      return addRequestParam(new PathParamDescriptor(name, pattern, encodingMode, required));
    }
 
    public RouteDescriptor addRequestParam(PathParamDescriptor requestParam)

Modified: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParam.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParam.java	2010-11-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParam.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -39,10 +39,14 @@
    /** . */
    final Pattern pattern;
 
-   PatternParam(QualifiedName name, EncodingMode encodingMode, Pattern pattern)
+   /** . */
+   final boolean required;
+
+   PatternParam(QualifiedName name, EncodingMode encodingMode, Pattern pattern, boolean required)
    {
       this.name = name;
       this.encodingMode = encodingMode;
       this.pattern = pattern;
+      this.required = required;
    }
 }

Modified: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/Route.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/Route.java	2010-11-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/Route.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -609,17 +609,23 @@
                PathParamDescriptor parameterDescriptor = pathParamDescriptors.get(parameterQName);
                String regex = "[^/]+";
                EncodingMode encodingMode = EncodingMode.DEFAULT_FORM;
+               boolean required = true;
                if (parameterDescriptor != null)
                {
                   regex = parameterDescriptor.getPattern();
                   encodingMode = parameterDescriptor.getEncodingMode();
+                  required = parameterDescriptor.isRequired();
                }
 
                //
                builder.expr("(");
                builder.expr(regex);
                builder.expr(")");
-               parameterPatterns.add(new PatternParam(parameterQName, encodingMode, Pattern.compile("^" + regex + "$")));
+               parameterPatterns.add(new PatternParam(
+                  parameterQName,
+                  encodingMode,
+                  Pattern.compile("^" + regex + "$"),
+                  required));
                previous = end.get(i) + 1;
             }
             builder.litteral(path, previous, pos);

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-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestBuildRoute.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -112,7 +112,7 @@
       for (String path : paths)
       {
          RouterDescriptor routerMD = new RouterDescriptor();
-         routerMD.addRoute(new RouteDescriptor(path).addPathParam(QualifiedName.parse("a"), ".*", EncodingMode.DEFAULT_FORM));
+         routerMD.addRoute(new RouteDescriptor(path).addPathParam(QualifiedName.parse("a"), ".*", EncodingMode.DEFAULT_FORM, true));
          Router router = new Router(routerMD);
 
          //

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-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestDescriptorBuilder.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -59,6 +59,7 @@
       assertEquals(QualifiedName.parse("gtn:path"), route1.getPathParams().get(QualifiedName.parse("gtn:path")).getName());
       assertEquals(".*", route1.getPathParams().get(QualifiedName.parse("gtn:path")).getPattern());
       assertEquals(EncodingMode.DEFAULT_FORM, route1.getPathParams().get(QualifiedName.parse("gtn:path")).getEncodingMode());
+      assertEquals(true, route1.getPathParams().get(QualifiedName.parse("gtn:path")).isRequired());
 
       //
       assertTrue(i.hasNext());
@@ -69,6 +70,7 @@
       assertEquals(QualifiedName.parse("gtn:path"), route2.getPathParams().get(QualifiedName.parse("gtn:path")).getName());
       assertEquals(".*", route2.getPathParams().get(QualifiedName.parse("gtn:path")).getPattern());
       assertEquals(EncodingMode.PRESERVE_PATH, route2.getPathParams().get(QualifiedName.parse("gtn:path")).getEncodingMode());
+      assertEquals(true, route2.getPathParams().get(QualifiedName.parse("gtn:path")).isRequired());
 
       //
       assertTrue(i.hasNext());
@@ -109,5 +111,18 @@
       assertEquals("juu", route6.getRequestParams().get("juu").getMatchName());
       assertEquals("juu", route6.getRequestParams().get("juu").getMatchValue());
       assertEquals(true, route6.getRequestParams().get("juu").isRequired());
+
+      //
+      assertTrue(i.hasNext());
+      RouteDescriptor route7 = i.next();
+      assertEquals("/{gtn:lang}", route7.getPath());
+      assertEquals(Collections.singleton(QualifiedName.parse("gtn:lang")), route7.getPathParams().keySet());
+      assertEquals(QualifiedName.parse("gtn:lang"), route7.getPathParams().get(QualifiedName.parse("gtn:lang")).getName());
+      assertEquals(null, route7.getPathParams().get(QualifiedName.parse("gtn:lang")).getPattern());
+      assertEquals(EncodingMode.DEFAULT_FORM, route7.getPathParams().get(QualifiedName.parse("gtn:lang")).getEncodingMode());
+      assertEquals(false, route7.getPathParams().get(QualifiedName.parse("gtn:lang")).isRequired());
+
+      //
+      assertFalse(i.hasNext());
    }
 }

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-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestLegacyPortal.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -49,8 +49,8 @@
          addRequestParam(QualifiedName.parse("gtn:action"), "portal:action", null, false).
          addRequestParam(QualifiedName.parse("gtn:objectid"), "portal:objectId", null, false).
          addRoute(new RouteDescriptor("/public/{gtn:sitename}{gtn:path}").
-            addParam(QualifiedName.parse("gtn:access"), "public")).addPathParam(QualifiedName.parse("gtn:path"), ".*", EncodingMode.PRESERVE_PATH).
-         addRoute(new RouteDescriptor("/private/{gtn:sitename}{gtn:path}").addPathParam(QualifiedName.parse("gtn:path"), ".*", EncodingMode.PRESERVE_PATH).
+            addParam(QualifiedName.parse("gtn:access"), "public")).addPathParam(QualifiedName.parse("gtn:path"), ".*", EncodingMode.PRESERVE_PATH, true).
+         addRoute(new RouteDescriptor("/private/{gtn:sitename}{gtn:path}").addPathParam(QualifiedName.parse("gtn:path"), ".*", EncodingMode.PRESERVE_PATH, true).
             addParam(QualifiedName.parse("gtn:access"), "private"));
 
       //

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-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestMatch.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -107,7 +107,7 @@
    public void testWildcardPattern() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), ".*", EncodingMode.PRESERVE_PATH));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), ".*", EncodingMode.PRESERVE_PATH, true));
       Router router = new Router(routerMD);
 
       //
@@ -120,7 +120,7 @@
    public void testDefaultForm() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "[^/]+", EncodingMode.DEFAULT_FORM));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "[^/]+", EncodingMode.DEFAULT_FORM, true));
       Router router = new Router(routerMD);
 
       //
@@ -130,7 +130,7 @@
    public void testPreservePath() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "[^/]+", EncodingMode.PRESERVE_PATH));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "[^/]+", EncodingMode.PRESERVE_PATH, true));
       Router router = new Router(routerMD);
 
       //
@@ -141,7 +141,7 @@
    public void testSimplePattern() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "a", EncodingMode.DEFAULT_FORM));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "a", EncodingMode.DEFAULT_FORM, true));
       Router router = new Router(routerMD);
 
       //
@@ -155,7 +155,7 @@
    {
       RouterDescriptor routerMD = new RouterDescriptor();
       routerMD.addRoute(new RouteDescriptor("/a"));
-      routerMD.addRoute(new RouteDescriptor("/{p}/b").addPathParam(QualifiedName.parse("p"), "a", EncodingMode.DEFAULT_FORM));
+      routerMD.addRoute(new RouteDescriptor("/{p}/b").addPathParam(QualifiedName.parse("p"), "a", EncodingMode.DEFAULT_FORM, true));
       Router router = new Router(routerMD);
 
       //

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-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestPortalConfiguration.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -46,25 +46,25 @@
       RouteDescriptor portalRouteMD = new RouteDescriptor("/private/{gtn:sitetype}/{gtn:sitename}{gtn: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);
+      portalRouteMD.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH, true);
       routerMD.addRoute(portalRouteMD);
 
       //
       RouteDescriptor portalRouteMD2 = new RouteDescriptor("/private/{gtn:sitetype}/{gtn:sitename}{gtn:path}");
       portalRouteMD2.addParam(QualifiedName.create("gtn", "controller"), "site");
-      portalRouteMD2.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
+      portalRouteMD2.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH, true);
       routerMD.addRoute(portalRouteMD2);
 
       //
       RouteDescriptor groupRouteMD = new RouteDescriptor("/groups/{gtn:sitetype}/{gtn:sitename}{gtn:path}");
       groupRouteMD.addParam(QualifiedName.create("gtn", "controller"), "site");
-      groupRouteMD.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
+      groupRouteMD.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH, true);
       routerMD.addRoute(groupRouteMD);
 
       //
       RouteDescriptor userRouteMD = new RouteDescriptor("/users/{gtn:sitetype}/{gtn:sitename}{gtn:path}");
       userRouteMD.addParam(QualifiedName.create("gtn", "controller"), "site");
-      userRouteMD.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH);
+      userRouteMD.addPathParam(QualifiedName.create("gtn", "path"), ".*", EncodingMode.PRESERVE_PATH, true);
       routerMD.addRoute(userRouteMD);
 
       //

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-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestRender.java	2010-11-09 16:28:48 UTC (rev 4989)
@@ -76,7 +76,7 @@
    public void testSimplePatternPathParam() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "a", EncodingMode.DEFAULT_FORM));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "a", EncodingMode.DEFAULT_FORM, true));
       Router router = new Router(routerMD);
 
       //
@@ -87,7 +87,7 @@
    public void testWildcardPathParam() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), ".*", EncodingMode.PRESERVE_PATH));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), ".*", EncodingMode.PRESERVE_PATH, true));
       Router router = new Router(routerMD);
 
       //
@@ -99,7 +99,7 @@
    public void testFoo() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "[^/]*", EncodingMode.PRESERVE_PATH));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "[^/]*", EncodingMode.PRESERVE_PATH, true));
       Router router = new Router(routerMD);
 
       //
@@ -109,7 +109,7 @@
    public void testBar() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "[^/]*", EncodingMode.DEFAULT_FORM));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), "[^/]*", EncodingMode.DEFAULT_FORM, true));
       Router router = new Router(routerMD);
 
       //
@@ -119,7 +119,7 @@
    public void testWildcardParamPathPreservePathEncoding() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), ".*", EncodingMode.PRESERVE_PATH));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), ".*", EncodingMode.PRESERVE_PATH, true));
       Router router = new Router(routerMD);
 
       //
@@ -129,7 +129,7 @@
    public void testWildcardParamPathDefaultFormEncoded() throws Exception
    {
       RouterDescriptor routerMD = new RouterDescriptor();
-      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), ".*", EncodingMode.DEFAULT_FORM));
+      routerMD.addRoute(new RouteDescriptor("/{p}").addPathParam(QualifiedName.parse("p"), ".*", EncodingMode.DEFAULT_FORM, true));
       Router router = new Router(routerMD);
 
       //
@@ -140,7 +140,7 @@
    {
       RouterDescriptor routerMD = new RouterDescriptor();
       routerMD.addRoute(new RouteDescriptor("/a"));
-      routerMD.addRoute(new RouteDescriptor("/{p}/b").addPathParam(QualifiedName.parse("p"), "a", EncodingMode.DEFAULT_FORM));
+      routerMD.addRoute(new RouteDescriptor("/{p}/b").addPathParam(QualifiedName.parse("p"), "a", EncodingMode.DEFAULT_FORM, true));
       Router router = new Router(routerMD);
 
       //

Modified: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/router.xml
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/router.xml	2010-11-09 13:45:48 UTC (rev 4988)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/router.xml	2010-11-09 16:28:48 UTC (rev 4989)
@@ -34,4 +34,8 @@
     <request-param name="juu" matchName="juu" matchValue="juu" required="true"/>
   </route>
 
+  <route path="/{gtn:lang}">
+    <path-param name="gtn:lang" required="false"/>
+  </route>
+
 </router>
\ No newline at end of file



More information about the gatein-commits mailing list