From scm-return-13877-apmail-geronimo-scm-archive=geronimo.apache.org@geronimo.apache.org Wed Aug 02 14:15:29 2006 Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 21317 invoked from network); 2 Aug 2006 14:15:29 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 2 Aug 2006 14:15:29 -0000 Received: (qmail 90645 invoked by uid 500); 2 Aug 2006 14:15:28 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 90609 invoked by uid 500); 2 Aug 2006 14:15:28 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 90598 invoked by uid 99); 2 Aug 2006 14:15:28 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Aug 2006 07:15:28 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Aug 2006 07:15:27 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 871F81A981C; Wed, 2 Aug 2006 07:15:07 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r427997 - in /geronimo/sandbox/svkmerge/trunk: ./ applications/console/console-standard/src/java/org/apache/geronimo/console/car/ applications/console/console-standard/src/webapp/WEB-INF/view/car/ Date: Wed, 02 Aug 2006 14:15:04 -0000 To: scm@geronimo.apache.org From: jdillon@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060802141507.871F81A981C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: jdillon Date: Wed Aug 2 07:15:03 2006 New Revision: 427997 URL: http://svn.apache.org/viewvc?rev=427997&view=rev Log: r613@dyn456093 (orig r427687): ammulder | 2006-08-01 12:32:40 -0700 Merge GERONIMO-2076 to trunk Added: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/AddRepositoryHandler.java (with props) geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/addRepository.jsp (with props) Modified: geronimo/sandbox/svkmerge/trunk/ (props changed) geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/BaseImportExportHandler.java geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/ImportExportPortlet.java geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/index.jsp Propchange: geronimo/sandbox/svkmerge/trunk/ ------------------------------------------------------------------------------ --- svk:merge (original) +++ svk:merge Wed Aug 2 07:15:03 2006 @@ -1,2 +1,2 @@ 13f79535-47bb-0310-9956-ffa450edef68:/geronimo/sandbox/svkmerge/m2migration:419395 -13f79535-47bb-0310-9956-ffa450edef68:/geronimo/trunk:427669 +13f79535-47bb-0310-9956-ffa450edef68:/geronimo/trunk:427687 Added: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/AddRepositoryHandler.java URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/AddRepositoryHandler.java?rev=427997&view=auto ============================================================================== --- geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/AddRepositoryHandler.java (added) +++ geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/AddRepositoryHandler.java Wed Aug 2 07:15:03 2006 @@ -0,0 +1,149 @@ +/** + * + * Copyright 2005 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.geronimo.console.car; + +import org.apache.geronimo.console.MultiPageModel; +import org.apache.geronimo.console.util.PortletManager; +import org.apache.geronimo.console.util.ConfigurationData; +import org.apache.geronimo.system.plugin.PluginRepositoryList; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.portlet.ActionRequest; +import javax.portlet.ActionResponse; +import javax.portlet.PortletException; +import javax.portlet.RenderRequest; +import javax.portlet.RenderResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.FileNotFoundException; +import java.util.List; +import java.util.ArrayList; +import java.util.Arrays; +import java.net.URL; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URLConnection; + +/** + * Handler for the import export main screen. + * + * @version $Rev: 409817 $ $Date: 2006-05-27 03:56:38 -0400 (Sat, 27 May 2006) $ + */ +public class AddRepositoryHandler extends BaseImportExportHandler { + private final static Log log = LogFactory.getLog(AddRepositoryHandler.class); + + public AddRepositoryHandler() { + super(ADD_REPO_MODE, "/WEB-INF/view/car/addRepository.jsp"); + } + + public String actionBeforeView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { + return getMode(); + } + + public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException { + PluginRepositoryList[] lists = PortletManager.getCurrentServer(request).getPluginRepositoryLists(); + List list = new ArrayList(); + for (int i = 0; i < lists.length; i++) { + PluginRepositoryList repo = lists[i]; + list.addAll(Arrays.asList(repo.getRepositories())); + } + String error = request.getParameter("repoError"); + if(error != null && !error.equals("")) { + request.setAttribute("repoError", error); + } + request.setAttribute("repositories", list); + } + + public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { + String repo = request.getParameter("newRepository"); + if(repo != null && !repo.equals("")) { + if(!addRepository(repo, request, response)) { + return getMode(); + } + } + return INDEX_MODE+BEFORE_ACTION; + } + + + private boolean addRepository(String repo, ActionRequest request, ActionResponse response) throws IOException { + if(!repo.endsWith("/")) { + repo = repo+"/"; + } + PluginRepositoryList[] lists = PortletManager.getCurrentServer(request).getPluginRepositoryLists(); + + // Check for duplicates + for (int i = 0; i < lists.length; i++) { + PluginRepositoryList test = lists[i]; + URL[] all = test.getRepositories(); + for (int j = 0; j < all.length; j++) { + String existing = all[j].toString(); + if(!existing.endsWith("/")) { + existing = existing + "/"; + } + if(repo.equals(existing)) { + response.setRenderParameter("repoError", "Already have an entry for repository "+repo); + return false; + } + } + } + + // Verify the repository and add it if valid + if(lists.length > 0) { + URL url; + try { + url = new URL(repo); + } catch (MalformedURLException e) { + response.setRenderParameter("repoError", "Invalid repository URL "+repo); + return false; + } + URL test = new URL(repo+"geronimo-plugins.xml"); + log.debug("Checking repository "+test); + URLConnection urlConnection = test.openConnection(); + if(urlConnection instanceof HttpURLConnection) { + HttpURLConnection con = (HttpURLConnection) urlConnection; + con.connect(); + int result = con.getResponseCode(); + log.debug("Repository check response: "+result); + if(result == 404) { + response.setRenderParameter("repoError", "Not a valid repository; no plugin list found at "+test); + return false; + } else if(result == 401) { + log.warn("Unable to validate repository -- it requires authentication. Assuming you know what you're doing."); + } else if(result != 200) { + log.warn("Unexpected response code while validating repository ("+result+" "+con.getResponseMessage()+"). Assuming you know what you're doing."); + } + con.disconnect(); + } else { + try { + urlConnection.connect(); + InputStream in = urlConnection.getInputStream(); + in.read(); + in.close(); + } catch (IOException e) { + response.setRenderParameter("repoError", "Not a valid repository; no plugin list found at "+test); + return false; + } + } + lists[0].addUserRepository(url); + request.setAttribute("repository", repo); + return true; + } + response.setRenderParameter("repoError", "No repository list found; unable to store new repository"); + return false; + } +} Propchange: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/AddRepositoryHandler.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/BaseImportExportHandler.java URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/BaseImportExportHandler.java?rev=427997&r1=427996&r2=427997&view=diff ============================================================================== --- geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/BaseImportExportHandler.java (original) +++ geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/BaseImportExportHandler.java Wed Aug 2 07:15:03 2006 @@ -27,6 +27,7 @@ protected static final String CONFIG_LIST_SESSION_KEY = "console.plugins.ConfigurationList"; protected static final String DOWNLOAD_RESULTS_SESSION_KEY = "console.plugins.DownloadResults"; protected static final String INDEX_MODE = "index"; + protected static final String ADD_REPO_MODE = "addRepository"; protected static final String LIST_MODE = "list"; protected static final String DOWNLOAD_MODE = "download"; protected static final String VIEW_FOR_DOWNLOAD_MODE = "viewForDownload"; Modified: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/ImportExportPortlet.java URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/ImportExportPortlet.java?rev=427997&r1=427996&r2=427997&view=diff ============================================================================== --- geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/ImportExportPortlet.java (original) +++ geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/ImportExportPortlet.java Wed Aug 2 07:15:03 2006 @@ -39,6 +39,7 @@ addHelper(new ExportHandler(), config); addHelper(new DownloadStatusHandler(), config); addHelper(new UpdateListHandler(), config); + addHelper(new AddRepositoryHandler(), config); addHelper(new ViewPluginDownloadHandler(), config); } Added: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/addRepository.jsp URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/addRepository.jsp?rev=427997&view=auto ============================================================================== --- geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/addRepository.jsp (added) +++ geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/addRepository.jsp Wed Aug 2 07:15:03 2006 @@ -0,0 +1,38 @@ +<%@ page import="org.apache.geronimo.console.util.PortletManager"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%> + + +

Add Plugin Repository

+ + +

The currently available plugin repositories are:

+
    + +
  • ${repo}
  • +
    +
+
+ +

To add a new plugin repository to this list, enter the URL to the repository. The +repository must have a geronimo-plugins.xml file in the root directory +listing the available plugins in the repository.

+ +

You can also download running configurations from another Geronimo server +just as if you're browsing and installing third-party plugins. + If you want to point to a remote Geronimo server, enter a URL such as +http://geronimo-server:8080/console-standard/maven-repo/

+ +
+ + New Repository: +
+ +

${repoError}

+
+
+ +
+ +

">Cancel

Propchange: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/addRepository.jsp ------------------------------------------------------------------------------ svn:eol-style = native Modified: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/index.jsp URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/index.jsp?rev=427997&r1=427996&r2=427997&view=diff ============================================================================== --- geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/index.jsp (original) +++ geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/webapp/WEB-INF/view/car/index.jsp Wed Aug 2 07:15:03 2006 @@ -27,7 +27,8 @@
- (">Update Repository List) + (">Update Repository List + or ">Add Repository) <%----%>