}
private Service createServiceFromConfiguration(final Configuration configuration)
throws ConfigurationException
{
final ServiceFactory factory = getServiceFactory(configuration.getChild("factory").getValue(null));
String encodingUri = configuration.getChild("encodingStyleURI").getValue(null);
final Map propertiesMap = new HashMap();
if (encodingUri != null)
{
propertiesMap.put(AegisBindingProvider.TYPE_MAPPING_KEY, encodingUri);
}
if (factory instanceof ObjectServiceFactory)
{
ObjectServiceFactory osf = (ObjectServiceFactory) factory;
osf.setStyle(configuration.getChild("style").getValue("wrapped"));
osf.setUse(configuration.getChild("use").getValue("wrapped"));
}
final Configuration[] properties = configuration.getChildren("property");
for (int i = 0; i < properties.length; i++)
{
propertiesMap.put(properties[i].getAttribute("name"), properties[i].getAttribute("value"));
}
final Service service =
factory.create(loadClass(configuration.getChild("serviceClass")),
configuration.getChild("name").getValue(),
configuration.getChild("namespace").getValue(""),
propertiesMap);
return service;