felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Felix Meschberger <fmesc...@adobe.com>
Subject Re: svn commit: r1453296 - in /felix/trunk/jaas: pom.xml src/main/java/org/apache/felix/jaas/internal/Activator.java
Date Wed, 06 Mar 2013 12:07:26 GMT
Hi Chetan

A common trick is to no instantiate the plugin ahead of time but register a ServiceFactory
whose getService method creates the plugin to use.

In a few Web Console servlets we do DynamicImport-Package for the servlet API and thus can
wire and use at the point where the service is used and the API is presumably available.

Regards
Felix

Am 06.03.2013 um 12:25 schrieb <chetanm@apache.org>:

> Author: chetanm
> Date: Wed Mar  6 11:25:01 2013
> New Revision: 1453296
> 
> URL: http://svn.apache.org/r1453296
> Log:
> FELIX-3956 - JAAS Support bundle should have optional dependency on Servlet API
> 
> Marking the javax.servlet package as optional. And handling exception while creating
plugin instance in absence of servlet api
> 
> Modified:
>    felix/trunk/jaas/pom.xml
>    felix/trunk/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java
> 
> Modified: felix/trunk/jaas/pom.xml
> URL: http://svn.apache.org/viewvc/felix/trunk/jaas/pom.xml?rev=1453296&r1=1453295&r2=1453296&view=diff
> ==============================================================================
> --- felix/trunk/jaas/pom.xml (original)
> +++ felix/trunk/jaas/pom.xml Wed Mar  6 11:25:01 2013
> @@ -87,6 +87,10 @@
>                         <Bundle-Activator>
>                             org.apache.felix.jaas.internal.Activator
>                         </Bundle-Activator>
> +                        <Import-Package>
> +                          javax.servlet.*;resolution:=optional,
> +                          *
> +                        </Import-Package>
>                         <_removeheaders>
>                             Embed-Dependency,Private-Package,Include-Resource
>                         </_removeheaders>
> 
> Modified: felix/trunk/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java
> URL: http://svn.apache.org/viewvc/felix/trunk/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java?rev=1453296&r1=1453295&r2=1453296&view=diff
> ==============================================================================
> --- felix/trunk/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java (original)
> +++ felix/trunk/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java Wed
Mar  6 11:25:01 2013
> @@ -21,6 +21,7 @@ package org.apache.felix.jaas.internal;
> 
> import org.osgi.framework.BundleActivator;
> import org.osgi.framework.BundleContext;
> +import org.osgi.service.log.LogService;
> 
> public class Activator implements BundleActivator
> {
> @@ -38,7 +39,7 @@ public class Activator implements Bundle
>         loginModuleCreator = new BundleLoginModuleCreator(context, logger);
>         jaasConfigFactory = new JaasConfigFactory(context, loginModuleCreator, logger);
>         configSpi = new ConfigSpiOsgi(context, logger);
> -        webConsolePlugin = new JaasWebConsolePlugin(context, configSpi,loginModuleCreator);
> +        registerWebConsolePlugin(context);
> 
>         logger.open();
>         loginModuleCreator.open();
> @@ -63,4 +64,14 @@ public class Activator implements Bundle
>             logger.close();
>         }
>     }
> +
> +    private void registerWebConsolePlugin(BundleContext context){
> +        try{
> +            webConsolePlugin = new JaasWebConsolePlugin(context, configSpi,loginModuleCreator);
> +        }catch(NoClassDefFoundError t){
> +            //Servlet API is not present. This is an optional requirement
> +            logger.log(LogService.LOG_INFO,"HTTP support not found. JAAS WebConsole
Plugin would not be registered");
> +        }
> +    }
> +
> }
> 
> 


--
Felix Meschberger | Principal Scientist | Adobe








Mime
View raw message