Author: unibrew Date: 2005-10-11 14:46:38 -0400 (Tue, 11 Oct 2005) New Revision: 1371 Added: branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jsp/primates.jsp Modified: branches/forge/rysiek/portal-extensions/primates/build.properties branches/forge/rysiek/portal-extensions/primates/project.xml branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/Primate.java branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/Primates.java branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesDescriptor.java branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesNodeWatcher.java branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesPortlet.java branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesTools.java branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jboss-app.xml branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jboss-portlet.xml branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/portlet-instances.xml branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/portlet.xml branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/web.xml Log: test. Modified: branches/forge/rysiek/portal-extensions/primates/build.properties =================================================================== --- branches/forge/rysiek/portal-extensions/primates/build.properties 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/build.properties 2005-10-11 18:46:38 UTC (rev 1371) @@ -1,21 +1,16 @@ -# Path to where your portal extensions are to be deployed -local.deploy.dir=/Volumes/JBoss/servers/labs/server/all/deploy +# Path to where JBoss AS is to be copied. +local.server.dir=/home/rysiek/JBossAS -# Path to where yout portal with JBoss as are to be copied (it's de facto local.deploy.dir without server/all/deploy part ) -local.server.dir=/Volumes/JBoss/servers/labs +# Path to where your portal extensions are to be deployed - you shouldn't +# have to change that. +local.deploy.dir=${local.server.dir}/server/all/deploy # Path to your local maven repository - you can comment this out if you use # the default location. You can also create a build.properties in your home # directory to set the maven.repo.local for all projects. -# maven.repo.local= +#maven.repo.local=/home/rysiek/.maven/repository +#maven.repo.local= # URL of your content repository. You don't have to specify this if you don't -# plan to update the content by maven. +# plan to update the content by maven (it's need for CruiseControl). maven.scm.url= - -# Address, username and password to access the JBoss JMX Console. Necessary to -# successfully obtain the 'redeploy-portal' goal; comment out if you won't be -# using it. -jboss.jmx.console= -jboss.jmx.username= -jboss.jmx.password= Modified: branches/forge/rysiek/portal-extensions/primates/project.xml =================================================================== --- branches/forge/rysiek/portal-extensions/primates/project.xml 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/project.xml 2005-10-11 18:46:38 UTC (rev 1371) @@ -35,5 +35,6 @@ <artifactId>forge-common</artifactId> <version>1.0</version> </dependency> + </dependencies> </project> Modified: branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/Primate.java =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/Primate.java 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/Primate.java 2005-10-11 18:46:38 UTC (rev 1371) @@ -1,35 +1,32 @@ package org.jbosslabs.portlets.primates; // asdfasdf +import java.io.File; import java.util.HashSet; import java.util.Set; -import org.jboss.forge.common.ForgeHelper; import org.jboss.forge.common.XmlTools; import org.jboss.forge.common.projects.AbstractDescriptor; -import org.jboss.forge.common.projects.Projects; -import org.jboss.forge.common.projects.ProjectsHelper; -import org.jboss.forge.common.projects.permissions.PermissionsChecker; -import org.jboss.forge.common.projects.permissions.RenderRequestPermissionsChecker; import org.jboss.portal.common.context.DelegateContext; -import org.jboss.portal.core.model.User; -import org.jboss.portlet.JBossRenderRequest; +import org.jboss.shotoku.ContentManager; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * @author Damon Sicore * @author adamw + * @author Rysiek * A class representing a primate. */ public class Primate extends AbstractDescriptor { - final static String NAME_ELEMENT = "link"; + final static String NAME_ELEMENT = "name"; final static String TITLE_ELEMENT = "title"; - final static String PROJECTS_ELEMENT = "projects"; final static String PROJECT_ELEMENT = "project"; + final static String PROJECTS_ELEMENT = "projects"; final static String MUGSHOT_ELEMENT = "mugshot"; final static String STATUS_ELEMENT = "status"; - final static String BIO_ELEMENT = "bio"; + final static String BIO_ELEMENT = "bio"; + final static String COUNTRY_ELEMENT = "country"; /** * <code>name</code> - The name this filthy primate calls itself. @@ -48,6 +45,10 @@ */ private String status; /** + * <code>country</code> - Primate country. + */ + private String country; + /** * <code>bio</code> - More self-promotion and hot air. */ private String bio; @@ -59,6 +60,7 @@ public Primate(Node root) { NodeList nodes = root.getChildNodes(); + allProjects = new HashSet<String>(); for (int i = 0; i < nodes.getLength(); i++) { Node n = nodes.item(i); @@ -69,10 +71,18 @@ name = XmlTools.unmarshallText(n); } else if (TITLE_ELEMENT.equals(nodeName)) { title = XmlTools.unmarshallText(n); - } else if (PROJECT_ELEMENT.equals(nodeName)) { - allProjects.add(XmlTools.unmarshallText(n)); } else if (MUGSHOT_ELEMENT.equals(nodeName)) { - mugshot = XmlTools.unmarshallText(n); + mugshot = XmlTools.unmarshallText(n); + } else if (COUNTRY_ELEMENT.equals(nodeName)) { + country = XmlTools.unmarshallText(n); + } else if (PROJECTS_ELEMENT.equals(nodeName)) { + NodeList projectList = n.getChildNodes(); + for (int j = 0; j < projectList.getLength(); j++) { + Node project = projectList.item(j); + if (project.getNodeType()==Node.ELEMENT_NODE && PROJECT_ELEMENT.equals(project.getNodeName())) { + allProjects.add(XmlTools.unmarshallText(project)); + } + } } else if (STATUS_ELEMENT.equals(nodeName)) { status = XmlTools.unmarshallText(n); } else if (BIO_ELEMENT.equals(nodeName)) { @@ -81,4 +91,25 @@ } } } + + /** + * Method puts primate in the context. + * @param portalName + * @param context + */ + public void setPrimateContextValues (String portalName, DelegateContext context) { + context.put(NAME_ELEMENT,name); + context.put(TITLE_ELEMENT,title); + if (allProjects.size()>0) { + for (String project:allProjects) { + DelegateContext projectCtx = context.next(PROJECTS_ELEMENT); + projectCtx.put(PROJECT_ELEMENT,project); + } + } + context.put(MUGSHOT_ELEMENT,PrimatesTools.getImgCmPath(portalName) + File.separator + mugshot); + context.put(COUNTRY_ELEMENT,country); + context.put(STATUS_ELEMENT,status); + ContentManager cm = ContentManager.getContentManager(); + context.put(BIO_ELEMENT,cm.getNode(PrimatesTools.getBiosCmPath(portalName)+File.separator+bio).getContent()); + } } Modified: branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/Primates.java =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/Primates.java 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/Primates.java 2005-10-11 18:46:38 UTC (rev 1371) @@ -1,17 +1,17 @@ package org.jbosslabs.portlets.primates; +import java.util.ArrayList; import java.util.List; -import java.util.ArrayList; -import java.util.Set; +import java.util.Random; import org.jboss.portal.common.context.DelegateContext; -import org.jboss.portlet.JBossRenderRequest; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * @author Damon Sicore * @author adamw + * @author Rysiek * A class holding other primates. */ public class Primates { @@ -37,5 +37,31 @@ } } } + + /* + * Returns DelegateContext object containing all primates. + */ + public DelegateContext getPrimatesContext (String portalName) { + DelegateContext context = new DelegateContext(); + DelegateContext primateCtx=null; + for (Primate primate:primates) { + primateCtx=context.next("primate"); + primate.setPrimateContextValues(portalName,primateCtx); + } + return context; + } + + /* + * Returns DelegateContext object containging one random primate. + */ + public DelegateContext getRandomPrimateCtx (String portalName) { + DelegateContext context = new DelegateContext(); + Random random = new Random(); + int rndNbr = random.nextInt(primates.size()); + Primate primate = primates.get(rndNbr); + DelegateContext primateCtx = context.next("primate"); + primate.setPrimateContextValues(portalName,primateCtx); + return context; + } } Modified: branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesDescriptor.java =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesDescriptor.java 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesDescriptor.java 2005-10-11 18:46:38 UTC (rev 1371) @@ -1,14 +1,8 @@ package org.jbosslabs.portlets.primates; -import java.util.HashSet; -import java.util.Set; - import org.apache.xerces.parsers.DOMParser; -import org.jboss.forge.common.ForgeHelper; -import org.jboss.forge.common.content.ContentManager; -import org.jboss.forge.common.projects.ProjectsHelper; import org.jboss.portal.common.context.DelegateContext; -import org.jboss.portlet.JBossRenderRequest; +import org.jboss.shotoku.ContentManager; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.xml.sax.InputSource; @@ -25,7 +19,7 @@ try { // Parsing the xml navigation descriptor. DOMParser parser = new DOMParser(); - parser.parse(new InputSource(cm.getInputStream(PrimatesTools.getXmlCmPath(portalName)))); + parser.parse(new InputSource(cm.getNode(PrimatesTools.getXmlCmPath(portalName)).getContentInputStream())); Document doc = parser.getDocument(); // Looking for the root menu element. Node root = doc.getDocumentElement(); @@ -39,13 +33,18 @@ } } - public DelegateContext getContext(JBossRenderRequest request) { - String requestedLink = null; - - // Creating a context specific to this request. - DelegateContext context = new DelegateContext(); - return context; + /** + * Returns DelegateContext object containing all primates. + */ + public DelegateContext getContext(String portalName) { + return primates.getPrimatesContext(portalName); } - + /* + * Returns DelegateContext objcet containing one random primate. + */ + public DelegateContext getRandomPrimateCtx (String portalName) { + return primates.getRandomPrimateCtx(portalName); + } + } Modified: branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesNodeWatcher.java =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesNodeWatcher.java 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesNodeWatcher.java 2005-10-11 18:46:38 UTC (rev 1371) @@ -1,6 +1,6 @@ package org.jbosslabs.portlets.primates; -import org.jboss.forge.common.content.ContentManager; +import org.jboss.shotoku.ContentManager; import org.jboss.forge.common.service.NodeWatcher; import org.jboss.forge.common.service.ResourceWatcher; Modified: branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesPortlet.java =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesPortlet.java 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesPortlet.java 2005-10-11 18:46:38 UTC (rev 1371) @@ -13,27 +13,34 @@ import org.jboss.portlet.JBossRenderRequest; import org.jboss.portlet.JBossRenderResponse; + /** * @author adamw + * @author Rysiek * Primates portlet. */ public class PrimatesPortlet extends JBossPortlet { public void doView(JBossRenderRequest request, JBossRenderResponse response) throws IOException, PortletException { response.setContentType("text/html"); - String portalName = ForgeHelper.getPortalName(request); - ProjectsHelper.prepareRequest(request); - - // Getting the primates context. - DelegateContext navContext = PrimatesTools.getDesc(portalName).getContext(request); - + + // Getting the context containing random primate. + DelegateContext primatesContext = PrimatesTools.getDesc(portalName).getRandomPrimateCtx(portalName); + + // Getting the context containing all primates. + //DelegateContext primatesContext = PrimatesTools.getDesc(portalName).getContext(portalName); + // Displaying. - request.setAttribute(PortalJsp.CTX_REQUEST, navContext); - - PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher( - ForgeHelper.createRepoAccessPath(portalName, PrimatesTools.getJspCmPath())); + request.setAttribute(PortalJsp.CTX_REQUEST, primatesContext); + + // Getting JSP from portlet context. + //PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/primates.jsp"); + + // Getting JSP file from cms. + PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(ForgeHelper.createRepoAccessPath(portalName, PrimatesTools.getJspCmPath())); + rd.include(request, response); } } Modified: branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesTools.java =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesTools.java 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/PrimatesTools.java 2005-10-11 18:46:38 UTC (rev 1371) @@ -2,7 +2,7 @@ import org.jboss.forge.common.ForgeHelper; import java.io.File; -import org.jboss.forge.common.content.ContentManager; +import org.jboss.shotoku.ContentManager; /** * @author adamw @@ -14,22 +14,50 @@ private final static String PRIMATES_XML = "primates.xml"; private final static String PRIMATES_JSP = "primates.jsp"; private final static String PRIMATES_DIR = "primates"; - private final static String BIOS_DIR = PRIMATES_DIR + File.separator +"html"; - private final static String MUGSHOTS_DIR = PRIMATES_DIR + File.separator +"mugshots"; + private final static String BIOS_DIR = "html"; + private final static String MUGSHOTS_DIR = "images"; private static ContentManager cm; static { cm = ForgeHelper.getContentManager(""); } - + + /** + * Method returns path to XML file. + * @param portalName + * @return + */ static String getXmlCmPath(String portalName) { - return portalName + "/" + PRIMATES_DIR + "/" + PRIMATES_XML; + return portalName + File.separator + PRIMATES_DIR + File.separator + PRIMATES_XML; } - + + /** + * Method returns path to JSP file. + * @param portalName + * @return + */ static String getJspCmPath() { - return PRIMATES_DIR + "/" + PRIMATES_JSP; + return PRIMATES_DIR + File.separator + PRIMATES_JSP; } + + /** + * Method returns images directory path. + * @param portalName + * @return + */ + static String getImgCmPath(String portalName) { + return PRIMATES_DIR + File.separator +MUGSHOTS_DIR; + } + + /** + * Method returns path to Bios directory. + * @param portalName + * @return + */ + static String getBiosCmPath(String portalName) { + return portalName+File.separator+PRIMATES_DIR + File.separator +BIOS_DIR; + } static synchronized PrimatesDescriptor getDesc(final String portalName) { PrimatesDescriptor desc = (PrimatesDescriptor) ForgeHelper Modified: branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jboss-app.xml =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jboss-app.xml 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jboss-app.xml 2005-10-11 18:46:38 UTC (rev 1371) @@ -1,3 +1,3 @@ <jboss-app> - <app-name>whuffie</app-name> + <app-name>primates</app-name> </jboss-app> Modified: branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jboss-portlet.xml =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jboss-portlet.xml 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jboss-portlet.xml 2005-10-11 18:46:38 UTC (rev 1371) @@ -1,6 +1,6 @@ <portlet-app> <portlet> - <portlet-name>WhuffiePortlet</portlet-name> + <portlet-name>PrimatesPortlet</portlet-name> <security></security> </portlet> </portlet-app> Added: branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jsp/primates.jsp =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jsp/primates.jsp 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/jsp/primates.jsp 2005-10-11 18:46:38 UTC (rev 1371) @@ -0,0 +1,36 @@ +<!-- + JBoss, the OpenSource J2EE webOS + Distributable under LGPL license. + See terms of license at gnu.org. + --> +<%@ page language="java" extends="org.jboss.portal.core.servlet.jsp.PortalJsp" %> + <%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="n" %> + <%@ taglib uri="/WEB-INF/tld/forge.tld" prefix="forge" %> + <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> + <%@ page isELIgnored ="false" %> + <portlet:defineObjects/> + + <h1>Random Primate</h1> +<div id="blog-entry"> + +<n:iterate ctx="primate"> + <!-- iterated menuentry --> + <div class="item"> + <img src="<forge:imagePath src="${n:out('primate.mugshot')}" />" border="0" /> + <h3>name:</h3> ${n:out('primate.name')} + <h3>title:</h3> ${n:out('primate.title')} + <h3>bio:</h3> ${n:out('primate.bio')} + <h3>status:</h3> ${n:out("primate.status")} + <h3>country:</h3> ${n:out("primate.country")} + <n:iterate ctx="projects"> + <h3>project:</h3> ${n:out("primate.projects.project")} + <BR /> + </n:iterate> + <hr> + </div> +</n:iterate> + + +</div> + + Modified: branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/portlet-instances.xml =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/portlet-instances.xml 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/portlet-instances.xml 2005-10-11 18:46:38 UTC (rev 1371) @@ -1,7 +1,7 @@ <?xml version="1.0" standalone="yes"?> <instances> <instance> - <instance-name>WhuffiePortletInstance</instance-name> - <component-ref>WhuffiePortlet</component-ref> + <instance-name>PrimatesPortletInstance</instance-name> + <component-ref>PrimatesPortlet</component-ref> </instance> </instances> Modified: branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/portlet.xml =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/portlet.xml 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/portlet.xml 2005-10-11 18:46:38 UTC (rev 1371) @@ -3,15 +3,15 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd /opt/SUNWps/dtd/portlet.xsd" version="1.0"> <portlet> - <portlet-name>WhuffiePortlet</portlet-name> - <portlet-class>org.jbosslabs.portlets.whuffie.WhuffiePortlet</portlet-class> + <portlet-name>PrimatesPortlet</portlet-name> + <portlet-class>org.jbosslabs.portlets.primates.PrimatesPortlet</portlet-class> <supported-locale>en</supported-locale> <supports> <mime-type>text/html</mime-type> <portlet-mode>VIEW</portlet-mode> </supports> <portlet-info> - <title>JBoss Whuffie Portlet</title> + <title>JBoss Primates Portlet</title> </portlet-info> </portlet> </portlet-app> Modified: branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/web.xml =================================================================== --- branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/web.xml 2005-10-11 15:59:18 UTC (rev 1370) +++ branches/forge/rysiek/portal-extensions/primates/src/web/WEB-INF/web.xml 2005-10-11 18:46:38 UTC (rev 1371) @@ -3,4 +3,14 @@ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> + <filter> + <filter-name>filesFromRepoFilter</filter-name> + <filter-class>org.jboss.forge.common.FilesFromRepoFilter</filter-class> + </filter> + + <filter-mapping> + <filter-name>filesFromRepoFilter</filter-name> + <url-pattern>/repo-access/*</url-pattern> + <dispatcher>INCLUDE</dispatcher> + </filter-mapping> </web-app> |