You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2014/12/29 17:35:00 UTC
svn commit: r1648389 - in
/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core:
BundleContextUtil.java BundlesConfigurationPrinter.java BundlesServlet.java
ServicesConfigurationPrinter.java ServicesServlet.java
Author: cziegeler
Date: Mon Dec 29 16:35:00 2014
New Revision: 1648389
URL: http://svn.apache.org/r1648389
Log:
FELIX-4737 : Provide an option to use system bundle context to get bundles/services (Support for subsystems)
Added:
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleContextUtil.java (with props)
Modified:
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesConfigurationPrinter.java
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesConfigurationPrinter.java
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java
Added: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleContextUtil.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleContextUtil.java?rev=1648389&view=auto
==============================================================================
--- felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleContextUtil.java (added)
+++ felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleContextUtil.java Mon Dec 29 16:35:00 2014
@@ -0,0 +1,46 @@
+/*
+ * 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.internal.core;
+
+
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * The <code>BundleContextUtil</code> class.
+ */
+public class BundleContextUtil
+{
+ /**
+ * If this property is specified (regardless of it's value), the system bundle is used
+ * as a working bundle context. Otherwise the web console bundle context is used.
+ */
+ public static final String FWK_PROP_USE_SYSTEM_BUNDLE = "webconsole.use.systembundle";
+
+ /**
+ * Get the working bundle context: the bundle context to lookup bundles and
+ * services.
+ */
+ public static BundleContext getWorkingBundleContext( final BundleContext bc)
+ {
+ if ( bc.getProperty(FWK_PROP_USE_SYSTEM_BUNDLE) != null )
+ {
+ return bc.getBundle(0).getBundleContext();
+ }
+ return bc;
+ }
+}
\ No newline at end of file
Propchange: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleContextUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleContextUtil.java
------------------------------------------------------------------------------
svn:keywords = author date id revision rev url
Propchange: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundleContextUtil.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesConfigurationPrinter.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesConfigurationPrinter.java?rev=1648389&r1=1648388&r2=1648389&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesConfigurationPrinter.java (original)
+++ felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesConfigurationPrinter.java Mon Dec 29 16:35:00 2014
@@ -19,10 +19,14 @@ package org.apache.felix.webconsole.inte
import java.io.PrintWriter;
import java.text.MessageFormat;
-import java.util.*;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
import org.apache.felix.webconsole.internal.AbstractConfigurationPrinter;
-import org.osgi.framework.*;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
import org.osgi.service.packageadmin.PackageAdmin;
import org.osgi.util.tracker.ServiceTracker;
@@ -101,7 +105,7 @@ public class BundlesConfigurationPrinter
*/
public void printConfiguration( final PrintWriter pw )
{
- final Bundle[] bundles = this.getBundleContext().getBundles();
+ final Bundle[] bundles = BundleContextUtil.getWorkingBundleContext(this.getBundleContext()).getBundles();
// create a map for sorting first
final TreeMap bundlesMap = new TreeMap();
int active = 0, installed = 0, resolved = 0, fragments = 0;
Modified: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java?rev=1648389&r1=1648388&r2=1648389&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java (original)
+++ felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java Mon Dec 29 16:35:00 2014
@@ -474,7 +474,7 @@ public class BundlesServlet extends Simp
final long bundleId = Long.parseLong( pathInfo );
if ( bundleId >= 0 )
{
- return getBundleContext().getBundle( bundleId );
+ return BundleContextUtil.getWorkingBundleContext(this.getBundleContext()).getBundle( bundleId );
}
}
catch ( NumberFormatException nfe )
@@ -492,7 +492,7 @@ public class BundlesServlet extends Simp
}
// search
- final Bundle[] bundles = getBundleContext().getBundles();
+ final Bundle[] bundles = BundleContextUtil.getWorkingBundleContext(this.getBundleContext()).getBundles();
for(int i=0; i<bundles.length; i++)
{
final Bundle bundle = bundles[i];
@@ -751,7 +751,7 @@ public class BundlesServlet extends Simp
private final Bundle[] getBundles()
{
- return getBundleContext().getBundles();
+ return BundleContextUtil.getWorkingBundleContext(this.getBundleContext()).getBundles();
}
@@ -1672,7 +1672,7 @@ public class BundlesServlet extends Simp
}
else
{
- Bundle[] bundles = getBundleContext().getBundles();
+ Bundle[] bundles = BundleContextUtil.getWorkingBundleContext(this.getBundleContext()).getBundles();
for ( int i = 0; i < bundles.length; i++ )
{
if ( ( bundles[i].getLocation() != null && bundles[i].getLocation().equals( location ) )
Modified: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesConfigurationPrinter.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesConfigurationPrinter.java?rev=1648389&r1=1648388&r2=1648389&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesConfigurationPrinter.java (original)
+++ felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesConfigurationPrinter.java Mon Dec 29 16:35:00 2014
@@ -30,10 +30,9 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
-import org.osgi.service.packageadmin.ExportedPackage;
/**
- * ServicesConfigurationPrinter provides a configuration printer for inspecting the
+ * ServicesConfigurationPrinter provides a configuration printer for inspecting the
* registered services.
*/
public class ServicesConfigurationPrinter extends AbstractConfigurationPrinter implements Constants
@@ -131,7 +130,7 @@ public class ServicesConfigurationPrinte
ServiceReference[] refs = null;
try
{
- refs = getBundleContext().getAllServiceReferences(null, null);
+ refs = BundleContextUtil.getWorkingBundleContext(getBundleContext()).getAllServiceReferences(null, null);
}
catch (InvalidSyntaxException e)
{
Modified: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java?rev=1648389&r1=1648388&r2=1648389&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java (original)
+++ felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java Mon Dec 29 16:35:00 2014
@@ -152,7 +152,7 @@ public class ServicesServlet extends Sim
String filterStr = filter.toString();
try
{
- ServiceReference[] refs = getBundleContext().getAllServiceReferences( null, filterStr );
+ ServiceReference[] refs = BundleContextUtil.getWorkingBundleContext(this.getBundleContext()).getAllServiceReferences( null, filterStr );
if ( refs == null || refs.length != 1 )
{
return null;
@@ -176,7 +176,7 @@ public class ServicesServlet extends Sim
}
try
{
- final ServiceReference[] refs = getBundleContext().getAllServiceReferences( null, filter );
+ final ServiceReference[] refs = BundleContextUtil.getWorkingBundleContext(this.getBundleContext()).getAllServiceReferences( null, filter );
if ( refs != null )
{
return refs;
@@ -420,5 +420,4 @@ public class ServicesServlet extends Sim
response.getWriter().print( TEMPLATE );
}
-
}