You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by vv...@apache.org on 2014/07/14 15:35:26 UTC
svn commit: r1610409 - in /felix/trunk/webconsole-plugins/ds: ./
src/main/java/org/apache/felix/webconsole/plugins/ds/internal/
src/main/resources/OSGI-INF/l10n/
Author: vvalchev
Date: Mon Jul 14 13:35:25 2014
New Revision: 1610409
URL: http://svn.apache.org/r1610409
Log:
Fixed FELIX-3140 : Display link for component id within the bundle details and service details view
https://issues.apache.org/jira/browse/FELIX-3140
Added:
felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/InfoProvider.java (with props)
Modified:
felix/trunk/webconsole-plugins/ds/pom.xml
felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/Activator.java
felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle.properties
felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle_bg.properties
Modified: felix/trunk/webconsole-plugins/ds/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole-plugins/ds/pom.xml?rev=1610409&r1=1610408&r2=1610409&view=diff
==============================================================================
--- felix/trunk/webconsole-plugins/ds/pom.xml (original)
+++ felix/trunk/webconsole-plugins/ds/pom.xml Mon Jul 14 13:35:25 2014
@@ -96,7 +96,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.webconsole</artifactId>
- <version>3.1.0</version>
+ <version>4.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/Activator.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/Activator.java?rev=1610409&r1=1610408&r2=1610409&view=diff
==============================================================================
--- felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/Activator.java (original)
+++ felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/Activator.java Mon Jul 14 13:35:25 2014
@@ -36,6 +36,7 @@ public class Activator implements Bundle
private SimpleWebConsolePlugin plugin;
private ServiceRegistration printerRegistration;
+ private ServiceRegistration infoRegistration;
/**
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
@@ -77,8 +78,10 @@ public class Activator implements Bundle
if (plugin == null)
{
this.plugin = plugin = new WebConsolePlugin().register(context);
+ final Object service = context.getService(reference);
printerRegistration = context.registerService(ConfigurationPrinter.SERVICE,
- new ComponentConfigurationPrinter(context.getService(reference)), null);
+ new ComponentConfigurationPrinter(service), null);
+ infoRegistration = new InfoProvider(context.getBundle(), service).register(context);
}
return context.getService(reference);
@@ -104,6 +107,13 @@ public class Activator implements Bundle
reg.unregister();
printerRegistration = null;
}
+ // unregister info provider too
+ reg = infoRegistration;
+ if (reg != null)
+ {
+ reg.unregister();
+ infoRegistration = null;
+ }
}
}
Added: felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/InfoProvider.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/InfoProvider.java?rev=1610409&view=auto
==============================================================================
--- felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/InfoProvider.java (added)
+++ felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/InfoProvider.java Mon Jul 14 13:35:25 2014
@@ -0,0 +1,98 @@
+/*
+ * 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.
+ */
+package org.apache.felix.webconsole.plugins.ds.internal;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import org.apache.felix.scr.Component;
+import org.apache.felix.scr.ScrService;
+import org.apache.felix.webconsole.bundleinfo.BundleInfo;
+import org.apache.felix.webconsole.bundleinfo.BundleInfoProvider;
+import org.apache.felix.webconsole.bundleinfo.BundleInfoType;
+import org.apache.felix.webconsole.i18n.LocalizationHelper;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+class InfoProvider implements BundleInfoProvider
+{
+
+ private final LocalizationHelper localization;
+
+ private final ScrService scrService;
+
+ InfoProvider(Bundle bundle, Object scrService)
+ {
+ this.scrService = (ScrService) scrService;
+ localization = new LocalizationHelper(bundle);
+ }
+
+ /**
+ * @see org.apache.felix.webconsole.bundleinfo.BundleInfoProvider#getName(java.util.Locale)
+ */
+ public String getName(Locale locale)
+ {
+ return localization.getResourceBundle(locale).getString("info.name"); //$NON-NLS-1$;;
+ }
+
+ /**
+ * @see org.apache.felix.webconsole.bundleinfo.BundleInfoProvider#getBundleInfo(org.osgi.framework.Bundle,
+ * java.lang.String, java.util.Locale)
+ */
+ public BundleInfo[] getBundleInfo(Bundle bundle, String webConsoleRoot, Locale locale)
+ {
+
+ final Component[] components = scrService.getComponents(bundle);
+ if (null == components || components.length == 0)
+ {
+ return NO_INFO;
+ }
+
+ BundleInfo[] ret = new BundleInfo[components.length];
+ for (int i = 0; i < components.length; i++)
+ {
+ ret[i] = toInfo(components[i], webConsoleRoot, locale);
+ }
+ return ret;
+ }
+
+ private BundleInfo toInfo(Component component, String webConsoleRoot, Locale locale)
+ {
+ final ResourceBundle bundle = localization.getResourceBundle(locale);
+ final String state = ComponentConfigurationPrinter.toStateString(component.getState());
+ final String name = component.getName();
+ final String descr = bundle.getString("info.descr"); //$NON-NLS-1$;
+ String key = bundle.getString("info.key"); //$NON-NLS-1$;
+ // Component #{0} {1}, state {2}
+ key = MessageFormat.format(key, new Object[] { String.valueOf(component.getId()), //
+ name != null ? name : "", //$NON-NLS-1$
+ state, //
+ });
+ return new BundleInfo(key, webConsoleRoot + "/components/" + component.getId(), //$NON-NLS-1$
+ BundleInfoType.LINK, descr);
+ }
+
+ ServiceRegistration register(BundleContext context)
+ {
+ return context.registerService(BundleInfoProvider.class.getName(), this, null);
+ }
+
+}
Propchange: felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/InfoProvider.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle.properties
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle.properties?rev=1610409&r1=1610408&r2=1610409&view=diff
==============================================================================
--- felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle.properties (original)
+++ felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle.properties Mon Jul 14 13:35:25 2014
@@ -47,3 +47,6 @@ scr.serv=Services
scr.title.actions=Actions
scr.title.status=Status
scr.title.name=Name
+info.name=Declarative Service Components
+info.key=Component #{0} {1}, state {2}
+info.descr=This Declarative Service Component is provided by the bundle. Click to see more details in "Components" plugin.
Modified: felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle_bg.properties
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle_bg.properties?rev=1610409&r1=1610408&r2=1610409&view=diff
==============================================================================
--- felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle_bg.properties (original)
+++ felix/trunk/webconsole-plugins/ds/src/main/resources/OSGI-INF/l10n/bundle_bg.properties Mon Jul 14 13:35:25 2014
@@ -47,3 +47,6 @@ scr.serv=УÑлÑги
scr.title.actions=ÐейÑÑвиÑ
scr.title.status=СÑаÑÑÑ
scr.title.name=Ðме
+info.name=ÐомпоненÑи
+info.key=ÐÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ #{0} {1}, ÑÑаÑÑÑ {2}
+info.descr=Този ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ñе пÑедоÑÑÐ°Ð²Ñ Ð¾Ñ ÑекÑÑиÑÑ Ð±ÑндÑл. ÐликнеÑе за повеÑе деÑайли в "ÐомпоненÑи" плÑгина.