aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alasdair Nottingham <...@apache.org>
Subject Re: svn commit: r1041608 - in /incubator/aries/trunk/jndi/jndi-legacy-support: ./ pom.xml src/main/java/org/apache/aries/jndi/legacy/support/Activator.java src/main/java/org/apache/aries/jndi/legacy/support/LegacyInitialContextFinder.java
Date Thu, 02 Dec 2010 22:23:09 GMT
Yeah, been doing all my well overdue JNDI stuff. Not putting it in the
top level pom was an oversight. I guess I'm still getting to grips
with maven, even after a year.

Alasdair

On 2 December 2010 22:17, Guillaume Nodet <gnodet@gmail.com> wrote:
> Forget that, i've just seen you added it in the build
>
> On Thu, Dec 2, 2010 at 14:16, Guillaume Nodet <gnodet@gmail.com> 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,  <not@apache.org> 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
>



-- 
Alasdair Nottingham
not@apache.org

Mime
View raw message