You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by dd...@apache.org on 2005/02/21 01:30:21 UTC
svn commit: r154581 [3/3] - in portals/pluto/trunk/portal: ./
src/java/org/apache/commons/ src/java/org/apache/commons/fileupload/
src/java/org/apache/pluto/portlet/ src/java/org/apache/pluto/portlet/admin/
src/java/org/apache/pluto/portlet/admin/bean/
src/java/org/apache/pluto/portlet/admin/controller/
src/java/org/apache/pluto/portlet/admin/model/
src/java/org/apache/pluto/portlet/admin/services/
src/java/org/apache/pluto/portlet/admin/taglib/
src/java/org/apache/pluto/portlet/admin/util/ src/webapp/
src/webapp/WEB-INF/ src/webapp/WEB-INF/aggregation/ src/webapp/WEB-INF/data/
Added: portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PlutoAdminContext.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PlutoAdminContext.java?view=auto&rev=154581
==============================================================================
--- portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PlutoAdminContext.java (added)
+++ portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PlutoAdminContext.java Sun Feb 20 16:30:14 2005
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2003,2004,2005 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.pluto.portlet.admin.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.pluto.portlet.admin.PlutoAdminException;
+import org.apache.pluto.portlet.admin.PlutoAdminLogger;
+import org.apache.pluto.portlet.admin.PlutoAdminConstants;
+
+/**
+ * A singleton factory that holds methods to get various data on
+ * the Pluto install such as the path to the Pluto home directory
+ * held within properties files. A HashMap cache is used to store
+ * the properties (as a Properties object) when they are first
+ * loaded.
+ *
+ * @author Craig Doremus
+ *
+ */
+public class PlutoAdminContext {
+
+ private static final String CLASS_NAME = "PlutoAdminContext";
+ private static Map _cache = new HashMap();
+ private static PlutoAdminContext _instance = new PlutoAdminContext();
+
+ /**
+ *
+ */
+ private PlutoAdminContext() {
+ }
+
+ public static PlutoAdminContext getInstance(){
+ return _instance;
+ }
+
+ /**
+ * Accessor for the full path to the pageregistry.xml file using
+ * the getPlutoHome() method.
+ *
+ * @return The absolute path to pageregistry.xml
+ * @see #getPlutoHome()
+ */
+ public String getPageRegistryPath() {
+ String path = getPlutoHome() + PlutoAdminConstants.FS + getRelDataDir() + PlutoAdminConstants.FS + getProperties().getProperty("pageregistry-file");
+ return path;
+ }
+
+ /**
+ * Accessor for the full path to the portletentityregistry.xml file using
+ * the getPlutoHome() method.
+ *
+ * @return The absolute path to portletentityregistry.xml
+ * @see #getPlutoHome()
+ */
+ public String getPortletEntityRegistryPath() {
+ String path = getPlutoHome() + PlutoAdminConstants.FS + getRelDataDir() + PlutoAdminConstants.FS + getProperties().getProperty("portletentityregistry-file");
+ return path;
+ }
+
+ /**
+ * Uses properties in pluto-admin.properties to get the
+ * full path to the installed Pluto home directory, which in
+ * Tomcat is Pluto's webapps directory (usually 'pluto').
+ * @return The absolute path to the directory where the Pluto
+ * container is installed.
+ */
+ public String getPlutoHome(){
+ String plutoHome = null;
+ Properties props = getProperties();
+ String plutoContext = props.getProperty("pluto-web-context");
+ plutoHome = getWebappsPath() + PlutoAdminConstants.FS + plutoContext;
+ return plutoHome;
+ }
+
+ /**
+ * Uses properties in pluto-admin.properties to get the
+ * full path to the installed Pluto home directory, which in
+ * Tomcat is Pluto's webapps directory (usually 'pluto').
+ * @return The absolute path to the directory where the Pluto
+ * container is installed.
+ */
+ public String getWebappsPath(){
+ String path = null;
+ Properties props = getProperties();
+// String tomcatHome = props.getProperty("tomcat-home");
+ String tomcatHome = getTomcatHome();
+ path = tomcatHome + "/webapps";
+ return path;
+ }
+
+ /**
+ * Returns the Properties object from a properties file that is in the
+ * classpath. After it's first access, the properties are stored
+ * in a cache.
+ *
+ * @param propFileName Name of the properties file.
+ * @return Properties The filled properties object
+ * @throws IOException If there is a problem loading the properties
+ * from the file
+ * @throws NullPointerException If the InputStream accessing the properties
+ * file is null.
+ */
+ public Properties getProperties(String propFileName){
+ final String METHOD_NAME = "getProperties(propFileName)";
+ Properties props = null;
+ //retreive from cache if available
+ props = (Properties)_cache.get(propFileName);
+ if ( props == null) {
+ //get the properties from prop file
+ InputStream stream = PlutoAdminContext.class.getClassLoader().getResourceAsStream(propFileName);
+ if (stream == null) {
+ String logMsg = "Null InputStream." +
+ " Please make sure the properties file exists and is in the classpath.";
+ NullPointerException e = new NullPointerException(logMsg);
+ PlutoAdminLogger.logError(CLASS_NAME, METHOD_NAME, e);
+ throw e;
+ }
+ props = new Properties();
+ try {
+ props.load(stream);
+ } catch (IOException e) {
+ PlutoAdminLogger.logError(CLASS_NAME, METHOD_NAME, e);
+ throw new PlutoAdminException(e);
+ }
+ //add props to the cache
+ _cache.put(propFileName, props);
+ return props;
+ } else {
+ return props;
+ }
+ }
+
+ public Properties getProperties(){
+ return getProperties(PlutoAdminConstants.PROP_FILENAME);
+ }
+
+ private String getRelDataDir(){
+ String dir = getProperties().getProperty("data-dir-relative-path");
+ return dir;
+ }
+
+ public String getPortletContextsPath() {
+ String path = getPlutoHome() + PlutoAdminConstants.FS + getRelDataDir() + PlutoAdminConstants.FS + getProperties().getProperty("portletcontexts-file");
+ return path;
+ }
+
+ public String getTomcatHome(){
+ final String METHOD_NAME = "getTomcatHome()";
+ Properties props = System.getProperties();
+ String home = (String)props.get("catalina.base");
+ if (home == null) {
+ String msg = "The System Property catalina.home has not been set!";
+ PlutoAdminLogger.logError(CLASS_NAME, METHOD_NAME, msg);
+ throw new PlutoAdminException(msg);
+ }
+ return home;
+ }
+}
Added: portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PortletApplicationEntityImplComparator.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PortletApplicationEntityImplComparator.java?view=auto&rev=154581
==============================================================================
--- portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PortletApplicationEntityImplComparator.java (added)
+++ portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PortletApplicationEntityImplComparator.java Sun Feb 20 16:30:14 2005
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2003,2004,2005 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.pluto.portlet.admin.util;
+
+import java.util.Comparator;
+
+import org.apache.pluto.portalImpl.om.entity.impl.PortletApplicationEntityImpl;
+import org.apache.pluto.portlet.admin.BaseAdminObject;
+
+/**
+ * Implementation of Comparator for comparing Castor
+ * PortletApplicationEntityImp instances.
+ * .
+ *
+ * @author Craig Doremus
+ * @see org.apache.pluto.portalImpl.om.entity.impl.PortletApplicationEntityImpl
+ */
+public class PortletApplicationEntityImplComparator extends BaseAdminObject implements Comparator {
+
+ private static final String CLASS_NAME = "PortletApplicationEntityImplComparator";
+ public PortletApplicationEntityImplComparator() {
+ super(CLASS_NAME);
+ }
+ /**
+ * Implementation method
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ public int compare(Object obj1, Object obj2) {
+ if (!(obj1 instanceof PortletApplicationEntityImpl) || !(obj2 instanceof PortletApplicationEntityImpl)) {
+ throw new ClassCastException("Wrong class type used for PortletApplicationEntityImplComparator");
+ } else {
+ PortletApplicationEntityImpl app1 = (PortletApplicationEntityImpl)obj1;
+ Integer app1ID = new Integer(Integer.parseInt(app1.getCastorId()));
+ PortletApplicationEntityImpl app2 = (PortletApplicationEntityImpl)obj2;
+ Integer app2ID = new Integer(Integer.parseInt(app2.getCastorId()));
+ return app1ID.compareTo(app2ID);
+ }
+ }
+
+}
Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/aggregation/Banner.jsp
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/aggregation/Banner.jsp?view=diff&r1=154580&r2=154581
==============================================================================
Binary files - no diff available.
Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/data/pageregistry.xml
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/data/pageregistry.xml?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/WEB-INF/data/pageregistry.xml (original)
+++ portals/pluto/trunk/portal/src/webapp/WEB-INF/data/pageregistry.xml Sun Feb 20 16:30:14 2005
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!--
-Copyright 2004 The Apache Software Foundation
+Copyright 2004,2005 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
@@ -44,5 +44,33 @@
</fragment>
+
+ <fragment name="adminportletapp" type="page">
+ <navigation>
+ <title>Admin</title>
+ <description>Used for deploying portlets to Pluto</description>
+ </navigation>
+
+ <fragment name="row" type="row">
+
+ <fragment name="col1" type="column">
+
+ <fragment name="p1" type="portlet">
+ <property name="portlet" value="5.0"/>
+ </fragment>
+
+ <fragment name="p2" type="portlet">
+ <property name="portlet" value="5.1"/>
+ </fragment>
+
+ <fragment name="p3" type="portlet">
+ <property name="portlet" value="5.2"/>
+ </fragment>
+
+ </fragment>
+
+ </fragment>
+
+ </fragment>
</portal>
Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletcontexts.txt
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletcontexts.txt?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletcontexts.txt (original)
+++ portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletcontexts.txt Sun Feb 20 16:30:14 2005
@@ -1 +1,2 @@
-/testsuite
\ No newline at end of file
+/testsuite
+/pluto
Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletentityregistry.xml
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletentityregistry.xml?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletentityregistry.xml (original)
+++ portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletentityregistry.xml Sun Feb 20 16:30:14 2005
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0"?>
<!--
-Copyright 2004 The Apache Software Foundation
+Copyright 2004,2005 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
@@ -21,10 +21,21 @@
<portlet id="1">
<definition-id>testsuite.TestPortlet1</definition-id>
<preferences>
+ <pref-name>TEST</pref-name>
+ <pref-value>TEST_VALUE</pref-value>
+ <pref-value>ANOTHER</pref-value>
+ <read-only>false</read-only>
+ </preferences>
+ <preferences>
<pref-name>TestName4</pref-name>
<pref-value>TestValue4</pref-value>
<read-only>true</read-only>
</preferences>
+ <preferences>
+ <pref-name>org.apache.pluto.testsuite.BOGUS_KEY</pref-name>
+ <pref-value>notTheOriginal</pref-value>
+ <read-only>false</read-only>
+ </preferences>
</portlet>
</application>
<application id="4">
@@ -36,6 +47,18 @@
<pref-value>TestValue4</pref-value>
<read-only>true</read-only>
</preferences>
+ </portlet>
+ </application>
+ <application id="5">
+ <definition-id>pluto</definition-id>
+ <portlet id="0">
+ <definition-id>pluto.deploywar</definition-id>
+ </portlet>
+ <portlet id="1">
+ <definition-id>pluto.portletentityregistry</definition-id>
+ </portlet>
+ <portlet id="2">
+ <definition-id>pluto.pageregistry</definition-id>
</portlet>
</application>
</portlet-entity-registry>
Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/web.xml?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/WEB-INF/web.xml (original)
+++ portals/pluto/trunk/portal/src/webapp/WEB-INF/web.xml Sun Feb 20 16:30:14 2005
@@ -41,7 +41,52 @@
<description>Test servlet for TCK Tests</description>
<servlet-class>org.apache.pluto.portalImpl.servlet.TCKdriver</servlet-class>
</servlet>
-
+ <servlet>
+ <servlet-name>portletentityregistry</servlet-name>
+ <display-name>portletentityregistry Wrapper</display-name>
+ <description>Automated generated Portlet Wrapper</description>
+ <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
+ <init-param>
+ <param-name>portlet-class</param-name>
+ <param-value>org.apache.pluto.portlet.admin.controller.PortletEntityRegistryPortlet</param-value>
+ </init-param>
+ <init-param>
+ <param-name>portlet-guid</param-name>
+ <param-value>pluto.portletentityregistry</param-value>
+ </init-param>
+ </servlet>
+ <servlet>
+ <servlet-name>pageregistry</servlet-name>
+ <display-name>pageregistry Wrapper</display-name>
+ <description>Automated generated Portlet Wrapper</description>
+ <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
+ <init-param>
+ <param-name>portlet-class</param-name>
+ <param-value>org.apache.pluto.portlet.admin.controller.PageRegistryPortlet</param-value>
+ </init-param>
+ <init-param>
+ <param-name>portlet-guid</param-name>
+ <param-value>pluto.pageregistry</param-value>
+ </init-param>
+ </servlet>
+ <servlet>
+ <servlet-name>deploywar</servlet-name>
+ <display-name>deploywar Wrapper</display-name>
+ <description>Automated generated Portlet Wrapper</description>
+ <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
+ <init-param>
+ <param-name>portlet-class</param-name>
+ <param-value>org.apache.pluto.portlet.admin.controller.DeployWarPortlet</param-value>
+ </init-param>
+ <init-param>
+ <param-name>portlet-guid</param-name>
+ <param-value>pluto.deploywar</param-value>
+ </init-param>
+ </servlet>
+
+ <!-- ======================= -->
+ <!-- Portal Driver Servlets -->
+ <!-- ======================= -->
<servlet-mapping>
<servlet-name>pluto</servlet-name>
<url-pattern>/portal/*</url-pattern>
@@ -55,18 +100,28 @@
<url-pattern>/tck/*</url-pattern>
</servlet-mapping>
- <security-constraint>
- <web-resource-collection>
- <web-resource-name></web-resource-name>
- <url-pattern>/login_success.jsp</url-pattern>
- <http-method>GET</http-method>
- <http-method>POST</http-method>
- <http-method>PUT</http-method>
- </web-resource-collection>
- <auth-constraint>
- <role-name>tomcat</role-name>
- </auth-constraint>
- </security-constraint>
+ <!-- ======================= -->
+ <!-- Administrative Portlets -->
+ <!-- ======================= -->
+ <servlet-mapping>
+ <servlet-name>deploywar</servlet-name>
+ <url-pattern>/deploywar/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>portletentityregistry</servlet-name>
+ <url-pattern>/portletentityregistry/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>pageregistry</servlet-name>
+ <url-pattern>/pageregistry/*</url-pattern>
+ </servlet-mapping>
+
+ <taglib>
+ <taglib-uri>http://portals.apache.org/pluto/admin</taglib-uri>
+ <taglib-location>/WEB-INF/pluto-admin.tld</taglib-location>
+ </taglib>
<security-constraint>
<web-resource-collection>
Modified: portals/pluto/trunk/portal/src/webapp/portlet-spec-1.0.css
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/portlet-spec-1.0.css?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/portlet-spec-1.0.css (original)
+++ portals/pluto/trunk/portal/src/webapp/portlet-spec-1.0.css Sun Feb 20 16:30:14 2005
@@ -1,5 +1,5 @@
/*
-Copyright 2004 The Apache Software Foundation
+Copyright 2004,2005 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
@@ -45,12 +45,20 @@
/* Font attributes for the "normal" fragment font. Used for the display of non-accentuated information.
Example: Normal Text */
.portlet-font {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ font-size: 10pt;
+ color:black;
}
/* Font attributes similar to the portlet-font but the color is lighter. Example: Dim Text */
.portlet-font-dim {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ font-size: 10pt;
+ color:lightgrey;
}
/*****************************************************************************************
@@ -60,43 +68,72 @@
******************************************************************************************/
/* Status of the current operation. Example: Progress: 80% */
.portlet-msg-status {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-size:10pt;
+ color:black;
}
/* Help messages, general additional information, etc. Example: Info about */
.portlet-msg-info {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-size:10pt;
+ color:blue;
}
/* Error messages.
Example: Portlet not available*/
.portlet-msg-error {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-size:8pt;
+ color:red;
}
/* Warning messages.
Example: Timeout occurred, try again later */
.portlet-msg-alert {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-size:10pt;
+ color:yellow;
}
/* Verification of the successful completion of a task. Example: Operation completed successfully */
.portlet-msg-success {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-size:10pt;
+ color:green;
}
/*****************************************************************************************
PLT.C.4 Sections
-Section style definitions affect the rendering of markup sections such as table, div and 5
+Section style definitions affect the rendering of markup sections such as table, div and
span (alignment, borders, background color, etc) as well as their text attributes.
******************************************************************************************/
/* Table or section header */
.portlet-section-header {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-size: 16pt;
+ margin-top: 0;
+ margin-bottom: 1em;
}
/* Normal text in a table cell */
.portlet-section-body {
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ font-size: 12pt;
}
@@ -112,7 +149,10 @@
/* Text of a subheading */
.portlet-section-subheader {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-size: 12pt;
}
/* Table or section footnote */
@@ -133,17 +173,29 @@
******************************************************************************************/
/* Text used for the descriptive label of the whole form (not the labels for fields). */
.portlet-form-label {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-size: 12pt;
+ color: black;
}
/* Text of the user-input in an input field. */
.portlet-form-input-field {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ font-size: 10pt;
+ color: black;
}
/* Text on a button */
.portlet-form-button {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ font-size: 12pt;
+ color: black;
}
/* Text that appears beside a context dependent action icon. */
@@ -158,7 +210,11 @@
/* Text for a separator of fields (e.g. checkboxes, etc.) */
.portlet-form-field-label {
-
+ font-family: Arial,Helvetica,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-size: 10pt;
+ color: black;
}
/* Text for a field (not input field, e.g. checkboxes, etc) */