Author: julien_viet
Date: 2011-08-16 04:57:17 -0400 (Tue, 16 Aug 2011)
New Revision: 7146
Added:
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/SimpleRequestContext.java
Modified:
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/NavigationImpl.java
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/portal/NavigationTestCase.java
portal/branches/api/component/web/controller/src/main/java/org/exoplatform/web/url/ResourceType.java
portal/branches/api/component/web/controller/src/main/java/org/exoplatform/web/url/navigation/NodeURL.java
portal/branches/api/examples/portlets/api/src/main/java/org/gatein/portal/samples/api/NavigationPortlet.java
portal/branches/api/webui/framework/src/main/java/org/exoplatform/webui/url/ComponentURL.java
Log:
unit test for URI
Modified:
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/NavigationImpl.java
===================================================================
---
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/NavigationImpl.java 2011-08-16
07:43:36 UTC (rev 7145)
+++
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/NavigationImpl.java 2011-08-16
08:57:17 UTC (rev 7146)
@@ -106,13 +106,11 @@
try
{
RequestContext requestContext = RequestContext.getCurrentInstance();
- SiteType siteType =
SiteType.valueOf(site.getId().getComponents()[0].toUpperCase());
- String siteName = site.getId().getComponents()[1];
-
- NavigationResource navResource = new NavigationResource(siteType, siteName,
buildURI().toString());
+ SiteType siteType =
SiteType.valueOf(site.getId().getType().getName().toUpperCase());
+ String siteName = site.getId().getName();
+ NavigationResource navResource = new NavigationResource(siteType, siteName,
buildURI().toString());
NodeURL nodeURL = requestContext.createURL(NodeURL.TYPE, navResource);
nodeURL.setSchemeUse(true);
-
uri = new URI(nodeURL.toString());
}
catch (URISyntaxException e)
Added:
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/SimpleRequestContext.java
===================================================================
---
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/SimpleRequestContext.java
(rev 0)
+++
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/SimpleRequestContext.java 2011-08-16
08:57:17 UTC (rev 7146)
@@ -0,0 +1,99 @@
+package org.gatein.portal.api.impl;
+
+import org.exoplatform.services.resources.Orientation;
+import org.exoplatform.web.application.Application;
+import org.exoplatform.web.application.RequestContext;
+import org.exoplatform.web.application.URLBuilder;
+import org.exoplatform.web.url.PortalURL;
+import org.exoplatform.web.url.ResourceType;
+import org.exoplatform.web.url.URLContext;
+import org.exoplatform.web.url.URLFactory;
+import org.exoplatform.web.url.navigation.NavigationResource;
+import org.exoplatform.web.url.navigation.NodeURL;
+import org.gatein.common.NotYetImplemented;
+
+/** @author <a href="mailto:julien.viet@exoplatform.com">Julien
Viet</a> */
+public class SimpleRequestContext extends RequestContext
+{
+
+ /** . */
+ private static final URLContext ctx = new URLContext()
+ {
+ public <R, U extends PortalURL<R, U>> String render(U url)
+ {
+ PortalURL bu = url;
+ if (bu instanceof NodeURL)
+ {
+ NodeURL nodeURL = (NodeURL)bu;
+ NavigationResource res = nodeURL.getResource();
+ return "/" + res.getSiteType().getName() + "/" +
res.getSiteName() + "/" + res.getNodeURI();
+ }
+ else
+ {
+ throw new UnsupportedOperationException();
+ }
+ }
+ };
+
+ public SimpleRequestContext(Application app)
+ {
+ super(app);
+ }
+
+ @Override
+ public URLFactory getURLFactory()
+ {
+ return new URLFactory()
+ {
+ @Override
+ public <R, U extends PortalURL<R, U>> U newURL(ResourceType<R,
U> resourceType, URLContext context) throws NullPointerException
+ {
+ ResourceType rt = resourceType;
+ if (rt == NodeURL.TYPE)
+ {
+ return resourceType.getURLType().cast(new NodeURL(context));
+ }
+ else
+ {
+ return null;
+ }
+ }
+ };
+ }
+
+ @Override
+ public <R, U extends PortalURL<R, U>> U newURL(ResourceType<R, U>
resourceType, URLFactory urlFactory)
+ {
+ return urlFactory.newURL(resourceType, ctx);
+ }
+
+ @Override
+ public Orientation getOrientation()
+ {
+ return Orientation.LT;
+ }
+
+ @Override
+ public String getRequestParameter(String name)
+ {
+ return null;
+ }
+
+ @Override
+ public String[] getRequestParameterValues(String name)
+ {
+ return null;
+ }
+
+ @Override
+ public URLBuilder<?> getURLBuilder()
+ {
+ throw new NotYetImplemented();
+ }
+
+ @Override
+ public boolean useAjax()
+ {
+ return false;
+ }
+}
Modified:
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/portal/NavigationTestCase.java
===================================================================
---
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/portal/NavigationTestCase.java 2011-08-16
07:43:36 UTC (rev 7145)
+++
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/portal/NavigationTestCase.java 2011-08-16
08:57:17 UTC (rev 7146)
@@ -15,12 +15,15 @@
import org.exoplatform.portal.mop.navigation.Scope;
import org.exoplatform.portal.pom.config.POMSessionManager;
import org.exoplatform.portal.pom.data.ModelDataStorage;
+import org.exoplatform.web.application.RequestContext;
import org.gatein.api.GateIn;
import org.gatein.api.portal.Navigation;
import org.gatein.api.portal.Page;
import org.gatein.api.portal.Site;
import org.gatein.portal.api.impl.GateInImpl;
+import org.gatein.portal.api.impl.SimpleRequestContext;
+import java.net.URI;
import java.util.Iterator;
/** @author <a href="mailto:julien.viet@exoplatform.com">Julien
Viet</a> */
@@ -78,6 +81,9 @@
//
storage.create(new org.exoplatform.portal.config.model.Page("portal",
"classic", "homepage").build());
+
+ //
+ RequestContext.setCurrentInstance(new SimpleRequestContext(null));
}
@Override
@@ -116,6 +122,7 @@
assertSame(site, homeNav.getSite());
assertEquals("home", homeNav.getName());
assertSame(homeNav, rootNav.getChild("home"));
+ assertEquals(URI.create("/portal/classic/home"), homeNav.getURI());
assertFalse(i.hasNext());
}
Modified:
portal/branches/api/component/web/controller/src/main/java/org/exoplatform/web/url/ResourceType.java
===================================================================
---
portal/branches/api/component/web/controller/src/main/java/org/exoplatform/web/url/ResourceType.java 2011-08-16
07:43:36 UTC (rev 7145)
+++
portal/branches/api/component/web/controller/src/main/java/org/exoplatform/web/url/ResourceType.java 2011-08-16
08:57:17 UTC (rev 7146)
@@ -29,4 +29,7 @@
*/
public abstract class ResourceType<R, U extends PortalURL<R, U>>
{
+
+ public abstract Class<U> getURLType();
+
}
Modified:
portal/branches/api/component/web/controller/src/main/java/org/exoplatform/web/url/navigation/NodeURL.java
===================================================================
---
portal/branches/api/component/web/controller/src/main/java/org/exoplatform/web/url/navigation/NodeURL.java 2011-08-16
07:43:36 UTC (rev 7145)
+++
portal/branches/api/component/web/controller/src/main/java/org/exoplatform/web/url/navigation/NodeURL.java 2011-08-16
08:57:17 UTC (rev 7146)
@@ -47,7 +47,14 @@
public static final QualifiedName REQUEST_SITE_NAME =
QualifiedName.create("gtn", "sitename");
/** . */
- public static final ResourceType<NavigationResource, NodeURL> TYPE = new
ResourceType<NavigationResource, NodeURL>(){};
+ public static final ResourceType<NavigationResource, NodeURL> TYPE = new
ResourceType<NavigationResource, NodeURL>()
+ {
+ @Override
+ public Class<NodeURL> getURLType()
+ {
+ return NodeURL.class;
+ }
+ };
/** . */
private static final Set<QualifiedName> PARAMETER_NAMES = new
HashSet<QualifiedName>();
Modified:
portal/branches/api/examples/portlets/api/src/main/java/org/gatein/portal/samples/api/NavigationPortlet.java
===================================================================
---
portal/branches/api/examples/portlets/api/src/main/java/org/gatein/portal/samples/api/NavigationPortlet.java 2011-08-16
07:43:36 UTC (rev 7145)
+++
portal/branches/api/examples/portlets/api/src/main/java/org/gatein/portal/samples/api/NavigationPortlet.java 2011-08-16
08:57:17 UTC (rev 7146)
@@ -23,7 +23,6 @@
package org.gatein.portal.samples.api;
import org.gatein.api.GateIn;
-import org.gatein.api.id.Id;
import org.gatein.api.portal.Navigation;
import org.gatein.api.portal.Site;
import org.gatein.api.util.IterableIdentifiableCollection;
@@ -35,6 +34,7 @@
import javax.portlet.RenderResponse;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.Collection;
/** @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a> */
public class NavigationPortlet extends GenericPortlet
@@ -75,7 +75,7 @@
{
Navigation navigation = site.getNavigation();
- IterableIdentifiableCollection<Navigation> adminNodes = navigation.getAll();
+ Collection<? extends Navigation> adminNodes = navigation.getChildren();
writer.println("<h2>" + site.getDisplayName() +
"</h2>");
writer.println("<ul>");
@@ -90,7 +90,7 @@
private void outputNode(Navigation node, PrintWriter writer)
{
- IterableIdentifiableCollection<Navigation> children = node.getAll();
+ Collection<? extends Navigation> children = node.getChildren();
int size = children.size();
boolean isLeaf = size == 0;
writer.println("<li>"
Modified:
portal/branches/api/webui/framework/src/main/java/org/exoplatform/webui/url/ComponentURL.java
===================================================================
---
portal/branches/api/webui/framework/src/main/java/org/exoplatform/webui/url/ComponentURL.java 2011-08-16
07:43:36 UTC (rev 7145)
+++
portal/branches/api/webui/framework/src/main/java/org/exoplatform/webui/url/ComponentURL.java 2011-08-16
08:57:17 UTC (rev 7146)
@@ -37,7 +37,14 @@
{
/** . */
- public static final ResourceType<UIComponent, ComponentURL> TYPE = new
ResourceType<UIComponent, ComponentURL>() {};
+ public static final ResourceType<UIComponent, ComponentURL> TYPE = new
ResourceType<UIComponent, ComponentURL>()
+ {
+ @Override
+ public Class<ComponentURL> getURLType()
+ {
+ return ComponentURL.class;
+ }
+ };
/** . */
public static final QualifiedName COMPONENT = QualifiedName.create("gtn",
"componentid");