in modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java [154:330]
private void populateService(AxisService service, OMElement service_element, String directory)
throws DeploymentException {
try {
// Processing service level parameters
Iterator<OMElement> itr = service_element.getChildrenWithName(new QName(TAG_PARAMETER));
processParameters(itr, service, service.getParent());
// process service description
OMElement descriptionElement = service_element.getFirstChildWithName(new QName(TAG_DESCRIPTION));
if (descriptionElement != null) {
OMElement descriptionValue = descriptionElement.getFirstElement();
if (descriptionValue != null) {
StringWriter writer = new StringWriter();
descriptionValue.build();
descriptionValue.serialize(writer);
writer.flush();
service.setDocumentation(writer.toString());
} else {
service.setDocumentation(descriptionElement.getText());
}
} else {
OMAttribute serviceNameatt = service_element.getAttribute(new QName(ATTRIBUTE_NAME));
if (serviceNameatt != null) {
if (!"".equals(serviceNameatt.getAttributeValue().trim())) {
service.setDocumentation(serviceNameatt.getAttributeValue());
}
}
}
OMAttribute serviceNameatt = service_element.getAttribute(new QName(ATTRIBUTE_NAME));
// If the service name is explicitly specified in the services.xml
// then use that as the service name
if (serviceNameatt != null) {
if (!"".equals(serviceNameatt.getAttributeValue().trim())) {
service.setName(serviceNameatt.getAttributeValue());
// To be on the safe side
if (service.getDocumentation() == null) {
service.setDocumentation(serviceNameatt.getAttributeValue());
}
}
}
// Process WS-Addressing flag attribute
OMAttribute addressingRequiredatt = service_element.getAttribute(new QName(
ATTRIBUTE_WSADDRESSING));
if (addressingRequiredatt != null) {
String addressingRequiredString = addressingRequiredatt.getAttributeValue();
AddressingHelper.setAddressingRequirementParemeterValue(service, addressingRequiredString);
}
// Setting service target namespace if any
OMAttribute targetNameSpace = service_element.getAttribute(new QName(TARGET_NAME_SPACE));
if (targetNameSpace != null) {
String nameSpeceVale = targetNameSpace.getAttributeValue();
if (nameSpeceVale != null && !"".equals(nameSpeceVale)) {
service.setTargetNamespace(nameSpeceVale);
}
} else {
if (service.getTargetNamespace() == null || "".equals(service.getTargetNamespace())) {
service.setTargetNamespace(Java2WSDLConstants.DEFAULT_TARGET_NAMESPACE);
}
}
// Setting schema namespece if any
OMElement schemaElement = service_element.getFirstChildWithName(new QName(SCHEMA));
if (schemaElement != null) {
OMAttribute schemaNameSpace = schemaElement.getAttribute(new QName(SCHEMA_NAME_SPACE));
if (schemaNameSpace != null) {
String nameSpeceVale = schemaNameSpace.getAttributeValue();
if (nameSpeceVale != null && !"".equals(nameSpeceVale)) {
service.setSchemaTargetNamespace(nameSpeceVale);
}
}
OMAttribute elementFormDefault = schemaElement.getAttribute(new QName(
SCHEMA_ELEMENT_QUALIFIED));
if (elementFormDefault != null) {
String value = elementFormDefault.getAttributeValue();
if ("true".equals(value)) {
service.setElementFormDefault(true);
} else if ("false".equals(value)) {
service.setElementFormDefault(false);
}
}
}
// Removing exclude operations
OMElement excludeOperations = service_element.getFirstChildWithName(new QName(TAG_EXCLUDE_OPERATIONS));
ArrayList excludeops = null;
if (excludeOperations != null) {
excludeops = new ArrayList();
Iterator<OMElement> excludeOp_itr = excludeOperations.getChildrenWithName(new QName(TAG_OPERATION));
while (excludeOp_itr.hasNext()) {
OMElement opName = excludeOp_itr.next();
excludeops.add(opName.getText().trim());
}
}
if (excludeops == null) {
excludeops = new ArrayList();
}
// processing service-wide modules which required to engage globally
Iterator<OMElement> moduleRefs = service_element.getChildrenWithName(new QName(TAG_MODULE));
while (moduleRefs.hasNext()) {
OMElement moduleref = moduleRefs.next();
OMAttribute moduleRefAttribute = moduleref.getAttribute(new QName(TAG_REFERENCE));
String refName = moduleRefAttribute.getAttributeValue();
axisConfig.addGlobalModuleRef(refName);
}
OMElement messageReceiver = service_element.getFirstChildWithName(
new QName(TAG_MESSAGE_RECEIVERS));
ClassLoader loader = service.getClassLoader();
// Set default message recievers
service.addMessageReceiver("http://www.w3.org/ns/wsdl/in-only",
loadMessageReceiver(loader, "org.apache.axis2.corba.receivers.CorbaInOnlyMessageReceiver"));
service.addMessageReceiver("http://www.w3.org/ns/wsdl/robust-in-only",
loadMessageReceiver(loader, "org.apache.axis2.corba.receivers.CorbaInOnlyMessageReceiver"));
service.addMessageReceiver("http://www.w3.org/ns/wsdl/in-out",
loadMessageReceiver(loader, "org.apache.axis2.corba.receivers.CorbaMessageReceiver"));
if (messageReceiver != null) {
HashMap mrs = processMessageReceivers(loader, messageReceiver);
Iterator keys = mrs.keySet().iterator();
while (keys.hasNext()) {
String key = (String) keys.next();
service.addMessageReceiver(key, (MessageReceiver) mrs.get(key));
}
}
// processing transports
OMElement transports = service_element.getFirstChildWithName(new QName(TAG_TRANSPORTS));
if (transports != null) {
Iterator<OMElement> transport_itr = transports.getChildrenWithName(new QName(TAG_TRANSPORT));
ArrayList trs = new ArrayList();
while (transport_itr.hasNext()) {
OMElement trsEle = transport_itr.next();
String tarnsportName = trsEle.getText().trim();
trs.add(tarnsportName);
}
service.setExposedTransports(trs);
}
// processing operations
processOperations(service, axisConfig, excludeops, null, directory);
Iterator operationsIterator = service.getOperations();
while (operationsIterator.hasNext()) {
AxisOperation operationDesc = (AxisOperation) operationsIterator.next();
ArrayList wsamappings = operationDesc.getWSAMappingList();
if (wsamappings == null) {
continue;
}
if (service.getOperation(operationDesc.getName()) == null) {
service.addOperation(operationDesc);
}
for (int j = 0; j < wsamappings.size(); j++) {
String mapping = (String) wsamappings.get(j);
if (mapping.length() > 0) {
service.mapActionToOperation(mapping, operationDesc);
}
}
}
for (int i = 0; i < excludeops.size(); i++) {
String opName = (String) excludeops.get(i);
service.removeOperation(new QName(opName));
}
} catch (XMLStreamException e) {
throw new DeploymentException(e);
} catch (AxisFault axisFault) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.OPERATION_PROCESS_ERROR, axisFault.getMessage()), axisFault);
} catch (Exception e) {
throw new DeploymentException(e);
}
}