import org.apache.activemq.util.URISupport.CompositeData; //导入方法依赖的package包/类
public BrokerService createBroker(URI brokerURI) throws Exception {
CompositeData compositeData = URISupport.parseComposite(brokerURI);
Map params = new HashMap(compositeData.getParameters());
BrokerService brokerService = new BrokerService();
IntrospectionSupport.setProperties(brokerService, params);
if (!params.isEmpty()) {
String msg = "There are " + params.size()
+ " Broker options that couldn't be set on the BrokerService."
+ " Check the options are spelled correctly."
+ " Unknown parameters=[" + params + "]."
+ " This BrokerService cannot be started.";
throw new IllegalArgumentException(msg);
}
if (compositeData.getPath() != null) {
brokerService.setBrokerName(compositeData.getPath());
}
URI[] components = compositeData.getComponents();
for (int i = 0; i < components.length; i++) {
if ("network".equals(components[i].getScheme())) {
brokerService.addNetworkConnector(components[i].getSchemeSpecificPart());
} else if ("proxy".equals(components[i].getScheme())) {
brokerService.addProxyConnector(components[i].getSchemeSpecificPart());
} else {
brokerService.addConnector(components[i]);
}
}
return brokerService;
}