private boolean registerAsSoap(String endpoint, Object listener) throws UMOException { if (endpoint.startsWith("glue") || endpoint.startsWith("soap") || endpoint.startsWith("axis")) { UMOEndpointURI ep = new MuleEndpointURI(endpoint); QuickConfigurationBuilder builder = new QuickConfigurationBuilder(); // get the service name from the URI path String serviceName = null; if (ep.getPath() != null) { String path = ep.getPath(); if (path.endsWith("/")) { path = path.substring(0, path.length() - 1); } int i = path.lastIndexOf("/"); if (i > -1) { serviceName = path.substring(i + 1); } } else { serviceName = descriptor.getName(); } // now strip off the service name String newEndpoint = endpoint; int i = newEndpoint.indexOf(serviceName); newEndpoint = newEndpoint.substring(0, i - 1); builder.registerComponentInstance(listener, serviceName, new MuleEndpointURI(newEndpoint)); return true; } else { return false; } }
// @java.lang.Override public void registerService(UMODescriptor service) throws UMOException { String modelName = service.getModelName(); if (modelName == null) { logger.warn("Model name not ser on service, using default: " + UMOModel.DEFAULT_MODEL_NAME); modelName = UMOModel.DEFAULT_MODEL_NAME; service.setModelName(modelName); } UMOModel model = lookupModel(modelName); if (model == null) { // TODO throw new IllegalStateException( "Service must be associated with an existing model. Not found: " + modelName); } registerObject(UMODescriptor.class, service.getName(), service); model.registerComponent(service); }