static ComponentDescription createComponentDescription(final DeploymentUnit unit, final String componentName, final String componentClassName, final String dependsOnEndpointClassName) {
final EEModuleDescription moduleDescription = getRequiredAttachment(unit, EE_MODULE_DESCRIPTION);
// JBoss WEB processors may install fake components for WS endpoints - removing them forcibly
moduleDescription.removeComponent(componentName, componentClassName);
// register WS component
ComponentDescription componentDescription = new WSComponentDescription(componentName, componentClassName, moduleDescription, unit.getServiceName());
moduleDescription.addComponent(componentDescription);
// register WS dependency
final ServiceName endpointServiceName = EndpointService.getServiceName(unit, dependsOnEndpointClassName);
componentDescription.addDependency(endpointServiceName, ServiceBuilder.DependencyType.REQUIRED);
return componentDescription;
}