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 ta...@apache.org on 2008/10/29 00:15:58 UTC
svn commit: r708719 - in
/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade:
components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/
components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/registration/
compo...
Author: taylor
Date: Tue Oct 28 16:15:57 2008
New Revision: 708719
URL: http://svn.apache.org/viewvc?rev=708719&view=rev
Log:
https://issues.apache.org/jira/browse/JS2-871
upgrading portlet/web descriptor processing
Removed:
portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/registration/RegistrationTool.java
Modified:
portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java
portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/util/descriptor/PortletApplicationWar.java
portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorServiceImpl.java
portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java
portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-api/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorService.java
portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml
portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/deployment.xml
Modified: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java?rev=708719&r1=708718&r2=708719&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java (original)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java Tue Oct 28 16:15:57 2008
@@ -30,10 +30,13 @@
import org.apache.jetspeed.components.portletentity.PortletEntityNotDeletedException;
import org.apache.jetspeed.components.portletregistry.PortletRegistry;
import org.apache.jetspeed.components.portletregistry.RegistryException;
+import org.apache.jetspeed.container.PortletEntity;
import org.apache.jetspeed.container.window.PortletWindowAccessor;
+import org.apache.jetspeed.descriptor.ExtendedDescriptorService;
import org.apache.jetspeed.factory.PortletFactory;
-import org.apache.jetspeed.om.servlet.WebApplicationDefinition;
import org.apache.jetspeed.om.portlet.PortletApplication;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.jetspeed.om.servlet.WebApplicationDefinition;
import org.apache.jetspeed.search.SearchEngine;
import org.apache.jetspeed.security.JetspeedPermission;
import org.apache.jetspeed.security.PermissionManager;
@@ -44,9 +47,6 @@
import org.apache.jetspeed.util.FileSystemHelper;
import org.apache.jetspeed.util.MultiFileChecksumHelper;
import org.apache.jetspeed.util.descriptor.PortletApplicationWar;
-import org.apache.jetspeed.container.PortletEntity;
-import org.apache.jetspeed.om.portlet.PortletDefinition;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
/**
* PortletApplicationManager
@@ -79,7 +79,7 @@
protected boolean started;
protected String appRoot;
protected NodeManager nodeManager;
- protected PortletAppDescriptorService descriptorService;
+ protected ExtendedDescriptorService descriptorService;
/**
* Creates a new PortletApplicationManager object.
@@ -88,7 +88,7 @@
PortletEntityAccessComponent entityAccess, PortletWindowAccessor windowAccess,
PermissionManager permissionManager, SearchEngine searchEngine,
RoleManager roleManager, List<String> permissionRoles, NodeManager nodeManager, String appRoot,
- PortletAppDescriptorService descriptorService)
+ ExtendedDescriptorService descriptorService)
{
this.portletFactory = portletFactory;
this.registry = registry;
@@ -300,12 +300,9 @@
try
{
// load the web.xml
- log.info("Loading web.xml...." + paName);
- WebApplicationDefinition wa = paWar.createWebApp();
- paWar.validate();
-
- log.info("Loading portlet.xml...." + paName);
- pa = paWar.createPortletApp(paClassLoader, wa, paType);
+ log.info("Loading portlet.xml and web.xml...." + paName);
+ pa = paWar.createPortletApp(paClassLoader);
+ WebApplicationDefinition wa = paWar.getWebApp();
if (revision > 0)
{
pa.setRevision(revision);
@@ -639,20 +636,6 @@
}
throw new RegistryException(msg);
}
- finally
- {
- if (paWar != null)
- {
- try
- {
- paWar.close();
- }
- catch (IOException e)
- {
- log.error("Failed to close PA WAR for " + contextName, e);
- }
- }
- }
}
protected void stopPA(String contextName, int paType)
Modified: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java?rev=708719&r1=708718&r2=708719&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java (original)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java Tue Oct 28 16:15:57 2008
@@ -27,6 +27,7 @@
import org.apache.jetspeed.components.portletregistry.PortletRegistry;
import org.apache.jetspeed.components.portletregistry.RegistryException;
import org.apache.jetspeed.container.window.PortletWindowAccessor;
+import org.apache.jetspeed.descriptor.ExtendedDescriptorService;
import org.apache.jetspeed.factory.PortletFactory;
import org.apache.jetspeed.om.portlet.LocalizedField;
import org.apache.jetspeed.om.portlet.PortletApplication;
@@ -62,10 +63,10 @@
public VersionedPortletApplicationManager(PortletFactory portletFactory, PortletRegistry registry,
PortletEntityAccessComponent entityAccess, PortletWindowAccessor windowAccess,
PermissionManager permissionManager, SearchEngine searchEngine, RoleManager roleManager,
- List permissionRoles, /* node manager, */ String appRoot)
+ List<String> permissionRoles, /* node manager, */ String appRoot, ExtendedDescriptorService descriptorService)
{
super(portletFactory, registry, entityAccess, windowAccess, permissionManager,
- searchEngine, roleManager, permissionRoles, null, appRoot);
+ searchEngine, roleManager, permissionRoles, null, appRoot, descriptorService);
}
@@ -92,7 +93,7 @@
PortletApplicationWar paWar = null;
try
{
- paWar = new PortletApplicationWar(warStruct, contextName, contextPath, checksum);
+ paWar = new PortletApplicationWar(warStruct, contextName, contextPath, checksum, this.descriptorService);
try
{
if (paClassLoader == null)
@@ -112,7 +113,7 @@
//register = false;
}
- PortletApplication regPA = registry.getPortletApplication(contextName);
+ PortletApplication regPA = registry.getPortletApplication(contextName);
PortletApplication newPA = paWar.createPortletApp();
if (regPA == null)
{
Modified: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/util/descriptor/PortletApplicationWar.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/util/descriptor/PortletApplicationWar.java?rev=708719&r1=708718&r2=708719&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/util/descriptor/PortletApplicationWar.java (original)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-portal/src/main/java/org/apache/jetspeed/util/descriptor/PortletApplicationWar.java Tue Oct 28 16:15:57 2008
@@ -16,47 +16,32 @@
*/
package org.apache.jetspeed.util.descriptor;
-import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.jetspeed.Jetspeed;
import org.apache.jetspeed.descriptor.ExtendedDescriptorService;
import org.apache.jetspeed.om.portlet.PortletApplication;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
import org.apache.jetspeed.om.servlet.WebApplicationDefinition;
-import org.apache.jetspeed.tools.deploy.JetspeedWebApplicationRewriter;
-import org.apache.jetspeed.tools.deploy.JetspeedWebApplicationRewriterFactory;
import org.apache.jetspeed.tools.pamanager.PortletApplicationException;
import org.apache.jetspeed.util.DirectoryHelper;
import org.apache.jetspeed.util.FileSystemHelper;
import org.apache.jetspeed.util.MultiFileChecksumHelper;
import org.apache.pluto.om.portlet.SecurityRoleRef;
-import org.apache.pluto.om.portlet.PortletDefinition;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
/**
* <p>
@@ -97,10 +82,10 @@
protected String paName;
protected String webAppContextRoot;
protected FileSystemHelper warStruct;
+
private WebApplicationDefinition webApp;
private PortletApplication portletApp;
private long paChecksum;
- protected final List openedResources;
protected ExtendedDescriptorService descriptorService;
protected static final String[] ELEMENTS_BEFORE_SERVLET = new String[]{"icon", "display-name", "description",
@@ -130,7 +115,6 @@
this.paName = paName;
this.webAppContextRoot = webAppContextRoot;
- this.openedResources = new ArrayList();
this.warStruct = warStruct;
this.paChecksum = paChecksum;
this.descriptorService = descriptorService;
@@ -184,21 +168,28 @@
*/
public WebApplicationDefinition createWebApp() throws PortletApplicationException, IOException
{
- Reader webXmlReader = getReader(WEB_XML_PATH);
+ InputStream stream = getInputStream(WEB_XML_PATH);
try
{
- WebApplicationDescriptor webAppDescriptor = new WebApplicationDescriptor(webXmlReader, webAppContextRoot);
- webApp = webAppDescriptor.createWebApplication();
- return webApp;
+// WebApplicationDescriptor webAppDescriptor = new WebApplica dtionDescriptor(webXmlReader, webAppContextRoot);
+// webApp = webAppDescriptor.createWebApplication();
+// return webApp;
+// JetspeedWebApplicationRewriterFactory rewriterFactory = new JetspeedWebApplicationRewriterFactory();
+// JetspeedWebApplicationRewriter rewriter = rewriterFactory.getInstance(doc);
+// rewriter.getSecurityRoles();
+ return descriptorService.readServletDescriptor(stream);
+ }
+ catch (Exception e)
+ {
+ throw new PortletApplicationException("Failed to read web.xml descriptor: " + e);
}
-
finally
{
try
{
- if (webXmlReader != null)
+ if (stream != null)
{
- webXmlReader.close();
+ stream.close();
}
}
catch (IOException e1)
@@ -206,6 +197,7 @@
e1.printStackTrace();
}
}
+
}
@@ -222,47 +214,27 @@
* @throws IOException
* @see org.apache.jetspeed.uitl.descriptor.PortletApplicationDescriptor
*/
- public PortletApplication createPortletApp(ClassLoader classLoader, WebApplicationDefinition wa, int paType) throws PortletApplicationException, IOException
+ public PortletApplication createPortletApp(ClassLoader classLoader) throws PortletApplicationException, IOException
{
- InputStream portletXmlStream = getInputStream(PORTLET_XML_PATH);
+ InputStream portletXmlStream = getInputStream(PORTLET_XML_PATH);
+ InputStream extStream = null;
try
{
- PortletApplication pa = this.descriptorService.read(portletXmlStream);
-// PortletApplicationDescriptor paDescriptor = new PortletApplicationDescriptor(portletXmlReader, paName);
-// portletApp = paDescriptor.createPortletApplication(classLoader);
- // validate(portletApplication);
- Reader extMetaDataXml = null;
- try
- {
- extMetaDataXml = getReader(EXTENDED_PORTLET_XML_PATH);
- if (extMetaDataXml != null)
- {
- ExtendedPortletMetadata extMetaData = new ExtendedPortletMetadata(extMetaDataXml, portletApp);
- extMetaData.load();
- }
- }
- catch (IOException e)
- {
- if ( e instanceof FileNotFoundException )
- {
- log.info("No extended metadata found.");
- }
- else
- {
- throw new PortletApplicationException("Failed to load existing metadata.",e);
- }
- }
- catch (MetaDataException e)
- {
- throw new PortletApplicationException("Failed to load existing metadata.", e);
- }
- finally
+ extStream = getInputStream(EXTENDED_PORTLET_XML_PATH);
+ }
+ catch (FileNotFoundException e)
+ {
+ // no problem, file doesn't exist
+ }
+ try
+ {
+ portletApp = descriptorService.read(portletXmlStream);
+ if (extStream != null)
{
- if (null != extMetaDataXml)
- {
- extMetaDataXml.close();
- }
+ descriptorService.readExtended(extStream, portletApp);
}
+ webApp = createWebApp();
+ validate();
portletApp.setChecksum(paChecksum);
return portletApp;
}
@@ -272,6 +244,10 @@
{
portletXmlStream.close();
}
+ if (null != extStream)
+ {
+ extStream.close();
+ }
}
}
@@ -281,62 +257,7 @@
return createPortletApp(this.getClass().getClassLoader());
}
- /**
- *
- * <p>
- * getReader
- * </p>
- * Returns a <code>java.io.Reader</code> to a resource within this WAR's
- * structure.
- *
- * @param path
- * realtive to an object within this WAR's file structure
- * @return java.io.Reader to the file within the WAR
- * @throws IOException
- * if the path does not exist or there was a problem reading the
- * WAR.
- *
- */
- protected Reader getReader( String path ) throws IOException
- {
- BufferedInputStream is = new BufferedInputStream(getInputStream(path));
-
- String enc = "UTF-8";
- try
- {
- is.mark(MAX_BUFFER_SIZE);
- byte[] buf = new byte[MAX_BUFFER_SIZE];
- int size = is.read(buf, 0, MAX_BUFFER_SIZE);
- if (size > 0)
- {
- String key = "encoding=\"";
- String data = new String(buf, 0, size, "US-ASCII");
- int lb = data.indexOf("\n");
- if (lb > 0)
- {
- data = data.substring(0, lb);
- }
- int off = data.indexOf(key);
- if (off > 0)
- {
- enc = data.substring(off + key.length(), data.indexOf('"', off + key.length()));
- }
- }
- }
- catch (UnsupportedEncodingException e)
- {
- log.warn("Unsupported encoding.", e);
- }
- catch (IOException e)
- {
- log.warn("Unsupported encoding.", e);
- }
-
- //Reset the bytes read
- is.reset();
- return new InputStreamReader(is, enc);
- }
-
+
/**
*
* <p>
@@ -362,7 +283,6 @@
}
FileInputStream fileInputStream = new FileInputStream(child);
- openedResources.add(fileInputStream);
return fileInputStream;
}
@@ -390,7 +310,6 @@
throw new FileNotFoundException("Unable to locate file or path " + child);
}
FileOutputStream fileOutputStream = new FileOutputStream(child);
- openedResources.add(fileOutputStream);
return fileOutputStream;
}
@@ -483,23 +402,18 @@
"createWebApp() and createPortletApp() must be called before invoking validate()");
}
- SecurityRoleSet roles = webApp.getSecurityRoles();
- Collection portlets = portletApp.getPortletDefinitions();
- Iterator portletIterator = portlets.iterator();
- while (portletIterator.hasNext())
- {
- PortletDefinition portlet = (PortletDefinition) portletIterator.next();
- SecurityRoleRefSet securityRoleRefs = portlet.getInitSecurityRoleRefSet();
- Iterator roleRefsIterator = securityRoleRefs.iterator();
- while (roleRefsIterator.hasNext())
+ List<String> roles = webApp.getRoles();
+ List<PortletDefinition> portlets = portletApp.getPortlets();
+ for (PortletDefinition portlet : portlets)
+ {
+ for (SecurityRoleRef roleRef : portlet.getSecurityRoleRefs())
{
- SecurityRoleRef roleRef = (SecurityRoleRef) roleRefsIterator.next();
String roleName = roleRef.getRoleLink();
if (roleName == null || roleName.length() == 0)
{
roleName = roleRef.getRoleName();
}
- if (roles.get(roleName) == null)
+ if (roles.contains(roleName) == false)
{
String errorMsg = "Undefined security role " + roleName + " referenced from portlet "
+ portlet.getPortletName();
@@ -509,172 +423,6 @@
}
}
- /**
- *
- * <p>
- * processWebXML
- * </p>
- *
- * Infuses this PortletApplicationWar's web.xml file with
- * <code>servlet</code> and a <code>servlet-mapping</code> element for
- * the JetspeedContainer servlet. This is only done if the descriptor does
- * not already contain these items.
- *
- * @throws MetaDataException
- * if there is a problem infusing
- */
- public void processWebXML() throws MetaDataException
- {
- SAXBuilder builder = new SAXBuilder();
- Writer webXmlWriter = null;
- InputStream webXmlIn = null;
-
- try
- {
- // Use the local dtd instead of remote dtd. This
- // allows to deploy the application offline
- builder.setEntityResolver(new EntityResolver()
- {
- public InputSource resolveEntity( java.lang.String publicId, java.lang.String systemId )
- throws SAXException, java.io.IOException
- {
-
- if (systemId.equals("http://java.sun.com/dtd/web-app_2_3.dtd"))
- {
- return new InputSource(getClass().getResourceAsStream("web-app_2_3.dtd"));
- }
- else return null;
- }
- });
-
- Document doc = null;
-
- try
- {
- webXmlIn = getInputStream(WEB_XML_PATH);
- doc = builder.build(webXmlIn);
- }
- catch (FileNotFoundException fnfe)
- {
- // web.xml does not exist, create it
- File file = File.createTempFile("j2-temp-", ".xml");
- FileWriter writer = new FileWriter(file);
- writer.write(WEB_XML_STRING);
- writer.close();
- doc = builder.build(file);
- file.delete();
- }
-
-
- if (webXmlIn != null)
- {
- webXmlIn.close();
- }
-
- JetspeedWebApplicationRewriterFactory rewriterFactory = new JetspeedWebApplicationRewriterFactory();
- JetspeedWebApplicationRewriter rewriter = rewriterFactory.getInstance(doc);
- rewriter.processWebXML();
-
- if (rewriter.isChanged())
- {
- System.out.println("Writing out infused web.xml for " + paName);
- XMLOutputter output = new XMLOutputter(Format.getPrettyFormat());
- webXmlWriter = getWriter(WEB_XML_PATH);
- output.output(doc, webXmlWriter);
- webXmlWriter.flush();
-
- }
-
- if(rewriter.isPortletTaglibAdded())
- {
- //add portlet tag lib to war
- String path = Jetspeed.getRealPath("WEB-INF/tld");
- if (path != null)
- {
- File portletTaglibDir = new File(path);
- File child = new File(warStruct.getRootDirectory(), "WEB-INF/tld");
- DirectoryHelper dh = new DirectoryHelper(child);
- dh.copyFrom(portletTaglibDir, new FileFilter(){
-
- public boolean accept(File pathname)
- {
- return pathname.getName().indexOf("portlet.tld") != -1;
- }
- });
- dh.close();
- }
- }
-
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw new MetaDataException("Unable to process web.xml for infusion " + e.toString(), e);
- }
- finally
- {
- if (webXmlWriter != null)
- {
- try
- {
- webXmlWriter.close();
- }
- catch (IOException e1)
- {
-
- }
- }
-
- if (webXmlIn != null)
- {
- try
- {
- webXmlIn.close();
- }
- catch (IOException e1)
- {
-
- }
- }
- }
-
- }
-
-
- /**
- *
- * <p>
- * close
- * </p>
- * Closes any resource this PortletApplicationWar may have opened.
- *
- * @throws IOException
- */
- public void close() throws IOException
- {
-
- Iterator resources = openedResources.iterator();
- while (resources.hasNext())
- {
- try
- {
- Object res = resources.next();
- if (res instanceof InputStream)
- {
- ((InputStream) res).close();
- }
- else if (res instanceof OutputStream)
- {
- ((OutputStream) res).close();
- }
- }
- catch (Exception e)
- {
-
- }
- }
-
- }
/**
*
@@ -695,7 +443,7 @@
*/
public ClassLoader createClassloader( ClassLoader parent ) throws IOException
{
- ArrayList urls = new ArrayList();
+ ArrayList<URL> urls = new ArrayList<URL>();
File webInfClasses = null;
webInfClasses = new File(warStruct.getRootDirectory(), ("WEB-INF/classes/"));
@@ -755,4 +503,16 @@
{
return warStruct;
}
+
+ public WebApplicationDefinition getWebApp()
+ {
+ return webApp;
+ }
+
+
+ public PortletApplication getPortletApp()
+ {
+ return portletApp;
+ }
+
}
Modified: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorServiceImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorServiceImpl.java?rev=708719&r1=708718&r2=708719&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorServiceImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorServiceImpl.java Tue Oct 28 16:15:57 2008
@@ -20,7 +20,12 @@
import java.io.InputStream;
import java.io.OutputStream;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.jetspeed.om.portlet.ContainerRuntimeOption;
import org.apache.jetspeed.om.portlet.DisplayName;
@@ -36,12 +41,25 @@
import org.apache.jetspeed.om.portlet.SecurityRoleRef;
import org.apache.jetspeed.om.portlet.Supports;
import org.apache.jetspeed.om.portlet.UserAttribute;
+import org.apache.jetspeed.om.portlet.UserAttributeRef;
import org.apache.jetspeed.om.portlet.impl.PortletApplicationDefinitionImpl;
+import org.apache.jetspeed.om.portlet.jetspeed.jaxb.MetadataType;
+import org.apache.jetspeed.om.portlet.jetspeed.jaxb.Portlet;
+import org.apache.jetspeed.om.portlet.jetspeed.jaxb.PortletApp;
+import org.apache.jetspeed.om.portlet.jetspeed.jaxb.Service;
+import org.apache.jetspeed.om.servlet.WebApplicationDefinition;
+import org.apache.jetspeed.om.servlet.impl.WebApplicationDefinitionImpl;
+import org.apache.jetspeed.tools.deploy.JetspeedWebApplicationRewriter;
+import org.apache.jetspeed.tools.deploy.JetspeedWebApplicationRewriterFactory;
import org.apache.pluto.descriptors.services.jaxb.PortletAppDescriptorServiceImpl;
import org.apache.pluto.om.portlet.CustomPortletMode;
import org.apache.pluto.om.portlet.CustomWindowState;
import org.apache.pluto.om.portlet.Description;
import org.apache.pluto.om.portlet.PortletApplicationDefinition;
+import org.w3c.dom.Document;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
/**
* Extends Pluto Descriptor service for loading portlet applications in a Jetspeed format.
@@ -320,5 +338,126 @@
jsupports.addWindowState(ws);
}
}
- }
+ }
+
+ public void readExtended(InputStream in, PortletApplication app) throws IOException
+ {
+ try
+ {
+ JAXBContext jc = JAXBContext
+ .newInstance("org.apache.jetspeed.om.portlet.jetspeed.jaxb");
+ Unmarshaller u = jc.createUnmarshaller();
+ PortletApp pa = (PortletApp) u.unmarshal(in);
+ app.setJetspeedSecurityConstraint(pa.getSecurityConstraintRef());
+ for (Service s : pa.getServices())
+ {
+ app.addJetspeedServiceReference(s.getName());
+ }
+ for (MetadataType m : pa.getMetadata())
+ {
+ // TODO: 2.2 metadata
+ // ??? app.getMetadata().addField(locale, name, value);
+ System.out.println("metadata: " + m.getMetadataName());
+ System.out.println(" lang: " + m.getLang());
+ System.out.println(" value: " + m.getContent());
+ }
+ for (Portlet p : pa.getPortlets())
+ {
+ PortletDefinition pd = app.getPortlet(p.getPortletName());
+ if (pd != null)
+ {
+ pd.setJetspeedSecurityConstraint(p.getSecurityConstraintRef());
+ for (MetadataType m : p.getMetadata())
+ {
+ // TODO: 2.2 metadata
+ System.out.println(" metadata: " + m.getMetadataName());
+ System.out.println(" lang: " + m.getLang());
+ System.out.println(" value: " + m.getContent());
+ }
+ }
+ }
+
+ for (org.apache.jetspeed.om.portlet.jetspeed.jaxb.CustomPortletMode cpm : pa.getCustomPortletModes())
+ {
+ // TODO: 2.2
+// System.out.println(" cpm name: " + cpm.getName());
+// System.out.println(" mapped: " + cpm.getMappedName());
+// System.out.println(" desc: " + cpm.getDescription());
+ }
+ for (org.apache.jetspeed.om.portlet.jetspeed.jaxb.CustomWindowState cws : pa.getCustomWindowStates())
+ {
+ // TODO: 2.2
+// System.out.println(" cws name: " + cws.getName());
+// System.out.println(" mapped: " + cws.getMappedName());
+// System.out.println(" desc: " + cws.getDescription());
+ }
+ for (org.apache.jetspeed.om.portlet.jetspeed.jaxb.UserAttributeRef ref : pa.getUserAttributeRefs())
+ {
+ UserAttributeRef jref = app.addUserAttributeRef(ref.getName());
+ jref.setNameLink(ref.getNameLink());
+ Description desc = jref.addDescription(ref.getDescription());
+ // TODO: 2.2 desscription processing
+ }
+
+ }
+ catch (JAXBException je)
+ {
+ throw new IOException(je.getMessage());
+ }
+ }
+
+ public WebApplicationDefinition readServletDescriptor(InputStream is) throws IOException
+ {
+ Document doc = this.parseXml(is);
+ JetspeedWebApplicationRewriterFactory rewriterFactory = new JetspeedWebApplicationRewriterFactory();
+ try
+ {
+ JetspeedWebApplicationRewriter rewriter = rewriterFactory.getInstance(doc);
+ // TODO: 2.2 implement this, get the security roles
+// digester.addCallMethod("web-app/security-role", "addRole", 0);
+// digester.addBeanPropertySetter("web-app/security-role/description", "description");
+// digester.addBeanPropertySetter("web-app/security-role/role-name", "roleName");
+ WebApplicationDefinition webapp = new WebApplicationDefinitionImpl();
+// webapp.setContextRoot(contextRoot);
+// webapp.setDescription(contextRoot);
+ return webapp;
+ }
+ catch (Exception e)
+ {
+ throw new IOException(e.getMessage());
+ }
+ }
+
+ protected Document parseXml(InputStream source) throws IOException
+ {
+ try
+ {
+ DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
+ domFactory.setNamespaceAware(true);
+ DocumentBuilder builder = domFactory.newDocumentBuilder();
+ builder.setEntityResolver(new EntityResolver()
+ {
+ public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) throws SAXException,
+ java.io.IOException
+ {
+ if (systemId.equals("http://java.sun.com/dtd/web-app_2_3.dtd"))
+ {
+ return new InputSource(getClass().getResourceAsStream("web-app_2_3.dtd"));
+ }
+ if (systemId.equals("http://java.sun.com/dtd/web-app_2_4.dtd"))
+ {
+ return new InputSource(getClass().getResourceAsStream("web-app_2_4.dtd"));
+ }
+ return null;
+ }
+ });
+ Document document = builder.parse(source);
+ return document;
+ }
+ catch (Exception e)
+ {
+ throw new IOException(e.toString());
+ }
+ }
+
}
Modified: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java?rev=708719&r1=708718&r2=708719&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java Tue Oct 28 16:15:57 2008
@@ -76,7 +76,7 @@
private transient WebApplicationDefinition webApplication;
/** Metadata property */
- private Collection metadataFields = null;
+ private Collection<GenericMetadata> metadataFields = null;
/** Description */
private String description;
@@ -233,7 +233,7 @@
{
if(metadataFields == null)
{
- metadataFields = new ArrayList();
+ metadataFields = new ArrayList<GenericMetadata>();
}
GenericMetadata metadata = new PortletApplicationMetadataImpl();
@@ -345,7 +345,7 @@
PublicRenderParameterImpl p = new PublicRenderParameterImpl();
p.setName(name);
p.setIdentifier(identifier);
- publicRenderParameters.add(p);
+ getPublicRenderParameters().add(p);
return p;
}
@@ -359,7 +359,7 @@
PublicRenderParameterImpl p = new PublicRenderParameterImpl();
p.setQName(qname);
p.setIdentifier(identifier);
- publicRenderParameters.add(p);
+ getPublicRenderParameters().add(p);
return p;
}
@@ -413,7 +413,7 @@
CustomPortletModeImpl cpm = new CustomPortletModeImpl();
cpm.setPortletMode(name);
- customPortletModes.add(cpm);
+ getCustomPortletModes().add(cpm);
return cpm;
}
@@ -467,7 +467,7 @@
CustomWindowStateImpl cws = new CustomWindowStateImpl();
cws.setWindowState(name);
- customWindowStates.add(cws);
+ getCustomWindowStates().add(cws);
return cws;
}
@@ -570,7 +570,7 @@
}
UserAttributeImpl ua = new UserAttributeImpl();
ua.setName(name);
- userAttributes.add(ua);
+ getUserAttributes().add(ua);
return ua;
}
@@ -603,7 +603,7 @@
}
UserAttributeRefImpl uar = new UserAttributeRefImpl();
uar.setName(name);
- userAttributeRefs.add(uar);
+ getUserAttributeRefs().add(uar);
return uar;
}
@@ -621,7 +621,7 @@
SecurityConstraintImpl sc = new SecurityConstraintImpl();
((UserDataConstraintImpl)sc.getUserDataConstraint()).setTransportGuarantee(transportGuarantee);
getSecurityConstraints();
- securityConstraints.add(sc);
+ getSecurityConstraints().add(sc);
return sc;
}
@@ -654,7 +654,7 @@
}
FilterImpl f = new FilterImpl();
f.setFilterName(name);
- filters.add(f);
+ getFilters().add(f);
return f;
}
@@ -687,7 +687,7 @@
}
FilterMappingImpl fm = new FilterMappingImpl();
fm.setFilterName(name);
- filterMappings.add(fm);
+ getFilterMappings().add(fm);
return fm;
}
@@ -711,7 +711,7 @@
}
ListenerImpl l = new ListenerImpl();
l.setListenerClass(listenerClass);
- listeners.add(l);
+ getListeners().add(l);
return l;
}
@@ -744,7 +744,7 @@
}
ContainerRuntimeOptionImpl cro = new ContainerRuntimeOptionImpl();
cro.setName(name);
- containerRuntimeOptions.add(cro);
+ getContainerRuntimeOptions().add(cro);
return cro;
}
@@ -768,7 +768,7 @@
}
JetspeedServiceReferenceImpl ref = new JetspeedServiceReferenceImpl();
ref.setName(name);
- services.add(ref);
+ getJetspeedServices().add(ref);
}
public boolean isLayoutApplication()
Modified: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-api/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-api/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorService.java?rev=708719&r1=708718&r2=708719&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-api/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorService.java (original)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-api/src/main/java/org/apache/jetspeed/descriptor/ExtendedDescriptorService.java Tue Oct 28 16:15:57 2008
@@ -21,6 +21,7 @@
import java.io.OutputStream;
import org.apache.jetspeed.om.portlet.PortletApplication;
+import org.apache.jetspeed.om.servlet.WebApplicationDefinition;
import org.apache.pluto.spi.optional.PortletAppDescriptorService;
@@ -55,4 +56,8 @@
*/
void write(PortletApplication portletDescriptor, OutputStream out) throws IOException;
+ void readExtended(InputStream in, PortletApplication app) throws IOException;
+
+ public WebApplicationDefinition readServletDescriptor(InputStream is) throws IOException;
+
}
Modified: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml?rev=708719&r1=708718&r2=708719&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml (original)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml Tue Oct 28 16:15:57 2008
@@ -54,6 +54,7 @@
<value>${applicationRoot}</value>
</constructor-arg>
+ <constructor-arg><ref bean="org.apache.pluto.services.DescriptorService"/></constructor-arg>
<!-- optional configuration for automatic creation of not yet existing roles as defined in the deployed web.xml:
<property name="autoCreateRoles"><value>true</value></property>
Modified: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/deployment.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/deployment.xml?rev=708719&r1=708718&r2=708719&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/deployment.xml (original)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/jetspeed-portal-resources/src/main/resources/assembly/deployment.xml Tue Oct 28 16:15:57 2008
@@ -84,6 +84,7 @@
<value>${applicationRoot}</value>
</constructor-arg>
+ <constructor-arg><ref bean="org.apache.pluto.services.DescriptorService"/></constructor-arg>
<!-- optional configuration for automatic creation of not yet existing roles as defined in the deployed web.xml:
<property name="autoCreateRoles"><value>true</value></property>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org