You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by sh...@apache.org on 2007/01/23 13:41:39 UTC

svn commit: r499006 [2/2] - in /portals/jetspeed-2/trunk: ./ applications/j2-admin/ applications/j2-admin/src/java/org/apache/jetspeed/portlets/rpad/ applications/j2-admin/src/java/org/apache/jetspeed/portlets/rpad/portlet/ applications/j2-admin/src/ja...

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/rpad/simple/SimpleRepository.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/rpad/simple/SimpleRepository.java?view=auto&rev=499006
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/rpad/simple/SimpleRepository.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/rpad/simple/SimpleRepository.java Tue Jan 23 04:41:36 2007
@@ -0,0 +1,226 @@
+/*
+ * Copyright 2007 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.rpad.simple;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.apache.jetspeed.portlets.rpad.PortletApplication;
+import org.apache.jetspeed.portlets.rpad.Repository;
+import org.xml.sax.InputSource;
+
+public class SimpleRepository implements Repository
+{
+    /**
+     * Logger for this class
+     */
+    private static final Log log = LogFactory.getLog(SimpleRepository.class);
+
+    private String name;
+
+    private String configPath;
+
+    private List portletApplications;
+
+    private boolean available;
+
+    public SimpleRepository()
+    {
+        available = false;
+    }
+
+    public void init()
+    {
+        if (log.isDebugEnabled())
+        {
+            log.debug("Loading a repository: " + configPath);
+        }
+
+        if (configPath == null)
+        {
+            throw new IllegalStateException("The configuration path is null.");
+        }
+        //load config
+        try
+        {
+            InputSource inputSource = getInputSource(configPath);
+            if (inputSource == null)
+            {
+                log.error("Failed to load: " + configPath);
+                return;
+            }
+            SAXParserFactory spfactory = SAXParserFactory.newInstance();
+            SAXParser parser = spfactory.newSAXParser();
+            SimpleConfigHandler repoConfigHandler = new SimpleConfigHandler();
+            parser.parse(inputSource, repoConfigHandler);
+            portletApplications = repoConfigHandler.getPortletApplications();
+            if (portletApplications == null)
+            {
+                if (log.isDebugEnabled())
+                {
+                    log.debug("No portlet application.");
+                }
+                portletApplications = new ArrayList();
+            }
+            available = true;
+        }
+        catch (Exception e)
+        {
+            log.error("Could not load a repository.", e);
+            portletApplications = new ArrayList();
+            available = false;
+        }
+    }
+
+    protected InputSource getInputSource(String path)
+    {
+        if (path.startsWith("http:") || path.startsWith("https:"))
+        {
+            try
+            {
+                URL url = new URL(path);
+                return new InputSource(url.openStream());
+            }
+            catch (MalformedURLException e)
+            {
+                log.error("Wrong url: " + path, e);
+            }
+            catch (IOException e)
+            {
+                log.error("Could not load " + path, e);
+            }
+        }
+        else if (path.startsWith("file:"))
+        {
+            try
+            {
+                return new InputSource(new FileInputStream(new File(path
+                        .substring(5))));
+            }
+            catch (FileNotFoundException e)
+            {
+                log.error("Could not load " + path, e);
+            }
+        }
+        return null;
+    }
+
+    public PortletApplication getPortletApplication(String groupId,
+            String artifactId, String version, String packaging)
+    {
+        if (groupId != null && artifactId != null && version != null
+                && packaging != null)
+        {
+            Iterator ite = portletApplications.iterator();
+            while (ite.hasNext())
+            {
+                PortletApplication portletApp = (PortletApplication) ite.next();
+                if (groupId.equals(portletApp.getGroupId())
+                        && artifactId.equals(portletApp.getArtifactId())
+                        && version.equals(portletApp.getVersion())
+                        && packaging.equals(portletApp.getPackaging()))
+                {
+                    return portletApp;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * @return the configPath
+     */
+    public String getConfigPath()
+    {
+        return configPath;
+    }
+
+    /**
+     * @param configPath the configPath to set
+     */
+    public void setConfigPath(String configPath)
+    {
+        this.configPath = configPath;
+    }
+
+    /**
+     * @return the portletApplications
+     */
+    public List getPortletApplications()
+    {
+        return portletApplications;
+    }
+
+    /**
+     * @return the name
+     */
+    public String getName()
+    {
+        return name;
+    }
+
+    /**
+     * @param name the name to set
+     */
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    public String toXMLString()
+    {
+        return "  <repository>\n" //
+                + "    <name>"
+                + getName()
+                + "</name>\n" //
+                + "    <class name=\""
+                + "org.apache.jetspeed.portlets.rpad.simple.SimpleRepository"
+                + "\"/>\n" //
+                + "    <property name=\"configPath\">"
+                + getConfigPath()
+                + "</property>\n" //
+                + "  </repository>\n";
+    }
+
+    /**
+     * @return the available
+     */
+    public boolean isAvailable()
+    {
+        return available;
+    }
+
+    /**
+     * @param available the available to set
+     */
+    public void setAvailable(boolean available)
+    {
+        this.available = available;
+    }
+}

Propchange: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/rpad/simple/SimpleRepository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/faces-config.xml?view=diff&rev=499006&r1=499005&r2=499006
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/faces-config.xml (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/faces-config.xml Tue Jan 23 04:41:36 2007
@@ -28,6 +28,7 @@
       <supported-locale>de</supported-locale>
       <supported-locale>fr</supported-locale>
       <supported-locale>es</supported-locale>
+      <supported-locale>ja</supported-locale>
     </locale-config>
   </application>
 
@@ -47,6 +48,31 @@
     </navigation-case>
   </navigation-rule>
 
+  <!-- RPAD -->
+  <navigation-rule>
+    <from-view-id>*</from-view-id>
+    <navigation-case>
+      <from-outcome>deployer_displayPortlets</from-outcome>
+      <to-view-id>/WEB-INF/view/deployer/displayPortlets.jsp</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+  
+  <navigation-rule>
+    <from-view-id>*</from-view-id>
+    <navigation-case>
+      <from-outcome>deployer_displayRepositories</from-outcome>
+      <to-view-id>/WEB-INF/view/deployer/displayRepositories.jsp</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+  
+  <navigation-rule>
+    <from-view-id>*</from-view-id>
+    <navigation-case>
+      <from-outcome>deployer_editRepository</from-outcome>
+      <to-view-id>/WEB-INF/view/deployer/editRepository.jsp</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+
   <managed-bean>
     <managed-bean-name>tableData</managed-bean-name>
     <managed-bean-class>org.apache.jetspeed.portlets.site.beans.TableData</managed-bean-class>
@@ -82,6 +108,35 @@
     <managed-bean-name>criterion</managed-bean-name>
     <managed-bean-class>org.apache.jetspeed.portlets.profiler.ProfileCriterionForm</managed-bean-class>
     <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+
+  <!-- RPAD -->
+  <managed-bean>
+    <managed-bean-name>deployer_displayPortlets</managed-bean-name>
+    <managed-bean-class>org.apache.jetspeed.portlets.rpad.portlet.web.deployer.DisplayPortletsPage</managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+    <managed-property>
+      <property-name>portletDeployer</property-name>
+      <value>#{portletDeployer}</value>
+    </managed-property>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>deployer_displayRepositories</managed-bean-name>
+    <managed-bean-class>org.apache.jetspeed.portlets.rpad.portlet.web.deployer.DisplayRepositoriesPage</managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>deployer_editRepository</managed-bean-name>
+    <managed-bean-class>org.apache.jetspeed.portlets.rpad.portlet.web.deployer.EditRepositoryPage</managed-bean-class>
+    <managed-bean-scope>request</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>portletDeployer</managed-bean-name>
+    <managed-bean-class>org.apache.jetspeed.portlets.rpad.portlet.deployer.impl.JetspeedPortletDeployer</managed-bean-class>
+    <managed-bean-scope>application</managed-bean-scope>
   </managed-bean>
 
 </faces-config>

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml?view=diff&rev=499006&r1=499005&r2=499006
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml Tue Jan 23 04:41:36 2007
@@ -1477,6 +1477,42 @@
         </preference>                        
     </portlet-preferences>
 </portlet>    
-                 
+
+  <portlet>
+    <description>Remote Portlet Application Deployer for Jetspeed.</description>
+    <portlet-name>RPADPortlet</portlet-name>
+    <display-name>Remote Portlet Application Deployer</display-name>
+    <portlet-class>org.apache.portals.bridges.portletfilter.FilterPortlet</portlet-class>
+    <init-param>
+      <name>portlet-class</name>
+      <value>org.apache.portals.bridges.jsf.FacesPortlet</value>
+    </init-param>
+    <init-param>
+      <name>portlet-filters</name>
+      <value>org.apache.jetspeed.portlets.rpad.portlet.RPADPortletFilter</value>
+    </init-param>
+    <init-param>
+      <name>ViewPage</name>
+      <value>/WEB-INF/view/deployer/displayPortlets.jsp</value>
+    </init-param>
+    <init-param>
+      <name>EditPage</name>
+      <value>/WEB-INF/view/deployer/displayRepositories.jsp</value>
+    </init-param>
+    <supports>
+      <mime-type>text/html</mime-type>
+      <portlet-mode>VIEW</portlet-mode>
+      <portlet-mode>EDIT</portlet-mode>
+    </supports>
+    <supported-locale>en</supported-locale>
+    <supported-locale>ja</supported-locale>
+    <!-- resource-bundle></resource-bundle -->
+    <portlet-info>
+      <title>RPAD</title>
+      <short-title>RPAD</short-title>
+      <keywords>RPAD,Portlet Repository</keywords>
+    </portlet-info>
+  </portlet>
+
 </portlet-app>
 

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/rpad-config.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/rpad-config.xml?view=auto&rev=499006
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/rpad-config.xml (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/rpad-config.xml Tue Jan 23 04:41:36 2007
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright 2007 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<repositories>
+  <repository>
+    <name>PALab</name>
+    <class name="org.apache.jetspeed.portlets.rpad.simple.SimpleRepository"/>
+    <property name="configPath">http://pal.sourceforge.jp/portlet-repository.xml</property>
+  </repository>
+</repositories>

Propchange: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/rpad-config.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayPortlets.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayPortlets.jsp?view=auto&rev=499006
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayPortlets.jsp (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayPortlets.jsp Tue Jan 23 04:41:36 2007
@@ -0,0 +1,117 @@
+<%@ page contentType="text/html; charset=UTF-8"%>
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
+
+<f:view>
+  <h:form>
+
+    <t:div>
+      <h:outputText value="Repository:"/>
+      <h:selectOneMenu value="#{deployer_displayPortlets.repositoryName}">
+        <f:selectItems value="#{deployer_displayPortlets.repositoryNames}"/>
+      </h:selectOneMenu>
+      <h:commandButton value="Select"
+        action="#{deployer_displayPortlets.doSearch}"/>
+      <h:commandButton value="Update Repository"
+        action="#{deployer_displayPortlets.jumpUpdateRepository}" 
+        rendered="false" immediate="true"/>
+      <h:commandButton value="Refresh"
+        action="#{deployer_displayPortlets.doRefresh}" 
+        immediate="true"/>
+    </t:div>
+
+    <t:div rendered="false">
+      <h:outputText value="Search:"/>
+      <h:inputText value="#{deployer_displayPortlets.search}" />
+      <h:commandButton value="Search"
+        action="#{deployer_displayPortlets.doSearch}"/>
+    </t:div>
+
+    <h:messages styleClass="portlet-msg-success" 
+      errorClass="portlet-msg-error" fatalClass="portlet-msg-error"
+      warnClass="portlet-msg-alert" infoClass="portlet-msg-info" />
+
+
+    <t:dataTable id="portletTable" var="portlet"
+      value="#{deployer_displayPortlets.portlets}"
+      headerClass="portlet-section-header"
+      rowClasses="portlet-section-body,portlet-section-alternate"
+      style="width:100%" rows="#{deployer_displayPortlets.pageSize}">
+      <h:column>
+        <f:facet name="header">
+          <h:outputText value="Group ID" />
+        </f:facet>
+        <h:outputText value="#{portlet.groupId}" />
+      </h:column>
+      <h:column>
+        <f:facet name="header">
+          <h:outputText value="Artifact ID" />
+        </f:facet>
+        <h:outputText value="#{portlet.artifactId}" />
+      </h:column>
+      <h:column>
+        <f:facet name="header">
+          <h:outputText value="Name" />
+        </f:facet>
+        <h:outputText value="#{portlet.name}" />
+      </h:column>
+      <h:column>
+        <f:facet name="header">
+          <h:outputText value="Version" />
+        </f:facet>
+        <h:outputText value="#{portlet.version}" />
+      </h:column>
+      <h:column>
+        <f:facet name="header">
+          <h:outputText value="Type" />
+        </f:facet>
+        <h:outputText value="#{portlet.packaging}" />
+      </h:column>
+      <h:column>
+        <f:facet name="header">
+          <h:outputText value="Action" />
+        </f:facet>
+        <h:commandLink action="#{deployer_displayPortlets.doDeploy}"
+          rendered="#{deployer_displayPortlets.deployable}">
+          <h:outputText value="Deploy" />
+        </h:commandLink>
+        <h:outputText value="Deploy" rendered="#{!deployer_displayPortlets.deployable}"/>
+      </h:column>
+    </t:dataTable>
+    <h:panelGrid columns="1" styleClass="portlet-section-footer"
+      style="width:100%">
+      <t:dataScroller for="portletTable" fastStep="10" pageCountVar="pageCount"
+        pageIndexVar="pageIndex" paginator="true" paginatorMaxPages="9">
+        <f:facet name="first">
+          <t:outputText value="First" rendered="#{pageIndex>1}"/>
+        </f:facet>
+        <f:facet name="last">
+          <t:outputText value="Last" rendered="#{pageIndex<pageCount}"/>
+        </f:facet>
+        <f:facet name="previous">
+          <t:outputText value="Previous" rendered="#{pageIndex>1}"/>
+        </f:facet>
+        <f:facet name="next">
+          <t:outputText value="Next" rendered="#{pageIndex<pageCount}"/>
+        </f:facet>
+      </t:dataScroller>
+      <t:dataScroller for="portletTable" rowsCountVar="rowsCount"
+        displayedRowsCountVar="displayedRowsCountVar"
+        firstRowIndexVar="firstRowIndex" lastRowIndexVar="lastRowIndex"
+        pageCountVar="pageCount" immediate="true" pageIndexVar="pageIndex">
+        <h:outputFormat value="{0} found ({4} / {5})" rendered="#{rowsCount!=0}">
+          <f:param value="#{rowsCount}" />
+          <f:param value="#{displayedRowsCountVar}" />
+          <f:param value="#{firstRowIndex}" />
+          <f:param value="#{lastRowIndex}" />
+          <f:param value="#{pageIndex}" />
+          <f:param value="#{pageCount}" />
+        </h:outputFormat>
+        <h:outputText value="No portlet."
+          rendered="#{rowsCount==0}" />
+      </t:dataScroller>
+    </h:panelGrid>
+        
+  </h:form>
+</f:view>

Propchange: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayPortlets.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayRepositories.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayRepositories.jsp?view=auto&rev=499006
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayRepositories.jsp (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayRepositories.jsp Tue Jan 23 04:41:36 2007
@@ -0,0 +1,90 @@
+<%@ page contentType="text/html; charset=UTF-8"%>
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
+
+<f:view>
+  <h:form>
+
+    <t:div>
+      <h:commandButton value="Add Repository"
+        action="#{deployer_displayRepositories.doAddRepository}"/>
+      <h:commandButton value="Reload Repositories"
+        action="#{deployer_displayRepositories.doReloadRepositories}"/>
+      <h:commandButton value="Deploy Portlet"
+        action="#{deployer_displayRepositories.jumpDisplayPortlets}" 
+        rendered="false" immediate="true"/>
+    </t:div>
+
+    <h:messages styleClass="portlet-msg-success" 
+      errorClass="portlet-msg-error" fatalClass="portlet-msg-error"
+      warnClass="portlet-msg-alert" infoClass="portlet-msg-info" />
+
+    <t:dataTable id="repositoryTable" var="repository"
+      value="#{deployer_displayRepositories.repositories}"
+      headerClass="portlet-section-header"
+      rowClasses="portlet-section-body,portlet-section-alternate"
+      style="width:100%" rows="#{deployer_displayRepositories.pageSize}">
+      <h:column>
+        <f:facet name="header">
+          <h:outputText value="Name" />
+        </f:facet>
+        <h:outputText value="#{repository.name}" />
+      </h:column>
+      <h:column>
+        <f:facet name="header">
+          <h:outputText value="State" />
+        </f:facet>
+        <h:outputText value="Active" rendered="#{repository.available}"/>
+        <h:outputText value="Inactive" rendered="#{!repository.available}"/>
+      </h:column>
+      <h:column>
+        <f:facet name="header">
+          <h:outputText value="Action" />
+        </f:facet>
+        <h:panelGrid columns="2">
+          <h:commandLink action="#{deployer_displayRepositories.doEditRepository}">
+            <h:outputText value="Edit" />
+          </h:commandLink>
+          <h:commandLink action="#{deployer_displayRepositories.doDeleteRepository}">
+            <h:outputText value="Delete" />
+          </h:commandLink>
+        </h:panelGrid>
+      </h:column>
+    </t:dataTable>
+    <h:panelGrid columns="1" styleClass="portlet-section-footer"
+      style="width:100%">
+      <t:dataScroller for="repositoryTable" fastStep="10" pageCountVar="pageCount"
+        pageIndexVar="pageIndex" paginator="true" paginatorMaxPages="9">
+        <f:facet name="first">
+          <t:outputText value="First" rendered="#{pageIndex>1}"/>
+        </f:facet>
+        <f:facet name="last">
+          <t:outputText value="Last" rendered="#{pageIndex<pageCount}"/>
+        </f:facet>
+        <f:facet name="previous">
+          <t:outputText value="Previous" rendered="#{pageIndex>1}"/>
+        </f:facet>
+        <f:facet name="next">
+          <t:outputText value="Next" rendered="#{pageIndex<pageCount}"/>
+        </f:facet>
+      </t:dataScroller>
+      <t:dataScroller for="repositoryTable" rowsCountVar="rowsCount"
+        displayedRowsCountVar="displayedRowsCountVar"
+        firstRowIndexVar="firstRowIndex" lastRowIndexVar="lastRowIndex"
+        pageCountVar="pageCount" immediate="true" pageIndexVar="pageIndex">
+        <h:outputFormat value="{0} found ({4} / {5})" rendered="#{rowsCount!=0}">
+          <f:param value="#{rowsCount}" />
+          <f:param value="#{displayedRowsCountVar}" />
+          <f:param value="#{firstRowIndex}" />
+          <f:param value="#{lastRowIndex}" />
+          <f:param value="#{pageIndex}" />
+          <f:param value="#{pageCount}" />
+        </h:outputFormat>
+        <h:outputText value="No portlet."
+          rendered="#{rowsCount==0}" />
+      </t:dataScroller>
+    </h:panelGrid>
+        
+  </h:form>
+</f:view>

Propchange: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/displayRepositories.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/editRepository.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/editRepository.jsp?view=auto&rev=499006
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/editRepository.jsp (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/editRepository.jsp Tue Jan 23 04:41:36 2007
@@ -0,0 +1,48 @@
+<%@ page contentType="text/html; charset=UTF-8"%>
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
+
+<f:view>
+  <h:form>
+
+    <t:div>
+      <h:commandButton value="Back to Repository List"
+        action="#{deployer_editRepository.jumpDisplayRepositories}"/>
+    </t:div>
+
+    <h:messages styleClass="portlet-msg-success" 
+      errorClass="portlet-msg-error" fatalClass="portlet-msg-error"
+      warnClass="portlet-msg-alert" infoClass="portlet-msg-info" />
+
+    <t:div rendered="false">
+      <h:selectOneMenu value="#{deployer_editRepository.repositoryClassName}">
+        <f:selectItems value="#{deployer_editRepository.repositoryClassNames}"/>
+      </h:selectOneMenu>
+    </t:div>
+
+    <t:div>
+      <h:panelGrid columns="2">
+      
+        <h:outputLabel for="name">
+          <h:outputText value="Name:"/>
+        </h:outputLabel>
+        <h:inputText id="name" value="#{deployer_editRepository.name}"/>
+      
+        <h:outputLabel for="path">
+          <h:outputText value="Configuration Path:"/>
+        </h:outputLabel>
+        <h:inputText id="path" value="#{deployer_editRepository.path}"/>
+
+      </h:panelGrid>
+    </t:div>
+
+    <t:div>
+      <h:commandButton action="#{deployer_editRepository.doCreateRepository}" value="Create"
+        rendered="#{deployer_editRepository.newRepository}"/>
+      <h:commandButton action="#{deployer_editRepository.doUpdateRepository}" value="Update"
+        rendered="#{!deployer_editRepository.newRepository}"/>
+    </t:div>
+        
+  </h:form>
+</f:view>

Propchange: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/deployer/editRepository.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: portals/jetspeed-2/trunk/design-docs/src/rpad/RPAD.txt
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/design-docs/src/rpad/RPAD.txt?view=auto&rev=499006
==============================================================================
--- portals/jetspeed-2/trunk/design-docs/src/rpad/RPAD.txt (added)
+++ portals/jetspeed-2/trunk/design-docs/src/rpad/RPAD.txt Tue Jan 23 04:41:36 2007
@@ -0,0 +1,104 @@
+Remote Portlet Application Deployer
+
+Overview
+--------
+
+Remote Portlet Application Deployer(RPAD) deploys a portlet from remote
+portlet repositories into a Portal server, such as Jetspeed2, directly. RPAD
+consists of 2 parts: RPAD API and RPAD Portlet. RPAD API defines the
+programing interface to access to remote portlet repositories. RPAD Portlet
+provides JSR 168 compliant portlet to deploy a target portlet from remote
+repositories.
+
++---------------------------+
+|   Portal Server(J2,...)   |
++---------------------------+
+|       RPAD Portlet        |
++---------------------------+
+|         RPAD API          |
++---------------------------+
+             A Download
+             V Access
++---------------------------+
+| Remote Portlet Repository |
++---------------------------+
+| Portlet | Portlet | ...   |
++---------------------------+
+
+
+Design
+------
+
+        +-----------------------------------+
+        |           RPAD Portlet            |
+        | (RPADPortletFilter + JSF Portlet) |
+        +-----------------------------------+
+                       V Call RPAD API
++---------------------------------------------------+
+|                RepositoryManager                  |
++---------------------------------------------------+
+         V                      V                V
++------------------+ +----------------------+ +-----+
+| SimpleRepository | | WebServiceRepository | | ... |
++------------------+ |        (TBD)         | +-----+
+                     +----------------------+ 
+
+
+Class Description
+-----------------
+
+ RPAD API:
+
+  Class org.apache.jetspeed.portlets.rpad.RepositoryManager
+
+   RepositoryManager manages Repository instances. Portal, such as Jetspeed2,
+   calls methods of this class to access remote portlet repositories.
+
+  Interface org.apache.jetspeed.portlets.rpad.Repository
+
+   RPAD supports a variety of kinds of portlet repositories. A portlet
+   repository needs to implement this interface. Repository manages
+   PortletApplication instances for a remote portlet repository.
+   Portal can access portlet information in a remote portlet repository via
+   this class.
+
+  Class org.apache.jetspeed.portlets.rpad.PortletApplication
+
+   This class has properties of a portlet application, such as a portlet name,
+   url to download war file.
+
+  Class org.apache.jetspeed.portlets.rpad.simple.SimpleRepository
+
+   SimpleRepository is a file-based repository. If a portlet provider puts
+   a repository site descriptor for a remote portlet repository, using
+   SimpleRepository, the provider delivers portlets to a Portal server.
+   The syntax of the repository site descriptor is under discussion with
+   PRP(https://prp.dev.java.net/). We will define it by the first week of 
+   Feb.
+
+ RPAD Portlet:
+
+  The current implementation is JSF-based portlet.
+
+  Class org.apache.jetspeed.portlets.rpad.portlet.RPADPortletFilter
+
+   RPADPortletFilter initializes RepositoryManager instance. 
+
+  Interface org.apache.jetspeed.portlets.rpad.portlet.deployer.PortletDeployer
+
+   RPAD Portlet calls PortletDeployer#deploy(PortletApplication) to deploy
+   the target portlet into your Portal. If you implements PortletDeployer
+   class for your Portal, RPAD works on your Portal.
+
+  Class
+   org.apache.jetspeed.portlets.rpad.portlet.deployer.impl.JetspeedPortletDeployer
+
+    This class is PortletDeployer implementation for Jetspeed2.
+
+TODO
+----
+
+ - Manage a portlet version in J2
+ - Store portlet information to DB, not memory
+ - Move RPAD into under Apache Portals sub-project for other portals to use RPAD
+

Propchange: portals/jetspeed-2/trunk/design-docs/src/rpad/RPAD.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: portals/jetspeed-2/trunk/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/pom.xml?view=diff&rev=499006&r1=499005&r2=499006
==============================================================================
--- portals/jetspeed-2/trunk/pom.xml (original)
+++ portals/jetspeed-2/trunk/pom.xml Tue Jan 23 04:41:36 2007
@@ -188,6 +188,7 @@
         <org.apache.portals.bridges.perl.version>1.0</org.apache.portals.bridges.perl.version>
         <org.apache.portals.bridges.php.version>1.0</org.apache.portals.bridges.php.version>
         <org.apache.portals.bridges.velocity.version>1.0.1-dev</org.apache.portals.bridges.velocity.version>
+        <org.apache.portals.bridges.portletfilter.version>1.0.1-dev</org.apache.portals.bridges.portletfilter.version>
         <oro.version>2.0.7</oro.version>
         <portlet-api.version>1.0</portlet-api.version>
         <regexp.version>1.2</regexp.version>
@@ -889,6 +890,11 @@
                 <groupId>org.apache.portals.bridges</groupId>
                 <artifactId>portals-bridges-jsf</artifactId>
                 <version>${org.apache.portals.bridges.jsf.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.portals.bridges</groupId>
+                <artifactId>portals-bridges-portletfilter</artifactId>
+                <version>${org.apache.portals.bridges.portletfilter.version}</version>
             </dependency>
 
             <!-- Portals Bridges Applications -->

Modified: portals/jetspeed-2/trunk/project.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/project.properties?view=diff&rev=499006&r1=499005&r2=499006
==============================================================================
--- portals/jetspeed-2/trunk/project.properties (original)
+++ portals/jetspeed-2/trunk/project.properties Tue Jan 23 04:41:36 2007
@@ -29,6 +29,7 @@
 portals.bridges.struts.version=1.2.7-1.0
 portals.bridges.jpetstore.version=1.0
 portals.bridges.velocity.version=1.0.1-dev
+portals.bridges.portletfilter.version=1.0.1-dev
 commons.logging.version=1.0.3
 spring.version=2.0
 spring.modules.version=0.6

Modified: portals/jetspeed-2/trunk/src/webapp/WEB-INF/pages/Administrative/folder.metadata
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/WEB-INF/pages/Administrative/folder.metadata?view=diff&rev=499006&r1=499005&r2=499006
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/WEB-INF/pages/Administrative/folder.metadata (original)
+++ portals/jetspeed-2/trunk/src/webapp/WEB-INF/pages/Administrative/folder.metadata Tue Jan 23 04:41:36 2007
@@ -15,6 +15,7 @@
   <document-order>site.psml</document-order>
   <document-order>palm.psml</document-order>
   <document-order>profiler.psml</document-order>
+  <document-order>rpad.psml</document-order>
 
   <menu name="page-navigations">
     <separator>

Added: portals/jetspeed-2/trunk/src/webapp/WEB-INF/pages/Administrative/rpad.psml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/WEB-INF/pages/Administrative/rpad.psml?view=auto&rev=499006
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/WEB-INF/pages/Administrative/rpad.psml (added)
+++ portals/jetspeed-2/trunk/src/webapp/WEB-INF/pages/Administrative/rpad.psml Tue Jan 23 04:41:36 2007
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright 2007 The Apache Software Foundation
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<page id="rpad">
+  <defaults skin="blue" layout-decorator="tigris" portlet-decorator="tigris"/>
+  <title>RPAD</title>
+  <metadata name="short-title" xml:lang="es">RPAD</metadata>
+
+  <fragment id="rpad-layout" type="layout" name="jetspeed-layouts::VelocityOneColumn">
+    <fragment id="rpad-app" type="portlet" name="j2-admin::RPADPortlet">
+      <property name="row" value="0" layout="OneColumn"/>
+      <property name="column" value="0" layout="OneColumn"/>
+    </fragment>
+  </fragment>
+
+</page>



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org