Return-Path:
X-Original-To: apmail-geronimo-scm-archive@www.apache.org
Delivered-To: apmail-geronimo-scm-archive@www.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
by minotaur.apache.org (Postfix) with SMTP id 482BADDED
for ;
Wed, 20 Jun 2012 01:43:08 +0000 (UTC)
Received: (qmail 53313 invoked by uid 500); 20 Jun 2012 01:43:08 -0000
Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org
Received: (qmail 53267 invoked by uid 500); 20 Jun 2012 01:43:08 -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 53258 invoked by uid 99); 20 Jun 2012 01:43:08 -0000
Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230)
by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 Jun 2012 01:43:08 +0000
X-ASF-Spam-Status: No, hits=-2000.0 required=5.0
tests=ALL_TRUSTED
X-Spam-Check-By: apache.org
Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4)
by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 Jun 2012 01:43:04 +0000
Received: from eris.apache.org (localhost [127.0.0.1])
by eris.apache.org (Postfix) with ESMTP id 9C33F2388860;
Wed, 20 Jun 2012 01:42:42 +0000 (UTC)
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: svn commit: r1351912 - in
/geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main:
java/org/apache/geronimo/console/obrmanager/ webapp/WEB-INF/view/obrmanager/
Date: Wed, 20 Jun 2012 01:42:42 -0000
To: scm@geronimo.apache.org
From: gawor@apache.org
X-Mailer: svnmailer-1.0.8-patched
Message-Id: <20120620014242.9C33F2388860@eris.apache.org>
Author: gawor
Date: Wed Jun 20 01:42:41 2012
New Revision: 1351912
URL: http://svn.apache.org/viewvc?rev=1351912&view=rev
Log:
GERONIMO-6360: Support 'resolve' operation from within the portlet
Added:
geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/resolve.jsp (with props)
Modified:
geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/obrmanager/OBRManagerPortlet.java
geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/OBRManager.jsp
Modified: geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/obrmanager/OBRManagerPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/obrmanager/OBRManagerPortlet.java?rev=1351912&r1=1351911&r2=1351912&view=diff
==============================================================================
--- geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/obrmanager/OBRManagerPortlet.java (original)
+++ geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/obrmanager/OBRManagerPortlet.java Wed Jun 20 01:42:41 2012
@@ -30,7 +30,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
@@ -46,6 +48,7 @@ import org.apache.felix.bundlerepository
import org.apache.felix.bundlerepository.Repository;
import org.apache.felix.bundlerepository.RepositoryAdmin;
import org.apache.felix.bundlerepository.Requirement;
+import org.apache.felix.bundlerepository.Resolver;
import org.apache.felix.bundlerepository.Resource;
import org.apache.geronimo.console.BasePortlet;
import org.apache.geronimo.console.util.PortletManager;
@@ -65,6 +68,8 @@ public class OBRManagerPortlet extends B
private PortletRequestDispatcher helpView;
private PortletRequestDispatcher obrManagerView;
+
+ private PortletRequestDispatcher resolveView;
private static final String SERACH_ACTION = "search";
@@ -75,6 +80,8 @@ public class OBRManagerPortlet extends B
private static final String REFRESH_URL_ACTION = "refreshurl";
private static final String ADD_URL_ACTION = "add_url";
+
+ private static final String RESOLVE_ACTION = "resolve";
private static final String SEARCH_TYPE_ALL = "ALL";
@@ -82,7 +89,7 @@ public class OBRManagerPortlet extends B
super.init(portletConfig);
helpView = portletConfig.getPortletContext().getRequestDispatcher("/WEB-INF/view/obrmanager/OBRManager.jsp");
obrManagerView = portletConfig.getPortletContext().getRequestDispatcher("/WEB-INF/view/obrmanager/OBRManager.jsp");
-
+ resolveView = portletConfig.getPortletContext().getRequestDispatcher("/WEB-INF/view/obrmanager/resolve.jsp");
}
public void destroy() {
@@ -130,7 +137,12 @@ public class OBRManagerPortlet extends B
String searchType = actionRequest.getParameter("searchType");
actionResponse.setRenderParameter("searchType", searchType);
}
-
+ else if (RESOLVE_ACTION.equals(action)) {
+ actionResponse.setRenderParameter("mode", RESOLVE_ACTION);
+ String[] selectedResources = actionRequest.getParameterValues("selected-resources");
+ actionResponse.setRenderParameter("selected-resources", selectedResources);
+
+ }
}
private void refreshRepository(ActionRequest actionRequest) throws Exception {
@@ -228,7 +240,16 @@ public class OBRManagerPortlet extends B
if (WindowState.MINIMIZED.equals(renderRequest.getWindowState())) { // minimal view
return;
} else { // normal and maximal view
-
+ if (RESOLVE_ACTION.equals(renderRequest.getParameter("mode"))) {
+ try {
+ resolveResources(renderRequest, renderResponse);
+ } catch (Exception e) {
+ addErrorMessage(renderRequest, getLocalizedString(renderRequest, "consolebase.obrmanager.err.actionError"), e.getMessage());
+ logger.error("Exception", e);
+ }
+ return;
+ }
+
BundleContext bundleContext = getBundleContext(renderRequest);
ServiceReference reference = bundleContext.getServiceReference(RepositoryAdmin.class.getName());
RepositoryAdmin repositoryAdmin = (RepositoryAdmin) bundleContext.getService(reference);
@@ -543,7 +564,46 @@ public class OBRManagerPortlet extends B
logger.error("Error while persisting repository list", e);
}
}
+
+ private void resolveResources(RenderRequest request, RenderResponse response) throws Exception {
+ String[] selectedResources = request.getParameterValues("selected-resources");
+ if (selectedResources == null || selectedResources.length == 0) {
+ throw new IllegalArgumentException("No resources selected");
+ }
+
+ BundleContext bundleContext = getBundleContext(request);
+ ServiceReference reference = null;
+
+ try {
+ reference = bundleContext.getServiceReference(RepositoryAdmin.class.getName());
+ RepositoryAdmin repositoryAdmin = (RepositoryAdmin) bundleContext.getService(reference);
+ Map resourceMap = new HashMap();
+ Resource[] resources = getAllResources(repositoryAdmin);
+ for (Resource resource : resources) {
+ resourceMap.put(resource.getSymbolicName() + "/" + resource.getVersion(), resource);
+ }
+
+ Resolver resolver = repositoryAdmin.resolver();
+
+ for (String resourceName : selectedResources) {
+ Resource resource = resourceMap.get(resourceName);
+ if (resource == null) {
+ throw new IllegalArgumentException("Resource not found: " + resourceName);
+ }
+ resolver.add(resource);
+ }
+
+ request.setAttribute("resolved", resolver.resolve());
+ request.setAttribute("resolver", resolver);
+ resolveView.include(request, response);
+ } finally {
+ if (reference != null) {
+ bundleContext.ungetService(reference);
+ }
+ }
+ }
+
private BundleContext getBundleContext(PortletRequest request) {
return (BundleContext) request.getPortletSession().getPortletContext().getAttribute("osgi-bundlecontext");
}
Modified: geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/OBRManager.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/OBRManager.jsp?rev=1351912&r1=1351911&r2=1351912&view=diff
==============================================================================
--- geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/OBRManager.jsp (original)
+++ geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/OBRManager.jsp Wed Jun 20 01:42:41 2012
@@ -119,8 +119,12 @@
+
+
+
+
Added: geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/resolve.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/resolve.jsp?rev=1351912&view=auto
==============================================================================
--- geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/resolve.jsp (added)
+++ geronimo/server/branches/3.0/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/obrmanager/resolve.jsp Wed Jun 20 01:42:41 2012
@@ -0,0 +1,171 @@
+<%--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+--%>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+
+
+
+
+
+