Forget that, i've just seen you added it in the build

On Thu, Dec 2, 2010 at 14:16, Guillaume Nodet <[email protected]> wrote:
> So why is that not part of the build if it's supposed to be maintained ?
>
> On Thu, Dec 2, 2010 at 14:10,  <[email protected]> wrote:
>> Author: not
>> Date: Thu Dec  2 22:09:59 2010
>> New Revision: 1041608
>>
>> URL: http://svn.apache.org/viewvc?rev=1041608&view=rev
>> Log:
>> ARIES-431 Reintroducing the jndi-legacy-support which was removed. Tagging 
>> with the original JIRA used to provide the code.
>>
>> Added:
>>    incubator/aries/trunk/jndi/jndi-legacy-support/pom.xml
>>    
>> incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/Activator.java
>>    
>> incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/LegacyInitialContextFinder.java
>> Modified:
>>    incubator/aries/trunk/jndi/jndi-legacy-support/   (props changed)
>>
>> Propchange: incubator/aries/trunk/jndi/jndi-legacy-support/
>> ------------------------------------------------------------------------------
>> --- svn:ignore (original)
>> +++ svn:ignore Thu Dec  2 22:09:59 2010
>> @@ -1 +1,4 @@
>>  target
>> +.settings
>> +.classpath
>> +.project
>>
>> Added: incubator/aries/trunk/jndi/jndi-legacy-support/pom.xml
>> URL: 
>> http://svn.apache.org/viewvc/incubator/aries/trunk/jndi/jndi-legacy-support/pom.xml?rev=1041608&view=auto
>> ==============================================================================
>> --- incubator/aries/trunk/jndi/jndi-legacy-support/pom.xml (added)
>> +++ incubator/aries/trunk/jndi/jndi-legacy-support/pom.xml Thu Dec  2 
>> 22:09:59 2010
>> @@ -0,0 +1,52 @@
>> +<!--
>> + 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.
>> +-->
>> +<project xmlns="http://maven.apache.org/POM/4.0.0"; 
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
>> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
>> http://maven.apache.org/maven-v4_0_0.xsd";>
>> +    <modelVersion>4.0.0</modelVersion>
>> +    <parent>
>> +        <groupId>org.apache.aries.jndi</groupId>
>> +        <artifactId>jndi</artifactId>
>> +        <version>0.3-incubating-SNAPSHOT</version>
>> +    </parent>
>> +
>> +    <artifactId>org.apache.aries.jndi.legacy.support</artifactId>
>> +    <packaging>bundle</packaging>
>> +    <name>Apache Aries JNDI Support for Legacy Runtimes</name>
>> +    <description>
>> +      This bundle contains support for legacy runtimes which rely on the 
>> thread context classloader to load JNDI implementations. It is intended for 
>> use with OSGi Web Container implementations which do not correctly work with 
>> the OSGi JNDI Service specification.
>> +    </description>
>> +
>> +    <properties>
>> +        <aries.osgi.export.pkg/>
>> +        <aries.osgi.private.pkg>
>> +            org.apache.aries.jndi.legacy.support
>> +        </aries.osgi.private.pkg>
>> +        <aries.osgi.activator>
>> +            org.apache.aries.jndi.legacy.support.Activator
>> +        </aries.osgi.activator>
>> +    </properties>
>> +
>> +    <dependencies>
>> +        <dependency>
>> +            <groupId>org.osgi</groupId>
>> +            <artifactId>org.osgi.core</artifactId>
>> +            <scope>provided</scope>
>> +        </dependency>
>> +    </dependencies>
>> +
>> +</project>
>>
>> Added: 
>> incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/Activator.java
>> URL: 
>> http://svn.apache.org/viewvc/incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/Activator.java?rev=1041608&view=auto
>> ==============================================================================
>> --- 
>> incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/Activator.java
>>  (added)
>> +++ 
>> incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/Activator.java
>>  Thu Dec  2 22:09:59 2010
>> @@ -0,0 +1,19 @@
>> +package org.apache.aries.jndi.legacy.support;
>> +
>> +import javax.naming.spi.InitialContextFactoryBuilder;
>> +
>> +import org.osgi.framework.BundleActivator;
>> +import org.osgi.framework.BundleContext;
>> +
>> +public class Activator implements BundleActivator {
>> +
>> +       @Override
>> +       public void start(BundleContext context) throws Exception
>> +       {
>> +               
>> context.registerService(InitialContextFactoryBuilder.class.getName(), new 
>> LegacyInitialContextFinder(), null);
>> +       }
>> +
>> +       @Override
>> +       public void stop(BundleContext context) throws Exception { }
>> +
>> +}
>>
>> Added: 
>> incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/LegacyInitialContextFinder.java
>> URL: 
>> http://svn.apache.org/viewvc/incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/LegacyInitialContextFinder.java?rev=1041608&view=auto
>> ==============================================================================
>> --- 
>> incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/LegacyInitialContextFinder.java
>>  (added)
>> +++ 
>> incubator/aries/trunk/jndi/jndi-legacy-support/src/main/java/org/apache/aries/jndi/legacy/support/LegacyInitialContextFinder.java
>>  Thu Dec  2 22:09:59 2010
>> @@ -0,0 +1,54 @@
>> +package org.apache.aries.jndi.legacy.support;
>> +
>> +import java.security.AccessController;
>> +import java.security.PrivilegedAction;
>> +import java.util.Hashtable;
>> +
>> +import javax.naming.Context;
>> +import javax.naming.NamingException;
>> +import javax.naming.spi.InitialContextFactory;
>> +import javax.naming.spi.InitialContextFactoryBuilder;
>> +
>> +/**
>> + * Some OSGi based server runtimes, such as jetty OSGi and virgo rely on 
>> the thread context classloader
>> + * to make their JNDI InitialContextFactory's available in OSGi, rather 
>> than relying on the OSGi JNDI spec.
>> + * This is a little bizare, but perhaps is just a point in time statement. 
>> In any case to support them
>> + * using Aries JNDI we have this ICFB which uses the Thread context 
>> classloader. We don't ship it in the
>> + * jndi uber bundle because it is only for these runtimes which haven't 
>> caught up with the latest OSGi specs.
>> + * Normally we want to enourage the use of the OSGi spec, but this is a 
>> backstop for those wanting to use
>> + * Aries JNDI and one of these runtimes.
>> + *
>> + */
>> +public class LegacyInitialContextFinder implements 
>> InitialContextFactoryBuilder {
>> +
>> +       @Override
>> +       public InitialContextFactory createInitialContextFactory(
>> +                       Hashtable<?, ?> environment) throws NamingException
>> +       {
>> +               String icf = (String) 
>> environment.get(Context.INITIAL_CONTEXT_FACTORY);
>> +               if (icf != null) {
>> +                       ClassLoader cl = AccessController.doPrivileged(new 
>> PrivilegedAction<ClassLoader>() {
>> +                               @Override
>> +                               public ClassLoader run() {
>> +                                       return 
>> Thread.currentThread().getContextClassLoader();
>> +                               }
>> +                       });
>> +
>> +                       try {
>> +                               Class<?> icfClass = Class.forName(icf, 
>> false, cl);
>> +                               if 
>> (InitialContextFactory.class.isAssignableFrom(icfClass)) {
>> +                                       return (InitialContextFactory) 
>> icfClass.newInstance();
>> +                               }
>> +                       } catch (ClassNotFoundException e) {
>> +                               // If the ICF doesn't exist this is 
>> expected. Should return null so the next builder is queried.
>> +                       } catch (InstantiationException e) {
>> +                               // If the ICF couldn't be created just 
>> ignore and return null.
>> +                       } catch (IllegalAccessException e) {
>> +                               // If the default constructor is private, 
>> just ignore and return null.
>> +                       }
>> +               }
>> +
>> +               return null;
>> +       }
>> +
>> +}
>>
>>
>>
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to