use of com.sun.enterprise.module.single.StaticModulesRegistry in project Payara by payara.
the class ACCModulesManager method initialize.
public static synchronized void initialize(final ClassLoader loader) throws URISyntaxException {
/*
* The habitat might have been initialized earlier. Currently
* we use a single habitat for the JVM.
*/
if (habitat == null) {
habitat = prepareHabitat(loader);
/*
* Set up the default habitat in Globals as soon as we know
* which habitat we'll use.
*/
Globals.setDefaultHabitat(habitat);
ServiceLocator locator = habitat;
DynamicConfigurationService dcs = locator.getService(DynamicConfigurationService.class);
DynamicConfiguration config = dcs.createDynamicConfiguration();
/*
* Remove any already-loaded startup context so we can replace it
* with the ACC one.
*/
config.addUnbindFilter(BuilderHelper.createContractFilter(StartupContext.class.getName()));
/*
* Following the example from AppServerStartup, remove any
* pre-loaded lazy inhabitant for ProcessEnvironment that exists
* from HK2's scan for services. Then add in
* an ACC ProcessEnvironment.
*/
config.addUnbindFilter(BuilderHelper.createContractFilter(ProcessEnvironment.class.getName()));
config.commit();
config = dcs.createDynamicConfiguration();
StartupContext startupContext = new ACCStartupContext();
AbstractActiveDescriptor<?> startupContextDescriptor = BuilderHelper.createConstantDescriptor(startupContext);
startupContextDescriptor.addContractType(StartupContext.class);
config.addActiveDescriptor(startupContextDescriptor);
ModulesRegistry modulesRegistry = new StaticModulesRegistry(ACCModulesManager.class.getClassLoader());
config.addActiveDescriptor(BuilderHelper.createConstantDescriptor(modulesRegistry));
config.addActiveDescriptor(BuilderHelper.createConstantDescriptor(new ProcessEnvironment(ProcessEnvironment.ProcessType.ACC)));
/*
* Create the ClientNamingConfigurator used by naming.
*/
ClientNamingConfigurator cnc = new ClientNamingConfiguratorImpl();
config.addActiveDescriptor(BuilderHelper.createConstantDescriptor(cnc));
Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
AbstractActiveDescriptor<Logger> di = BuilderHelper.createConstantDescriptor(logger);
di.addContractType(Logger.class);
config.addActiveDescriptor(di);
config.commit();
}
}
use of com.sun.enterprise.module.single.StaticModulesRegistry in project Payara by payara.
the class CLIContainer method getServiceLocator.
public ServiceLocator getServiceLocator() {
if (serviceLocator == null) {
Metrix.event("Init hk2 - start");
ModulesRegistry registry = new StaticModulesRegistry(this.classLoader);
serviceLocator = registry.createServiceLocator("default");
if (programOptions != null) {
ServiceLocatorUtilities.addOneConstant(serviceLocator, programOptions);
}
if (environment != null) {
ServiceLocatorUtilities.addOneConstant(serviceLocator, environment);
}
ServiceLocatorUtilities.addOneConstant(serviceLocator, this);
Metrix.event("Init hk2 - done");
}
return serviceLocator;
}
use of com.sun.enterprise.module.single.StaticModulesRegistry in project Payara by payara.
the class CustomizationTokensProvider method initializeLocator.
protected void initializeLocator() {
final ClassLoader ecl = CustomizationTokensProvider.class.getClassLoader();
File inst = new File(System.getProperty(SystemPropertyConstants.INSTALL_ROOT_PROPERTY));
final File ext = new File(inst, "modules");
LOG.log(Level.FINE, "asadmin modules directory: {0}", ext);
if (ext.isDirectory()) {
AccessController.doPrivileged(new PrivilegedAction() {
@Override
public Object run() {
try {
URLClassLoader pl = new URLClassLoader(getJars(ext));
ModulesRegistry registry = new StaticModulesRegistry(pl);
locator = registry.createServiceLocator("default");
return pl;
} catch (IOException ex) {
// any failure here is fatal
LOG.log(Level.SEVERE, ConfigApiLoggerInfo.MODULES_CL_FAILED, ex);
}
return ecl;
}
});
} else {
LOG.log(Level.FINER, "Modules directory does not exist");
}
}
use of com.sun.enterprise.module.single.StaticModulesRegistry in project Payara by payara.
the class Utils method getNewHabitat.
public static ServiceLocator getNewHabitat(String root) {
Properties p = new Properties();
p.put(com.sun.enterprise.glassfish.bootstrap.Constants.INSTALL_ROOT_PROP_NAME, root);
p.put(com.sun.enterprise.glassfish.bootstrap.Constants.INSTANCE_ROOT_PROP_NAME, root);
ModulesRegistry registry = new StaticModulesRegistry(Utils.class.getClassLoader(), new StartupContext(p));
ServiceLocator defaultSL = registry.createServiceLocator("default");
return defaultSL;
}
use of com.sun.enterprise.module.single.StaticModulesRegistry in project Payara by payara.
the class SunDeploymentManager method prepareHabitat.
private void prepareHabitat() {
ModulesRegistry registry = new StaticModulesRegistry(getClass().getClassLoader());
ServiceLocator serviceLocator = registry.createServiceLocator("default");
habitat = serviceLocator.getService(ServiceLocator.class);
StartupContext startupContext = new StartupContext();
ServiceLocatorUtilities.addOneConstant(habitat, startupContext);
ServiceLocatorUtilities.addOneConstant(habitat, new ProcessEnvironment(ProcessEnvironment.ProcessType.Other));
}
Aggregations