use of org.jboss.msc.service.ServiceName in project wildfly by wildfly.
the class ResourceAdapterDeploymentService method start.
@Override
public void start(StartContext context) throws StartException {
final URL url = connectorXmlDescriptor == null ? null : connectorXmlDescriptor.getUrl();
deploymentName = connectorXmlDescriptor == null ? null : connectorXmlDescriptor.getDeploymentName();
connectorServicesRegistrationName = deploymentName;
final File root = connectorXmlDescriptor == null ? null : connectorXmlDescriptor.getRoot();
DEPLOYMENT_CONNECTOR_LOGGER.debugf("DEPLOYMENT name = %s", deploymentName);
final boolean fromModule = duServiceName.getParent().equals(RaOperationUtil.RAR_MODULE);
final WildFLyRaDeployer raDeployer = new WildFLyRaDeployer(context.getChildTarget(), url, deploymentName, root, classLoader, cmd, activation, deploymentServiceName, fromModule);
raDeployer.setConfiguration(config.getValue());
ClassLoader old = WildFlySecurityManager.getCurrentContextClassLoaderPrivileged();
try {
try {
WritableServiceBasedNamingStore.pushOwner(duServiceName);
WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(classLoader);
raDeployment = raDeployer.doDeploy();
deploymentName = raDeployment.getDeploymentName();
} finally {
WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(old);
WritableServiceBasedNamingStore.popOwner();
}
if (raDeployer.checkActivation(cmd, activation)) {
DEPLOYMENT_CONNECTOR_LOGGER.debugf("Activating: %s", deploymentName);
ServiceName raServiceName = ConnectorServices.getResourceAdapterServiceName(deploymentName);
value = new ResourceAdapterDeployment(raDeployment, deploymentName, raServiceName);
managementRepository.getValue().getConnectors().add(value.getDeployment().getConnector());
registry.getValue().registerResourceAdapterDeployment(value);
ServiceTarget serviceTarget = context.getChildTarget();
serviceTarget.addService(raServiceName, new ResourceAdapterService(raServiceName, value.getDeployment().getResourceAdapter())).setInitialMode(Mode.ACTIVE).install();
final ServiceName deployerServiceName = ConnectorServices.RESOURCE_ADAPTER_DEPLOYER_SERVICE_PREFIX.append(connectorXmlDescriptor.getDeploymentName());
IronJacamarActivationResourceService ijResourceService = new IronJacamarActivationResourceService(registration, deploymentResource, false);
serviceTarget.addService(deployerServiceName.append(ConnectorServices.IRONJACAMAR_RESOURCE), ijResourceService).addDependency(ConnectorServices.IRONJACAMAR_MDR, AS7MetadataRepository.class, ijResourceService.getMdrInjector()).addDependency(deployerServiceName, ResourceAdapterDeployment.class, ijResourceService.getResourceAdapterDeploymentInjector()).setInitialMode(Mode.PASSIVE).install();
} else {
DEPLOYMENT_CONNECTOR_LOGGER.debugf("Not activating: %s", deploymentName);
}
} catch (Throwable t) {
cleanupStartAsync(context, deploymentName, t, duServiceName, classLoader);
}
}
use of org.jboss.msc.service.ServiceName in project wildfly by wildfly.
the class ResourceAdapterXmlDeploymentService method start.
/**
* Start
*/
@Override
public void start(StartContext context) throws StartException {
try {
Connector cmd = mdr.getValue().getResourceAdapter(deployment);
File root = mdr.getValue().getRoot(deployment);
Activation localRaXml = getRaxml();
cmd = (new Merger()).mergeConnectorWithCommonIronJacamar(localRaXml, cmd);
String id = ((ModifiableResourceAdapter) raxml).getId();
final ServiceName raServiceName;
if (id == null || id.trim().isEmpty()) {
raServiceName = ConnectorServices.getResourceAdapterServiceName(raName);
this.connectorServicesRegistrationName = raName;
} else {
raServiceName = ConnectorServices.getResourceAdapterServiceName(id);
this.connectorServicesRegistrationName = id;
}
final WildFlyRaXmlDeployer raDeployer = new WildFlyRaXmlDeployer(context.getChildTarget(), connectorXmlDescriptor.getUrl(), raName, root, module.getClassLoader(), cmd, localRaXml, deploymentServiceName);
raDeployer.setConfiguration(config.getValue());
WritableServiceBasedNamingStore.pushOwner(duServiceName);
ClassLoader old = WildFlySecurityManager.getCurrentContextClassLoaderPrivileged();
try {
WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(module.getClassLoader());
raxmlDeployment = raDeployer.doDeploy();
} finally {
WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(old);
WritableServiceBasedNamingStore.popOwner();
}
value = new ResourceAdapterDeployment(raxmlDeployment, raName, raServiceName);
managementRepository.getValue().getConnectors().add(value.getDeployment().getConnector());
registry.getValue().registerResourceAdapterDeployment(value);
context.getChildTarget().addService(raServiceName, new ResourceAdapterService(raServiceName, value.getDeployment().getResourceAdapter())).addDependency(deploymentServiceName).setInitialMode(ServiceController.Mode.ACTIVE).install();
} catch (Throwable t) {
cleanupStartAsync(context, raName, deploymentServiceName, t);
}
}
use of org.jboss.msc.service.ServiceName in project wildfly by wildfly.
the class AbstractDataSourceService method start.
public synchronized void start(StartContext startContext) throws StartException {
try {
final ServiceContainer container = startContext.getController().getServiceContainer();
deploymentMD = getDeployer().deploy(container);
if (deploymentMD.getCfs().length != 1) {
throw ConnectorLogger.ROOT_LOGGER.cannotStartDs();
}
sqlDataSource = new WildFlyDataSource((javax.sql.DataSource) deploymentMD.getCfs()[0], jndiName.getAbsoluteJndiName());
DS_DEPLOYER_LOGGER.debugf("Adding datasource: %s", deploymentMD.getCfJndiNames()[0]);
CommonDeploymentService cdService = new CommonDeploymentService(deploymentMD);
final ServiceName cdServiceName = CommonDeploymentService.getServiceName(jndiName);
startContext.getController().getServiceContainer().addService(cdServiceName, cdService).addDependency(getServiceName(jndiName)).setInitialMode(ServiceController.Mode.ACTIVE).install();
} catch (Throwable t) {
throw ConnectorLogger.ROOT_LOGGER.deploymentError(t, dsName);
}
}
use of org.jboss.msc.service.ServiceName in project wildfly by wildfly.
the class ConnectionPropertyAdd method performRuntime.
@Override
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode recoveryEnvModel) throws OperationFailedException {
final String configPropertyValue = CONNECTION_PROPERTY_VALUE.resolveModelAttribute(context, recoveryEnvModel).asString();
final ModelNode address = operation.require(OP_ADDR);
PathAddress path = PathAddress.pathAddress(address);
final String jndiName = path.getElement(path.size() - 2).getValue();
final String configPropertyName = PathAddress.pathAddress(address).getLastElement().getValue();
ServiceName serviceName = DataSourceConfigService.SERVICE_NAME_BASE.append(jndiName).append("connection-properties").append(configPropertyName);
final ServiceRegistry registry = context.getServiceRegistry(true);
final ServiceName dataSourceConfigServiceName = DataSourceConfigService.SERVICE_NAME_BASE.append(jndiName);
final ServiceController<?> dataSourceConfigController = registry.getService(dataSourceConfigServiceName);
if (dataSourceConfigController == null || !((DataSource) dataSourceConfigController.getValue()).isEnabled()) {
final ServiceTarget serviceTarget = context.getServiceTarget();
final ConnectionPropertiesService service = new ConnectionPropertiesService(configPropertyName, configPropertyValue);
serviceTarget.addService(serviceName, service).setInitialMode(ServiceController.Mode.NEVER).install();
} else {
context.reloadRequired();
}
}
use of org.jboss.msc.service.ServiceName in project wildfly by wildfly.
the class ConnectionPropertyRemove method performRuntime.
@Override
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException {
if (context.isResourceServiceRestartAllowed()) {
final ModelNode address = operation.require(OP_ADDR);
final PathAddress path = PathAddress.pathAddress(address);
final String jndiName = path.getElement(path.size() - 2).getValue();
final String configPropertyName = PathAddress.pathAddress(address).getLastElement().getValue();
ServiceName configPropertyServiceName = DataSourceConfigService.SERVICE_NAME_BASE.append(jndiName).append("connection-properties").append(configPropertyName);
context.removeService(configPropertyServiceName);
} else {
context.reloadRequired();
}
}
Aggregations