Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2005, JBoss Inc., and individual contributors as indicated
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.jboss.osgi.framework.internal;
 
 import java.util.List;
 import java.util.Set;
 
The system module provider plugin.

Author(s):
thomas.diesler@jboss.com
Since:
04-Feb-2011
 
 
     // Provide logging
     final Logger log = Logger.getLogger(DefaultFrameworkModuleProvider.class);
 
     private static final ModuleIdentifier FRAMEWORK_MODULE_IDENTIFIER = ModuleIdentifier.create(. + ".framework");
 
     private Module frameworkModule;
 
     static void addService(ServiceTarget serviceTarget) {
         ServiceBuilder<FrameworkModuleProviderbuilder = serviceTarget.addService(.service);
         builder.addDependency(.SystemPathsProvider.classservice.injectedSystemPaths);
         builder.setInitialMode(.);
         builder.install();
     }
 
     private DefaultFrameworkModuleProvider() {
     }
 
     @Override
     public void start(StartContext contextthrows StartException {
         super.start(context);
     }
 
     @Override
     public void stop(StopContext context) {
         super.stop(context);
          = null;
     }
 
     @Override
     public FrameworkModuleProvider getValue() {
         return this;
     }
 
     @Override
     public Module getFrameworkModule(Bundle bundle) {
         if ( == null) {
             SystemBundleState systemBundle = (SystemBundleStatebundle;
             = createFrameworkModule(systemBundle);
        }
        return ;
    }
    private Module createFrameworkModule(SystemBundleState systemBundle) {
        ModuleSpec.Builder specBuilder = ModuleSpec.build();
        SystemPathsProvider plugin = .getValue();
        Set<StringbootPaths = plugin.getBootDelegationPaths();
        PathFilter bootFilter = plugin.getBootDelegationFilter();
        PathFilter acceptAll = PathFilters.acceptAll();
        specBuilder.addDependency(DependencySpec.createSystemDependencySpec(bootFilteracceptAllbootPaths));
        final ClassLoader classLoader = BundleManager.class.getClassLoader();
        LocalLoader localLoader = new LocalLoader() {
            @Override
            public Class<?> loadClassLocal(String nameboolean resolve) {
                try {
                    return classLoader.loadClass(name);
                } catch (ClassNotFoundException ex) {
                    return null;
                }
            }
            @Override
            public Package loadPackageLocal(String name) {
                throw new NotImplementedException();
            }
            @Override
            public List<ResourceloadResourceLocal(String name) {
                return Collections.emptyList();
            }
        };
        Set<StringsystemPaths = plugin.getSystemPaths();
        PathFilter systemFilter = plugin.getSystemFilter();
        specBuilder.addDependency(DependencySpec.createLocalDependencySpec(systemFilter, PathFilters.acceptAll(), localLoadersystemPaths));
        try {
            final ModuleSpec moduleSpec = specBuilder.create();
            ModuleLoader moduleLoader = new ModuleLoader() {
                @Override
                protected ModuleSpec findModule(ModuleIdentifier identifierthrows ModuleLoadException {
                    return (moduleSpec.getModuleIdentifier().equals(identifier) ? moduleSpec : null);
                }
                @Override
                public String toString() {
                    return getClass().getSimpleName();
                }
            };
            return moduleLoader.loadModule(specBuilder.getIdentifier());
        } catch (ModuleLoadException ex) {
            throw new IllegalStateException(ex);
        }
    }
New to GrepCode? Check out our FAQ X