You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrp4j-dev@portals.apache.org by dl...@apache.org on 2006/12/20 18:17:18 UTC
svn commit: r489147 - in /portals/wsrp4j/trunk/producer: ./
src/java/org/apache/wsrp4j/producer/configapp/
src/java/org/apache/wsrp4j/producer/configapp/controller/
src/java/org/apache/wsrp4j/producer/configapp/exception/
src/java/org/apache/wsrp4j/pro...
Author: dlouzan
Date: Wed Dec 20 09:17:16 2006
New Revision: 489147
URL: http://svn.apache.org/viewvc?view=rev&rev=489147
Log:
Initial version of configuration servlet for producer
Added:
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegate.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/Constants.java
portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/ServletUtils.java
portals/wsrp4j/trunk/producer/src/resources/
portals/wsrp4j/trunk/producer/src/resources/Messages.properties
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/c.tld
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/fmt.tld
portals/wsrp4j/trunk/producer/src/webapp/jsp/
portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/
portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/ShowPortletApps.jsp
portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadFail.jsp
portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadSuccess.jsp
portals/wsrp4j/trunk/producer/src/webapp/jsp/index.jsp
Modified:
portals/wsrp4j/trunk/producer/pom.xml
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/classes/wsrp4j-config.properties
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/config/services.properties
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletcontexts.txt
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletentityregistry.xml
portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/web.xml
Modified: portals/wsrp4j/trunk/producer/pom.xml
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/pom.xml?view=diff&rev=489147&r1=489146&r2=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/pom.xml (original)
+++ portals/wsrp4j/trunk/producer/pom.xml Wed Dec 20 09:17:16 2006
@@ -33,6 +33,15 @@
</description>
<build>
<sourceDirectory>src/java</sourceDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/src/resources</directory>
+ <targetPath>org/apache/wsrp4j/producer/configapp/messages</targetPath>
+ <includes>
+ <include>Messages.properties</include>
+ </includes>
+ </resource>
+ </resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -57,6 +66,7 @@
<filtering>true</filtering>
<includes>
<include>WEB-INF/classes/log4j.properties</include>
+ <include>WEB-INF/classes/wsrp4j-config.properties</include>
</includes>
</resource>
</webResources>
@@ -103,6 +113,11 @@
<version>${commons-discovery.version}</version>
</dependency>
<dependency>
+ <artifactId>commons-fileupload</artifactId>
+ <groupId>commons-fileupload</groupId>
+ <version>${commons-fileupload.version}</version>
+ </dependency>
+ <dependency>
<artifactId>pluto</artifactId>
<groupId>org.apache.pluto</groupId>
<version>${pluto.version}</version>
@@ -114,9 +129,29 @@
<version>${pluto.version}</version>
</dependency>
<dependency>
+ <artifactId>pluto-deploy</artifactId>
+ <groupId>org.apache.pluto</groupId>
+ <version>${pluto.version}</version>
+ </dependency>
+ <dependency>
+ <artifactId>pluto-descriptors</artifactId>
+ <groupId>org.apache.pluto</groupId>
+ <version>${pluto.version}</version>
+ </dependency>
+ <dependency>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
<version>${log4j.version}</version>
+ </dependency>
+ <dependency>
+ <artifactId>jstl</artifactId>
+ <groupId>javax.servlet</groupId>
+ <version>${jstl.version}</version>
+ </dependency>
+ <dependency>
+ <artifactId>standard</artifactId>
+ <groupId>taglibs</groupId>
+ <version>${jstl.version}</version>
</dependency>
</dependencies>
</project>
Added: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java (added)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/controller/DeployApp.java Wed Dec 20 09:17:16 2006
@@ -0,0 +1,77 @@
+/**
+ * Copyright 2003-2006 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.wsrp4j.producer.configapp.controller;
+
+import java.io.IOException;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.wsrp4j.producer.configapp.services.DeployAppService;
+
+import org.apache.wsrp4j.producer.configapp.exception.ConfigAppException;
+
+import org.apache.wsrp4j.producer.configapp.util.Constants;
+import org.apache.wsrp4j.producer.configapp.util.ServletUtils;
+
+
+/**
+ * Servlet that lets a user upload a portlet application for producer to
+ * deploy.
+ *
+ * @version $Id$
+ */
+public class DeployApp extends HttpServlet {
+
+ private DeployAppService service;
+
+ public void init() throws ServletException {
+ super.init();
+ try {
+ service = new DeployAppService(
+ getServletConfig());
+ } catch (ConfigAppException e) {
+ throw new ServletException("Error while initializing required services",
+ e);
+ }
+ }
+
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+
+ String action = request.getParameter(Constants.PARAM_ACTION);
+
+ try {
+ if (action == null) {
+ service.processFileUpload(request, response);
+ } else if (action.equals(Constants.ACTION_SHOW_PORTLETS)) {
+ service.processShowPortletApplications(request, response);
+ }
+ } catch (ConfigAppException e) {
+ throw new ServletException(e);
+ }
+
+ }
+
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ doGet(request, response);
+ }
+
+}
Added: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java (added)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/exception/ConfigAppException.java Wed Dec 20 09:17:16 2006
@@ -0,0 +1,41 @@
+/**
+ * Copyright 2003-2006 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.wsrp4j.producer.configapp.exception;
+
+import java.io.PrintStream;
+import java.io.PrintWriter;
+
+import org.apache.commons.lang.exception.NestableException;
+
+import org.apache.wsrp4j.commons.exception.WSRPException;
+
+
+/**
+ * Model exception for configapp.
+ *
+ * @version $Id$
+ */
+public class ConfigAppException extends NestableException {
+
+ public ConfigAppException(Throwable throwable) {
+ super(throwable);
+ }
+
+ public ConfigAppException(String message, Throwable t) {
+ super(message, t);
+ }
+
+}
Added: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegate.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegate.java?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegate.java (added)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegate.java Wed Dec 20 09:17:16 2006
@@ -0,0 +1,49 @@
+/**
+ * Copyright 2003-2006 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.wsrp4j.producer.configapp.model.delegate;
+
+import java.util.Collection;
+
+import org.apache.wsrp4j.producer.configapp.exception.ConfigAppException;
+
+
+/**
+ * Model delegate class that lets us request Provider services
+ * like deploying a portlet application or getting the list of deployed
+ * portlet applications.
+ *
+ * @version $Id$
+ */
+public interface ProviderServicesDelegate {
+
+ /**
+ * Returns a Collection of
+ * <code>org.apache.wsrp4j.commons.producer.provider.interfaces.ProducerOfferedPortlet</code>
+ * deployed to a portal.
+ */
+ public Collection getProducerOfferedPortlets()
+ throws ConfigAppException;
+
+ /**
+ * Deploy a given portlet application to a portal. The portlet app
+ * can be a .war or an exploded dir: in case of being a .war file,
+ * the file is exploded to webappsDir.
+ */
+ public void deployPortletApplication(String portletApp, String portalDir,
+ String webappsDir)
+ throws ConfigAppException;
+
+}
Added: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java (added)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/ProviderServicesDelegateFactory.java Wed Dec 20 09:17:16 2006
@@ -0,0 +1,72 @@
+/**
+ * Copyright 2003-2006 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.wsrp4j.producer.configapp.model.delegate;
+
+import org.apache.wsrp4j.commons.util.configuration.ConfigurationParametersManager;
+
+import org.apache.wsrp4j.producer.configapp.exception.ConfigAppException;
+
+
+/**
+ * Factory for ProviderServicesDelegate
+ *
+ * @version $Id$
+ */
+public class ProviderServicesDelegateFactory {
+
+ private final static String DELEGATE_CLASS_NAME_PARAMETER =
+ "wsrp4j.producer.configapp.providerservices.delegate";
+
+ private final static Class delegateClass = getDelegateClass();
+
+ private static ProviderServicesDelegate instance = null;
+
+ private ProviderServicesDelegateFactory() {}
+
+ private static Class getDelegateClass() {
+
+ Class theClass = null;
+
+ try {
+
+ String delegateClassName =
+ ConfigurationParametersManager.getParameter(
+ DELEGATE_CLASS_NAME_PARAMETER);
+
+ theClass = Class.forName(delegateClassName);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return theClass;
+
+ }
+
+ public static ProviderServicesDelegate getDelegate()
+ throws ConfigAppException {
+
+ try {
+ if (instance == null) {
+ instance = (ProviderServicesDelegate) delegateClass.newInstance();
+ }
+ return instance;
+ } catch (Exception e) {
+ throw new ConfigAppException(e);
+ }
+ }
+
+}
Added: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java (added)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/model/delegate/impl/ProviderServicesDelegateImpl.java Wed Dec 20 09:17:16 2006
@@ -0,0 +1,123 @@
+/**
+ * Copyright 2003-2006 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.wsrp4j.producer.configapp.model.delegate.impl;
+
+
+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.pluto.driver.deploy.CLI;
+
+import org.apache.wsrp4j.commons.exception.WSRPException;
+
+import org.apache.wsrp4j.commons.producer.provider.interfaces.PortletPool;
+import org.apache.wsrp4j.commons.producer.provider.interfaces.Portlet;
+import org.apache.wsrp4j.commons.producer.provider.interfaces.Provider;
+import org.apache.wsrp4j.commons.producer.provider.interfaces.ProviderAccess;
+
+import org.apache.wsrp4j.producer.configapp.exception.ConfigAppException;
+import org.apache.wsrp4j.producer.configapp.model.delegate.ProviderServicesDelegate;
+
+
+/**
+ * Relies on Pluto services for servicing the Provider interfaces.
+ *
+ * @version $Id$
+ */
+public class ProviderServicesDelegateImpl implements ProviderServicesDelegate {
+
+ private static final Log log = LogFactory.getLog(ProviderServicesDelegateImpl.class);
+
+ private Provider provider;
+
+ public ProviderServicesDelegateImpl() {
+
+ try {
+ /* This call ensures that all provider services are correctly
+ initiated */
+ provider = ProviderAccess.getProvider();
+ } catch (WSRPException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Error accessing the underlying provider", e);
+ }
+ }
+
+ }
+
+ /**
+ * Returns a Collection of
+ * <code>org.apache.wsrp4j.commons.producer.provider.interfaces.ProducerOfferedPortlet</code>
+ * deployed to a portal.
+ */
+ public Collection getProducerOfferedPortlets()
+ throws ConfigAppException {
+
+ Collection result = new ArrayList();
+
+ PortletPool pool = provider.getPortletPool();
+ for (Iterator iter = pool.getAllProducerOfferedPortlets();
+ iter.hasNext(); ) {
+ Portlet offeredPortlet = (Portlet) iter.next();
+ result.add(offeredPortlet);
+ }
+
+ return result;
+
+ }
+
+ /**
+ * Deploy a given portlet application to a portal. The portlet app
+ * can be a .war or an exploded dir: in case of being a .war file,
+ * the file is exploded to webappsDir.
+ */
+ public void deployPortletApplication(String portletApp, String portalDir,
+ String webappsDir)
+ throws ConfigAppException {
+
+ try {
+
+ /* Args needed by pluto-deploy Deploy utility:
+ * -verbose
+ * Print verbose information about deployment
+ * -destination <destDir>
+ * Directory where to store the new portletapp
+ * -portal <portalDir>
+ * Directory where the portal application resides
+ * <portletApp>
+ * PortletApplication war to deploy
+ */
+ List args = new ArrayList();
+ args.add("-destination"); args.add(webappsDir);
+ args.add("-portal"); args.add(portalDir);
+ args.add(portletApp);
+
+ String[] argsString =
+ (String[]) args.toArray(new String[args.size()]);
+
+ CLI.main(argsString);
+
+ } catch (Exception e) {
+ throw new ConfigAppException(e);
+ }
+
+ }
+
+}
Added: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java (added)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/services/DeployAppService.java Wed Dec 20 09:17:16 2006
@@ -0,0 +1,191 @@
+/**
+ * Copyright 2003-2006 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.wsrp4j.producer.configapp.services;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemFactory;
+import org.apache.commons.fileupload.FileUploadException;
+import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload.servlet.ServletFileUpload;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.apache.pluto.driver.deploy.CLI;
+
+import org.apache.wsrp4j.commons.util.configuration.ConfigurationParametersManager;
+import org.apache.wsrp4j.commons.util.configuration.MissingConfigurationParameterException;
+
+import org.apache.wsrp4j.commons.producer.util.ServletAccess;
+
+import org.apache.wsrp4j.producer.configapp.exception.ConfigAppException;
+
+import org.apache.wsrp4j.producer.configapp.model.delegate.ProviderServicesDelegate;
+import org.apache.wsrp4j.producer.configapp.model.delegate.ProviderServicesDelegateFactory;
+
+import org.apache.wsrp4j.producer.configapp.util.Constants;
+import org.apache.wsrp4j.producer.configapp.util.ServletUtils;
+
+
+/**
+ * Services needed by the DeployApp servlet.
+ *
+ * @version $Id$
+ */
+public class DeployAppService {
+
+ private static final Log log = LogFactory.getLog(DeployAppService.class);
+
+ private String portalDir = null;
+ private String webappsDir = null;
+
+ private ProviderServicesDelegate delegate = null;
+
+ public DeployAppService(ServletConfig config) throws ConfigAppException {
+
+ try {
+
+ /* Deploy the portlets to the current application */
+ portalDir = config.getServletContext().getRealPath("");
+
+ /* Read the webapps dir from the configuration */
+ webappsDir =
+ ConfigurationParametersManager.getParameter(
+ Constants.CONFIGAPP_WEBAPPS_DIR);
+
+ /* Obtain the delegate for model operations */
+ delegate = ProviderServicesDelegateFactory.getDelegate();
+
+ } catch (MissingConfigurationParameterException e) {
+ throw new ConfigAppException("Missing webapps directory conf parameter", e);
+ } catch (Exception e) {
+ throw new ConfigAppException(e);
+ }
+
+ }
+
+ public void processShowPortletApplications(HttpServletRequest request,
+ HttpServletResponse response)
+ throws ConfigAppException, ServletException, IOException {
+
+ Collection portlets = delegate.getProducerOfferedPortlets();
+ request.setAttribute(Constants.ATTR_PORTLETS, portlets);
+
+ ServletUtils.forward(request, response,
+ "/jsp/configapp/ShowPortletApps.jsp");
+
+ }
+
+ public void processFileUpload(HttpServletRequest request,
+ HttpServletResponse response)
+ throws ConfigAppException, ServletException, IOException {
+
+ String fileName = null;
+ String serverFileName = null;
+
+ if (ServletFileUpload.isMultipartContent(request)) {
+
+ try {
+ FileItemFactory factory = new DiskFileItemFactory();
+ ServletFileUpload upload = new ServletFileUpload(factory);
+ List items = upload.parseRequest(request);
+
+ for (Iterator iter = items.iterator(); iter.hasNext(); ) {
+ FileItem item = (FileItem) iter.next();
+
+ if (item.isFormField()) {
+
+ } else {
+
+ if (item.getSize() <= 0) {
+ if (log.isDebugEnabled()) {
+ log.debug("Error while uploading portlet app. No data found.");
+ }
+ ServletUtils.forward(request, response,
+ "/jsp/configapp/UploadFail.jsp");
+ } else {
+
+ fileName = item.getName();
+
+ String tempDir = System.getProperty("java.io.tmpdir");
+ serverFileName = getRootFileName(File.separatorChar, fileName);
+
+ File serverFile = new File(tempDir, serverFileName);
+
+ item.write(serverFile);
+
+ /* Args needed by pluto-deploy Deploy utility:
+ * -verbose
+ * Print verbose information about deployment
+ * -destination <destDir>
+ * Directory where to store the new portletapp
+ * -portal <portalDir>
+ * Directory where the portal application resides
+ * <portletApp>
+ * PortletApplication war to deploy
+ */
+
+ delegate.deployPortletApplication(serverFile.getAbsolutePath(),
+ portalDir, webappsDir);
+ /* Deployment successful */
+ ServletUtils.forward(request, response,
+ "/jsp/configapp/UploadSuccess.jsp");
+
+ }
+
+ }
+ }
+
+ } catch (Exception e) {
+ if (log.isDebugEnabled()) {
+ log.debug("Error while uploading portlet app", e);
+ }
+ ServletUtils.forward(request, response,
+ "/jsp/configapp/UploadFail.jsp");
+ }
+
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Error while uploading portlet app. No data found");
+ }
+ /* Redirect to error page */
+ ServletUtils.forward(request, response,
+ "/jsp/configapp/UploadFail.jsp");
+ }
+
+ }
+
+ private String getRootFileName(char delimiter, String pathName) {
+ int startFilenameIndex = pathName.lastIndexOf(delimiter) + 1;
+ String filename = pathName.substring(startFilenameIndex);
+ return filename;
+ }
+
+}
\ No newline at end of file
Added: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/Constants.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/Constants.java?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/Constants.java (added)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/Constants.java Wed Dec 20 09:17:16 2006
@@ -0,0 +1,40 @@
+/**
+ * Copyright 2003-2006 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.wsrp4j.producer.configapp.util;
+
+
+/**
+ * Constants needed for DeployApp servlet.
+ *
+ * @version $Id$
+ */
+public final class Constants {
+
+ private Constants() {}
+
+ public final static String PARAM_ACTION = "action";
+
+ public final static String ACTION_SHOW_PORTLETS = "showPortlets";
+ public final static String ACTION_SHOW_UPLOAD = "showUpload";
+
+ public final static String ATTR_PORTLETS = "portlets";
+
+ /* Configuration parameter storing the directory where configapp stores
+ * the deployed portletapps */
+ public final static String CONFIGAPP_WEBAPPS_DIR =
+ "wsrp4j.producer.configapp.webapps.dir";
+
+}
Added: portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/ServletUtils.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/ServletUtils.java?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/ServletUtils.java (added)
+++ portals/wsrp4j/trunk/producer/src/java/org/apache/wsrp4j/producer/configapp/util/ServletUtils.java Wed Dec 20 09:17:16 2006
@@ -0,0 +1,42 @@
+/**
+ * Copyright 2003-2006 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.wsrp4j.producer.configapp.util;
+
+import java.io.IOException;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * Provides some convenient methods for using with servlets.
+ *
+ * @version $Id$
+ */
+public class ServletUtils {
+
+ private ServletUtils() {}
+
+ public static void forward(HttpServletRequest request,
+ HttpServletResponse response, String path)
+ throws ServletException, IOException {
+ RequestDispatcher dispatcher = request.getRequestDispatcher(path);
+ dispatcher.forward(request, response);
+ }
+
+}
Added: portals/wsrp4j/trunk/producer/src/resources/Messages.properties
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/resources/Messages.properties?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/resources/Messages.properties (added)
+++ portals/wsrp4j/trunk/producer/src/resources/Messages.properties Wed Dec 20 09:17:16 2006
@@ -0,0 +1,47 @@
+# Copyright 2003-2006 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.
+
+MainPage.bugMessage=Due to the current design of Producer, the configuration \
+ utility won't work until an actual call to the Axis servlet is made. \
+ Please click below on the test link before using the deploy utility.
+MainPage.bugTitle=Important (known bug)
+MainPage.confLink=Deploy Utility
+MainPage.mainTitle=WSRP4J Producer
+MainPage.message=This is the WSRP4J Producer main page. It includes an upload \
+ utility to easily add new Portlet Applications. See the links below.
+MainPage.pageTitle=WSRP4J Producer
+MainPage.producerLink=View Producer ServiceDescription (test link)
+MainPage.servicesLink=View Deployed Services
+
+ShowPortletApps.mainTitle=Portlets Deployed
+ShowPortletApps.noPortletsFound=No Portlets Found
+ShowPortletApps.pageTitle=Portlets Deployed
+ShowPortletApps.uploadLink=Upload a Portlet Application
+
+ShowUpload.mainTitle=Deploy Application for WSRP4JProducer
+ShowUpload.pageTitle=DeployApp for WSRP4JProducer
+ShowUpload.selectWar=Please Select a War File
+ShowUpload.submit=Submit
+ShowUpload.upload=Upload a Portlet Application
+
+UploadFail.mainTitle=Upload Failed
+UploadFail.message=Upload of Portlet Application failed. Please see log files \
+ for more details.
+UploadFail.pageTitle=Upload Fail
+
+UploadSuccess.indexLink=Go back
+UploadSuccess.mainTitle=Upload Successful
+UploadSuccess.message=Upload of Portlet Application has been successful. Please \
+ restart Producer to reload settings.
+UploadSuccess.pageTitle=Upload Success
Modified: portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/classes/wsrp4j-config.properties
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/classes/wsrp4j-config.properties?view=diff&rev=489147&r1=489146&r2=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/classes/wsrp4j-config.properties (original)
+++ portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/classes/wsrp4j-config.properties Wed Dec 20 09:17:16 2006
@@ -30,3 +30,10 @@
# Set wether the producer processes consumer-supplied templates for
# producer template processing
wsrp4j.producer.provider.doesurltemplateprocessing=false
+
+# Directory when configapp stores the deployed portletapps
+wsrp4j.producer.configapp.webapps.dir=${maven.tomcat.producer.home}/webapps
+
+# Class that implements the Provider Services needed by the config app
+wsrp4j.producer.configapp.providerservices.delegate=\
+ org.apache.wsrp4j.producer.configapp.model.delegate.impl.ProviderServicesDelegateImpl
Modified: portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/config/services.properties
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/config/services.properties?view=diff&rev=489147&r1=489146&r2=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/config/services.properties (original)
+++ portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/config/services.properties Wed Dec 20 09:17:16 2006
@@ -23,6 +23,6 @@
org.apache.pluto.portalImpl.services.factorymanager.FactoryManagerService=org.apache.pluto.portalImpl.services.factorymanager.FactoryManagerServiceImpl
-org.apache.pluto.portalImpl.services.portletdefinitionregistry.PortletDefinitionRegistryService=org.apache.pluto.portalImpl.services.portletdefinitionregistry.PortletDefinitionRegistryServiceFileImpl
+org.apache.pluto.portalImpl.services.portletdefinitionregistry.PortletDefinitionRegistryService=org.apache.pluto.portalImpl.services.portletdefinitionregistry.PortletDefinitionRegistryServiceContextImpl
org.apache.pluto.portalImpl.services.portletentityregistry.PortletEntityRegistryService=org.apache.wsrp4j.producer.provider.pluto.driver.PortletPoolImpl
Modified: portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletcontexts.txt
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletcontexts.txt?view=diff&rev=489147&r1=489146&r2=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletcontexts.txt (original)
+++ portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletcontexts.txt Wed Dec 20 09:17:16 2006
@@ -1,2 +1 @@
-/wsrp4j-producer
/wsrp4j-testportlet
Modified: portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletentityregistry.xml
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletentityregistry.xml?view=diff&rev=489147&r1=489146&r2=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletentityregistry.xml (original)
+++ portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/data/portletentityregistry.xml Wed Dec 20 09:17:16 2006
@@ -16,15 +16,10 @@
-->
<portlet-entity-registry>
-
- <application id="0">
+ <application id="wsrp4j-testportlet">
<definition-id>wsrp4j-testportlet</definition-id>
- <portlet id="1">
- <definition-id>wsrp4j-testportlet.WSRP4JTestPortlet</definition-id>
- </portlet>
- <portlet id="2">
+ <portlet id="WSRP4JTestPortlet">
<definition-id>wsrp4j-testportlet.WSRP4JTestPortlet</definition-id>
</portlet>
</application>
-
</portlet-entity-registry>
Added: portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/c.tld
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/c.tld?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/c.tld (added)
+++ portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/c.tld Wed Dec 20 09:17:16 2006
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE taglib
+ PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
+ "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+<taglib>
+ <tlib-version>1.0</tlib-version>
+ <jsp-version>1.2</jsp-version>
+ <short-name>c</short-name>
+ <uri>http://java.sun.com/jstl/core</uri>
+ <display-name>JSTL core</display-name>
+ <description>JSTL 1.0 core library</description>
+
+ <validator>
+ <validator-class>
+ org.apache.taglibs.standard.tlv.JstlCoreTLV
+ </validator-class>
+ <init-param>
+ <param-name>expressionAttributes</param-name>
+ <param-value>
+ out:value
+ out:default
+ out:escapeXml
+ if:test
+ import:url
+ import:context
+ import:charEncoding
+ forEach:items
+ forEach:begin
+ forEach:end
+ forEach:step
+ forTokens:items
+ forTokens:begin
+ forTokens:end
+ forTokens:step
+ param:encode
+ param:name
+ param:value
+ redirect:context
+ redirect:url
+ set:property
+ set:target
+ set:value
+ url:context
+ url:value
+ when:test
+ </param-value>
+ <description>
+ Whitespace-separated list of colon-separated token pairs
+ describing tag:attribute combinations that accept expressions.
+ The validator uses this information to determine which
+ attributes need their syntax validated.
+ </description>
+ </init-param>
+ </validator>
+
+ <tag>
+ <name>catch</name>
+ <tag-class>org.apache.taglibs.standard.tag.common.core.CatchTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Catches any Throwable that occurs in its body and optionally
+ exposes it.
+ </description>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>choose</name>
+ <tag-class>org.apache.taglibs.standard.tag.common.core.ChooseTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Simple conditional tag that establishes a context for
+ mutually exclusive conditional operations, marked by
+ <when> and <otherwise>
+ </description>
+ </tag>
+
+ <tag>
+ <name>out</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.OutTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Like <%= ... >, but for expressions.
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>default</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>escapeXml</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>if</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.IfTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Simple conditional tag, which evalutes its body if the
+ supplied condition is true and optionally exposes a Boolean
+ scripting variable representing the evaluation of this condition
+ </description>
+ <attribute>
+ <name>test</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>import</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.ImportTag</tag-class>
+ <tei-class>org.apache.taglibs.standard.tei.ImportTEI</tei-class>
+ <body-content>JSP</body-content>
+ <description>
+ Retrieves an absolute or relative URL and exposes its contents
+ to either the page, a String in 'var', or a Reader in 'varReader'.
+ </description>
+ <attribute>
+ <name>url</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>varReader</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>context</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>charEncoding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>forEach</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.ForEachTag</tag-class>
+ <tei-class>org.apache.taglibs.standard.tei.ForEachTEI</tei-class>
+ <body-content>JSP</body-content>
+ <description>
+ The basic iteration tag, accepting many different
+ collection types and supporting subsetting and other
+ functionality
+ </description>
+ <attribute>
+ <name>items</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>begin</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>end</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>step</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>varStatus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>forTokens</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.ForTokensTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Iterates over tokens, separated by the supplied delimeters
+ </description>
+ <attribute>
+ <name>items</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>delims</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>begin</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>end</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>step</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>varStatus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>otherwise</name>
+ <tag-class>org.apache.taglibs.standard.tag.common.core.OtherwiseTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Subtag of <choose> that follows <when> tags
+ and runs only if all of the prior conditions evaluated to
+ 'false'
+ </description>
+ </tag>
+
+ <tag>
+ <name>param</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.ParamTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Adds a parameter to a containing 'import' tag's URL.
+ </description>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>redirect</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.RedirectTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Redirects to a new URL.
+ </description>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>url</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>context</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>remove</name>
+ <tag-class>org.apache.taglibs.standard.tag.common.core.RemoveTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Removes a scoped variable (from a particular scope, if specified).
+ </description>
+ <attribute>
+ <name>var</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>set</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.SetTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Sets the result of an expression evaluation in a 'scope'
+ </description>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>target</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>property</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>url</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.UrlTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Prints or exposes a URL with optional query parameters
+ (via the c:param tag).
+ </description>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>context</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>when</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.core.WhenTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Subtag of <choose> that includes its body if its
+ condition evalutes to 'true'
+ </description>
+ <attribute>
+ <name>test</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+</taglib>
Added: portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/fmt.tld
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/fmt.tld?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/fmt.tld (added)
+++ portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/tld/fmt.tld Wed Dec 20 09:17:16 2006
@@ -0,0 +1,442 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE taglib
+ PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
+ "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+<taglib>
+ <tlib-version>1.0</tlib-version>
+ <jsp-version>1.2</jsp-version>
+ <short-name>fmt</short-name>
+ <uri>http://java.sun.com/jstl/fmt</uri>
+ <display-name>JSTL fmt</display-name>
+ <description>JSTL 1.0 i18n-capable formatting library</description>
+
+ <validator>
+ <validator-class>
+ org.apache.taglibs.standard.tlv.JstlFmtTLV
+ </validator-class>
+ <init-param>
+ <param-name>expressionAttributes</param-name>
+ <param-value>
+ requestEncoding:value
+ setLocale:value
+ setLocale:variant
+ timeZone:value
+ setTimeZone:value
+ bundle:basename
+ bundle:prefix
+ setBundle:basename
+ message:key
+ message:bundle
+ param:value
+ formatNumber:value
+ formatNumber:pattern
+ formatNumber:currencyCode
+ formatNumber:currencySymbol
+ formatNumber:groupingUsed
+ formatNumber:maxIntegerDigits
+ formatNumber:minIntegerDigits
+ formatNumber:maxFractionDigits
+ formatNumber:minFractionDigits
+ parseNumber:value
+ parseNumber:pattern
+ parseNumber:parseLocale
+ parseNumber:integerOnly
+ formatDate:value
+ formatDate:pattern
+ formatDate:timeZone
+ parseDate:value
+ parseDate:pattern
+ parseDate:timeZone
+ parseDate:parseLocale
+ </param-value>
+ <description>
+ Whitespace-separated list of colon-separated token pairs
+ describing tag:attribute combinations that accept expressions.
+ The validator uses this information to determine which
+ attributes need their syntax validated.
+ </description>
+ </init-param>
+ </validator>
+
+ <tag>
+ <name>requestEncoding</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.RequestEncodingTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Sets the request character encoding
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>setLocale</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.SetLocaleTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Stores the given locale in the locale configuration variable
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>variant</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>timeZone</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.TimeZoneTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Specifies the time zone for any time formatting or parsing actions
+ nested in its body
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>setTimeZone</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.SetTimeZoneTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Stores the given time zone in the time zone configuration variable
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>bundle</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.BundleTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Loads a resource bundle to be used by its tag body
+ </description>
+ <attribute>
+ <name>basename</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>prefix</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>setBundle</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.SetBundleTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Loads a resource bundle and stores it in the named scoped variable or
+ the bundle configuration variable
+ </description>
+ <attribute>
+ <name>basename</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>message</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.MessageTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Maps key to localized message and performs parametric replacement
+ </description>
+ <attribute>
+ <name>key</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>bundle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>param</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.ParamTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Supplies an argument for parametric replacement to a containing
+ <message> tag
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>formatNumber</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.FormatNumberTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Formats a numeric value as a number, currency, or percentage
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>pattern</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>currencyCode</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>currencySymbol</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>groupingUsed</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>maxIntegerDigits</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>minIntegerDigits</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>maxFractionDigits</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>minFractionDigits</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>parseNumber</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.ParseNumberTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Parses the string representation of a number, currency, or percentage
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>pattern</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>parseLocale</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>integerOnly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>formatDate</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.FormatDateTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Formats a date and/or time using the supplied styles and pattern
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>dateStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>timeStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>pattern</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>timeZone</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>parseDate</name>
+ <tag-class>org.apache.taglibs.standard.tag.el.fmt.ParseDateTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Parses the string representation of a date and/or time
+ </description>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>dateStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>timeStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>pattern</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>timeZone</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>parseLocale</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+</taglib>
Modified: portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/web.xml?view=diff&rev=489147&r1=489146&r2=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/web.xml (original)
+++ portals/wsrp4j/trunk/producer/src/webapp/WEB-INF/web.xml Wed Dec 20 09:17:16 2006
@@ -21,6 +21,11 @@
<web-app>
<display-name>WSRP4J Producer</display-name>
+
+ <context-param>
+ <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
+ <param-value>org.apache.wsrp4j.producer.configapp.messages.Messages</param-value>
+ </context-param>
<servlet>
<servlet-name>WSRP4JProducer</servlet-name>
@@ -28,6 +33,7 @@
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
+ <load-on-startup>100</load-on-startup>
</servlet>
<servlet>
@@ -38,6 +44,14 @@
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
+
+ <servlet>
+ <servlet-name>DeployApp</servlet-name>
+ <display-name>DeployApplication</display-name>
+ <servlet-class>
+ org.apache.wsrp4j.producer.configapp.controller.DeployApp
+ </servlet-class>
+ </servlet>
<servlet-mapping>
<servlet-name>WSRP4JProducer</servlet-name>
@@ -48,6 +62,11 @@
<servlet-name>WSRP4JProducer</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>DeployApp</servlet-name>
+ <url-pattern>/DeployApp/*</url-pattern>
+ </servlet-mapping>
<!-- uncomment this if you want the admin servlet -->
<!--
@@ -74,5 +93,19 @@
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
+
+ <welcome-file-list>
+ <welcome-file>/jsp/index.jsp</welcome-file>
+ </welcome-file-list>
+
+ <taglib>
+ <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
+ <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
+ </taglib>
+
+ <taglib>
+ <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
+ <taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
+ </taglib>
</web-app>
Added: portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/ShowPortletApps.jsp
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/ShowPortletApps.jsp?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/ShowPortletApps.jsp (added)
+++ portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/ShowPortletApps.jsp Wed Dec 20 09:17:16 2006
@@ -0,0 +1,61 @@
+<%--
+Copyright 2003-2006 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 contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
+<%@taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
+
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><fmt:message key="ShowPortletApps.pageTitle"/></title>
+ </head>
+ <body>
+
+ <h1><fmt:message key="ShowPortletApps.mainTitle"/></h1>
+
+ <c:choose>
+
+ <c:when test="${not empty portlets}">
+ <c:forEach var="portlet" items="${portlets}">
+ <p>
+ <c:out value="${portlet.portletHandle}"/>
+ </p>
+ </c:forEach>
+ </c:when>
+
+ <c:otherwise>
+ <p><fmt:message key="ShowPortletApps.noPortletsFound"/></p>
+ </c:otherwise>
+
+ </c:choose>
+
+ <h2><fmt:message key="ShowUpload.upload"/></h2>
+
+ <form action="<c:url value="/DeployApp"/>"
+ enctype="multipart/form-data" method="post">
+
+ <fmt:message key="ShowUpload.selectWar"/>:
+ <input type="file" name="fileupload"/>
+ <p>
+ <input type="submit" value="<fmt:message key='ShowUpload.submit'/>"/>
+ </p>
+ </form>
+
+ </body>
+</html>
Added: portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadFail.jsp
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadFail.jsp?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadFail.jsp (added)
+++ portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadFail.jsp Wed Dec 20 09:17:16 2006
@@ -0,0 +1,34 @@
+<%--
+Copyright 2003-2006 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 contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
+<%@taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
+
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><fmt:message key="UploadFail.pageTitle"/></title>
+ </head>
+ <body>
+
+ <h1><fmt:message key="UploadFail.mainTitle"/></h1>
+ <p><fmt:message key="UploadFail.message"/></p>
+
+ </body>
+</html>
\ No newline at end of file
Added: portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadSuccess.jsp
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadSuccess.jsp?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadSuccess.jsp (added)
+++ portals/wsrp4j/trunk/producer/src/webapp/jsp/configapp/UploadSuccess.jsp Wed Dec 20 09:17:16 2006
@@ -0,0 +1,40 @@
+<%--
+Copyright 2003-2006 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 contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
+<%@taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
+
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><fmt:message key="UploadSuccess.pageTitle"/></title>
+ </head>
+ <body>
+
+ <h1><fmt:message key="UploadSuccess.mainTitle"/></h1>
+ <p><fmt:message key="UploadSuccess.message"/></p>
+
+ <p>
+ <a href="<c:url value="/jsp/index.jsp"/>">
+ <fmt:message key="UploadSuccess.indexLink"/>
+ </a>
+ </p>
+
+ </body>
+</html>
\ No newline at end of file
Added: portals/wsrp4j/trunk/producer/src/webapp/jsp/index.jsp
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/producer/src/webapp/jsp/index.jsp?view=auto&rev=489147
==============================================================================
--- portals/wsrp4j/trunk/producer/src/webapp/jsp/index.jsp (added)
+++ portals/wsrp4j/trunk/producer/src/webapp/jsp/index.jsp Wed Dec 20 09:17:16 2006
@@ -0,0 +1,64 @@
+<%--
+Copyright 2003-2006 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 contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
+<%@taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
+
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><fmt:message key="MainPage.pageTitle"/></title>
+ </head>
+ <body>
+
+ <h1><fmt:message key="MainPage.mainTitle"/></h1>
+
+ <p><fmt:message key="MainPage.message"/></p>
+
+ <p>
+ <h2><fmt:message key="MainPage.bugTitle"/></h2>
+ <div><fmt:message key="MainPage.bugMessage"/></div>
+ </p>
+
+ <c:url var="producerLink" value="/services/WSRPServiceDescriptionService">
+ <c:param name="method" value="getServiceDescription"/>
+ </c:url>
+ <p>
+ <a href="<c:out value="${producerLink}" escapeXml="false"/>">
+ <fmt:message key="MainPage.producerLink"/>
+ </a>
+ </p>
+
+ <p>
+ <a href="<c:url value="/WSRP4JProducer"/>">
+ <fmt:message key="MainPage.servicesLink"/>
+ </a>
+ </p>
+
+ <c:url var="confLink" value="/DeployApp">
+ <c:param name="action" value="showPortlets"/>
+ </c:url>
+ <p>
+ <a href="<c:out value="${confLink}" escapeXml="false"/>">
+ <fmt:message key="MainPage.confLink"/>
+ </a>
+ </p>
+
+ </body>
+</html>
\ No newline at end of file