[KARAF-2833] Make jndi independent of blueprint
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/48ef3aa0 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/48ef3aa0 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/48ef3aa0 Branch: refs/heads/master Commit: 48ef3aa0146bf891fbefa70172ed5377fb6d4fd9 Parents: 85c65dd Author: Guillaume Nodet <gno...@gmail.com> Authored: Thu Apr 10 10:36:46 2014 +0200 Committer: Guillaume Nodet <gno...@gmail.com> Committed: Thu Apr 10 16:03:22 2014 +0200 ---------------------------------------------------------------------- .../enterprise/src/main/feature/feature.xml | 3 +- jndi/pom.xml | 13 ++++- .../karaf/jndi/internal/osgi/Activator.java | 53 ++++++++++++++++++++ .../resources/OSGI-INF/blueprint/jndi-core.xml | 53 -------------------- 4 files changed, 66 insertions(+), 56 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/48ef3aa0/assemblies/features/enterprise/src/main/feature/feature.xml ---------------------------------------------------------------------- diff --git a/assemblies/features/enterprise/src/main/feature/feature.xml b/assemblies/features/enterprise/src/main/feature/feature.xml index 823d3ba..0a57038 100644 --- a/assemblies/features/enterprise/src/main/feature/feature.xml +++ b/assemblies/features/enterprise/src/main/feature/feature.xml @@ -174,14 +174,13 @@ <feature name="jndi" description="OSGi Service Registry JNDI access" version="${project.version}" resolver="(obr)"> <details>JNDI support provided by Apache Aries JNDI ${aries.jndi.version}, including additional service, commands, and MBean.</details> <feature>aries-proxy</feature> - <feature>aries-blueprint</feature> <bundle start-level="30">mvn:org.apache.xbean/xbean-naming/${xbean.version}</bundle> - <bundle start-level="30">mvn:org.apache.karaf.jndi/org.apache.karaf.jndi.core/${project.version}</bundle> <bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.api/${aries.jndi.api.version}</bundle> <bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.core/${aries.jndi.version}</bundle> <bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.rmi/${aries.jndi.version}</bundle> <bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.url/${aries.jndi.version}</bundle> <bundle start-level="30">mvn:org.apache.aries.jndi/org.apache.aries.jndi.legacy.support/${aries.jndi.version}</bundle> + <bundle start-level="30">mvn:org.apache.karaf.jndi/org.apache.karaf.jndi.core/${project.version}</bundle> </feature> <feature name="jdbc" description="JDBC service and commands" version="${project.version}" resolver="(obr)"> http://git-wip-us.apache.org/repos/asf/karaf/blob/48ef3aa0/jndi/pom.xml ---------------------------------------------------------------------- diff --git a/jndi/pom.xml b/jndi/pom.xml index f2db373..1b01030 100644 --- a/jndi/pom.xml +++ b/jndi/pom.xml @@ -52,6 +52,11 @@ <artifactId>org.apache.aries.proxy.api</artifactId> </dependency> <dependency> + <groupId>org.apache.karaf</groupId> + <artifactId>org.apache.karaf.util</artifactId> + <scope>provided</scope> + </dependency> + <dependency> <groupId>org.apache.karaf.shell</groupId> <artifactId>org.apache.karaf.shell.core</artifactId> <optional>true</optional> @@ -85,9 +90,15 @@ </Export-Package> <Private-Package> org.apache.karaf.jndi.command, - org.apache.karaf.jndi.internal + org.apache.karaf.jndi.command.completers, + org.apache.karaf.jndi.internal, + org.apache.karaf.jndi.internal.osgi, + org.apache.karaf.util.tracker </Private-Package> <Karaf-Commands>*</Karaf-Commands> + <Bundle-Activator> + org.apache.karaf.jndi.internal.osgi.Activator + </Bundle-Activator> </instructions> </configuration> </plugin> http://git-wip-us.apache.org/repos/asf/karaf/blob/48ef3aa0/jndi/src/main/java/org/apache/karaf/jndi/internal/osgi/Activator.java ---------------------------------------------------------------------- diff --git a/jndi/src/main/java/org/apache/karaf/jndi/internal/osgi/Activator.java b/jndi/src/main/java/org/apache/karaf/jndi/internal/osgi/Activator.java new file mode 100644 index 0000000..5470e7e --- /dev/null +++ b/jndi/src/main/java/org/apache/karaf/jndi/internal/osgi/Activator.java @@ -0,0 +1,53 @@ +/* + * 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.karaf.jndi.internal.osgi; + +import java.util.Hashtable; + +import javax.naming.spi.InitialContextFactory; + +import org.apache.aries.proxy.ProxyManager; +import org.apache.karaf.jndi.JndiService; +import org.apache.karaf.jndi.KarafInitialContextFactory; +import org.apache.karaf.jndi.internal.JndiMBeanImpl; +import org.apache.karaf.jndi.internal.JndiServiceImpl; +import org.apache.karaf.util.tracker.BaseActivator; + +public class Activator extends BaseActivator { + @Override + protected void doOpen() throws Exception { + trackService(ProxyManager.class); + } + + @Override + protected void doStart() throws Exception { + ProxyManager proxyManager = getTrackedService(ProxyManager.class); + + register(InitialContextFactory.class, new KarafInitialContextFactory()); + + JndiServiceImpl service = new JndiServiceImpl(); + service.setBundleContext(bundleContext); + service.setProxyManager(proxyManager); + Hashtable<String, String> props = new Hashtable<String, String>(); + // bind the JNDI service itself in the JNDI context + props.put("osgi.jndi.service.name", "jndi"); + register(JndiService.class, service, props); + JndiMBeanImpl mbean = new JndiMBeanImpl(); + mbean.setJndiService(service); + registerMBean(mbean, "type=jndi"); + } +} http://git-wip-us.apache.org/repos/asf/karaf/blob/48ef3aa0/jndi/src/main/resources/OSGI-INF/blueprint/jndi-core.xml ---------------------------------------------------------------------- diff --git a/jndi/src/main/resources/OSGI-INF/blueprint/jndi-core.xml b/jndi/src/main/resources/OSGI-INF/blueprint/jndi-core.xml deleted file mode 100644 index e6be3b1..0000000 --- a/jndi/src/main/resources/OSGI-INF/blueprint/jndi-core.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - 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. - --> -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" - xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" - default-activation="lazy"> - - <ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]"/> - - <bean id="karafInitialContextFactory" class="org.apache.karaf.jndi.KarafInitialContextFactory"/> - - <reference id="proxyManager" interface="org.apache.aries.proxy.ProxyManager"/> - - <service ref="karafInitialContextFactory" interface="javax.naming.spi.InitialContextFactory"/> - - <bean id="jndiService" class="org.apache.karaf.jndi.internal.JndiServiceImpl"> - <property name="bundleContext" ref="blueprintBundleContext"/> - <property name="proxyManager" ref="proxyManager"/> - </bean> - - <service ref="jndiService" interface="org.apache.karaf.jndi.JndiService"> - <service-properties> - <!-- bind the JNDI service itself in the JNDI context --> - <entry key="osgi.jndi.service.name" value="jndi"/> - </service-properties> - </service> - - <!-- Management --> - <bean id="jndiMBeanImpl" class="org.apache.karaf.jndi.internal.JndiMBeanImpl"> - <property name="jndiService" ref="jndiService"/> - </bean> - - <service ref="jndiMBeanImpl" auto-export="interfaces"> - <service-properties> - <entry key="jmx.objectname" value="org.apache.karaf:type=jndi,name=$[karaf.name]"/> - </service-properties> - </service> - -</blueprint> \ No newline at end of file