List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getString
public String getString(String key)
From source file:ch.admin.suis.msghandler.config.ClientConfigurationFactory.java
private void setupSiginingOutbox(List cfgSigningOutboxes, String baseDir, Outbox outbox) throws ConfigurationException { for (Iterator k = cfgSigningOutboxes.iterator(); k.hasNext();) { HierarchicalConfiguration signingOutboxSub = (HierarchicalConfiguration) k.next(); // where the original files are final String srcDirName = signingOutboxSub.getString(DIR_PATH); // where the original files should be moved to final String processDir = signingOutboxSub.getString(".[@processedDir]"); final String batchSignerCfg = signingOutboxSub.getString(".[@signingProfilePath]"); File fileSigningOutbox = FileUtils.createPath(baseDir, srcDirName); FileUtils.isDirectory(fileSigningOutbox, DIR_PATH); File fileProcessDir = StringUtils.isEmpty(processDir) ? null : FileUtils.createPath(baseDir, processDir); if (fileProcessDir != null) { FileUtils.isDirectory(fileProcessDir, ".[@processedDir]"); }//from w ww. j a v a 2 s . c o m File fileBatchSignerCfg = FileUtils.createPath(baseDir, batchSignerCfg); FileUtils.isFile(fileBatchSignerCfg, ".[@signingProfilePath]"); checkSignatureOutbox(fileSigningOutbox, fileProcessDir); SigningOutbox signingOutbox = null; List certificateConfigs = signingOutboxSub.configurationsAt(".certificate"); List certificateFileConfigs = signingOutboxSub.configurationsAt(".certificateConfigFile"); //First check if the signing config is in the MH config.xml file. Such as p12 file and password if (certificateConfigs.size() == 1) { HierarchicalConfiguration certificateConfigsSub = (HierarchicalConfiguration) certificateConfigs .get(0); final String p12FileName = certificateConfigsSub.getString(".[@filePath]"); File fileP12 = FileUtils.createPath(baseDir, p12FileName); FileUtils.isFile(fileP12, "certificate[@filePath]"); final String p12Password = certificateConfigsSub.getString(".[@password]"); signingOutbox = new SigningOutboxMHCfg(fileP12, p12Password, fileSigningOutbox, fileBatchSignerCfg, fileProcessDir); LOG.info("SigningOutbox p12 file: " + fileP12.getAbsolutePath()); } //Second if not in MH config.xml then try the sedex certificateConfiguration else if (certificateFileConfigs.size() == 1) { HierarchicalConfiguration certificateConfigsSub = (HierarchicalConfiguration) certificateFileConfigs .get(0); final String fileName = certificateConfigsSub.getString(".[@filePath]"); File sedexCertConfig = FileUtils.createPath(baseDir, fileName); signingOutbox = new SigningOutboxSedexCfg(sedexCertConfig, fileSigningOutbox, fileBatchSignerCfg, fileProcessDir); LOG.info("SigningOutbox sedex certificateConfiguration file: " + sedexCertConfig.getAbsolutePath()); } outbox.addSigningOutbox(signingOutbox); // add it LOG.info("signing outbox added to " + outbox.getDirectory() + ": " + signingOutbox); } }
From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.bacnet.BacnetDeviceLoaderImpl.java
public ArrayList<Connector> initDevices(ObjectBroker objectBroker) { setConfiguration(devicesConfig);//from w w w.j av a 2 s.c o m objectBroker.getConfigDb().prepareDeviceLoader(getClass().getName()); ArrayList<Connector> connectors = new ArrayList<Connector>(); List<JsonNode> connectorsFromDb = objectBroker.getConfigDb().getConnectors("bacnet"); int connectorsSize = 0; // bacnet if (connectorsFromDb.size() <= 0) { Object bacnetConnectors = devicesConfig.getProperty("bacnet.connector.name"); if (bacnetConnectors != null) { connectorsSize = 1; } else { connectorsSize = 0; } if (bacnetConnectors instanceof Collection<?>) { connectorsSize = ((Collection<?>) bacnetConnectors).size(); } } else connectorsSize = connectorsFromDb.size(); for (int connector = 0; connector < connectorsSize; connector++) { HierarchicalConfiguration subConfig = devicesConfig .configurationAt("bacnet.connector(" + connector + ")"); Object bacnetConfiguredDevices = subConfig.getProperty("device.type"); String connectorId = ""; String connectorName = subConfig.getString("name"); String broadcastAddress = subConfig.getString("broadcastAddress"); int localPort = subConfig.getInteger("localPort", 3671); int localDeviceID = subConfig.getInteger("localDeviceID", 12345); boolean enabled = subConfig.getBoolean("enabled", false); Boolean groupCommEnabled = subConfig.getBoolean("groupCommEnabled", null); Boolean historyEnabled = subConfig.getBoolean("historyEnabled", null); try { connectorId = connectorsFromDb.get(connector).get("_id").asText(); connectorName = connectorsFromDb.get(connector).get("name").asText(); enabled = connectorsFromDb.get(connector).get("enabled").asBoolean(); groupCommEnabled = connectorsFromDb.get(connector).get("groupCommEnabled").asBoolean(); historyEnabled = connectorsFromDb.get(connector).get("historyEnabled").asBoolean(); broadcastAddress = connectorsFromDb.get(connector).get("broadcastAddress").asText(); localPort = connectorsFromDb.get(connector).get("localPort").asInt(); localDeviceID = connectorsFromDb.get(connector).get("localDeviceID").asInt(); } catch (Exception e) { log.info("Cannot fetch configuration from Database, using devices.xml"); } if (enabled) { try { BACnetConnector bacnetConnector = new BACnetConnector(localDeviceID, broadcastAddress, localPort); bacnetConnector.setName(connectorName); bacnetConnector.setTechnology("bacnet"); bacnetConnector.setEnabled(enabled); Obj bacRoot = bacnetConnector.getRootObj(); bacRoot.setName(connectorName); bacRoot.setHref(new Uri(connectorName.replaceAll("[^a-zA-Z0-9-~\\(\\)]", ""))); objectBroker.addObj(bacRoot, true); // Transition step: Moving configs to DB: all connector enabled, uncomment when done //bacnetConnector.connect(); Boolean discoveryEnabled = subConfig.getBoolean("discovery-enabled", false); if (discoveryEnabled) bacnetConnector.discover( new DeviceDiscoveryListener(objectBroker, groupCommEnabled, historyEnabled)); connectors.add(bacnetConnector); int numberOfDevices = 0; List<Device> devicesFromDb = objectBroker.getConfigDb().getDevices(connectorId); if (connectorsFromDb.size() <= 0) { // TODO: bacnetConfiguredDevices is from devices.xml --> mismatch when a connector does not have any device associated, // e.g., bacnet a-lab (auto) connector // do like this for other device loaders! if (bacnetConfiguredDevices != null) { numberOfDevices = 1; // there is at least one device. } if (bacnetConfiguredDevices instanceof Collection<?>) { Collection<?> bacnetDevices = (Collection<?>) bacnetConfiguredDevices; numberOfDevices = bacnetDevices.size(); } } else numberOfDevices = devicesFromDb.size(); log.info(numberOfDevices + " BACnet devices found in configuration for connector " + connectorName); // Transition step: comment when done for (int i = 0; i < numberOfDevices; i++) { String type = subConfig.getString("device(" + i + ").type"); List<Object> address = subConfig.getList("device(" + i + ").address"); String addressString = address.toString(); String ipv6 = subConfig.getString("device(" + i + ").ipv6"); String href = subConfig.getString("device(" + i + ").href"); // device specific setting Boolean historyEnabledDevice = subConfig.getBoolean("device(" + i + ").historyEnabled", null); if (historyEnabledDevice != null) { historyEnabled = historyEnabledDevice; } // device specific setting Boolean groupCommEnabledDevice = subConfig.getBoolean("device(" + i + ").groupCommEnabled", null); if (groupCommEnabledDevice != null) { // overwrite general settings groupCommEnabled = groupCommEnabledDevice; } String name = subConfig.getString("device(" + i + ").name"); String displayName = subConfig.getString("device(" + i + ").displayName"); Boolean refreshEnabled = subConfig.getBoolean("device(" + i + ").refreshEnabled", false); Integer historyCount = subConfig.getInt("device(" + i + ").historyCount", 0); Device deviceFromDb; try { deviceFromDb = devicesFromDb.get(i); type = deviceFromDb.getType(); addressString = deviceFromDb.getAddress(); String subAddr[] = addressString.substring(1, addressString.length() - 1).split(", "); address = Arrays.asList((Object[]) subAddr); ipv6 = deviceFromDb.getIpv6(); href = deviceFromDb.getHref(); name = deviceFromDb.getName(); displayName = deviceFromDb.getDisplayName(); historyEnabled = deviceFromDb.isHistoryEnabled(); groupCommEnabled = deviceFromDb.isGroupcommEnabled(); refreshEnabled = deviceFromDb.isRefreshEnabled(); historyCount = deviceFromDb.getHistoryCount(); } catch (Exception e) { } // Transition step: comment when done Device d = new Device(type, ipv6, addressString, href, name, displayName, historyCount, historyEnabled, groupCommEnabled, refreshEnabled); objectBroker.getConfigDb().prepareDevice(connectorName, d); if (type != null && address != null) { // now follow possible multiple data points // identified through // the device Id, object type, the instance number and the // property identifier, which shall be packaged into an BacnetDatapointInfo object ObjectIdentifier[] objectIdentifier = new ObjectIdentifier[(address.size()) / 4]; PropertyIdentifier[] propertyIdentifier = new PropertyIdentifier[(address.size()) / 4]; BacnetDataPointInfo[] bacnetDataPointInfo = new BacnetDataPointInfo[(address.size()) / 4]; int q = 0; for (int p = 0; p <= address.size() - 4; p += 4) { int remoteDeviceID = Integer.parseInt((String) address.get(p)); ObjectIdentifier objIdentifier = new ObjectIdentifier( new ObjectType(Integer.parseInt((String) address.get(p + 1))), Integer.parseInt((String) address.get(p + 2))); PropertyIdentifier propIdentifier = new PropertyIdentifier( Integer.parseInt((String) address.get(p + 3))); objectIdentifier[q] = objIdentifier; propertyIdentifier[q] = propIdentifier; bacnetDataPointInfo[q] = new BacnetDataPointInfo(remoteDeviceID, objIdentifier, propIdentifier); q = q + 1; } Object[] args = new Object[q + 1]; args[0] = bacnetConnector; // args[1] = Integer.parseInt(remoteDeviceID); for (int p = 0; p < bacnetDataPointInfo.length; p++) { args[1 + p] = bacnetDataPointInfo[p]; } try { Constructor<?>[] declaredConstructors = Class.forName(type) .getDeclaredConstructors(); for (int k = 0; k < declaredConstructors.length; k++) { if (declaredConstructors[k].getParameterTypes().length == args.length) { // constructor // that // takes // the // KNX // connector // and // group // address // as // argument Obj bacnetDevice = (Obj) declaredConstructors[k].newInstance(args); // create // a // instance // of // the // specified // KNX // device bacnetDevice.setHref( new Uri(URLEncoder.encode(connectorName, "UTF-8") + "/" + href)); if (name != null && name.length() > 0) { bacnetDevice.setName(name); } if (displayName != null && displayName.length() > 0) { bacnetDevice.setDisplayName(displayName); } if (ipv6 != null) { objectBroker.addObj(bacnetDevice, ipv6); } else { objectBroker.addObj(bacnetDevice); } myObjects.add(bacnetDevice); bacnetDevice.initialize(); if (historyEnabled != null && historyEnabled) { if (historyCount != null && historyCount != 0) { objectBroker.addHistoryToDatapoints(bacnetDevice, historyCount); } else { objectBroker.addHistoryToDatapoints(bacnetDevice); } } if (refreshEnabled != null && refreshEnabled) { objectBroker.enableObjectRefresh(bacnetDevice); } if (groupCommEnabled != null && groupCommEnabled) { objectBroker.enableGroupComm(bacnetDevice); } } } } catch (SecurityException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } } catch (Exception e) { e.printStackTrace(); } } } return connectors; }
From source file:ch.admin.suis.msghandler.config.ClientConfigurationFactory.java
private void setupTransparentApps(String defaultSenderCronValue, String baseDir, ReceiverConfiguration receiverConfiguration, StatusCheckerConfiguration statusCheckerConfiguration) throws ConfigurationException { // ************** transparent applications LOG.info("Configure the transparent applications..."); final List transparent = xmlConfig.configurationsAt("transparentApp"); for (Iterator i = transparent.iterator(); i.hasNext();) { HierarchicalConfiguration sub = (HierarchicalConfiguration) i.next(); // the sedex ID of this application final String sedexId = sub.getString(".[@participantId]"); final String outboxDir = sub.getString("outbox[@dirPath]"); // the outbox if (null != outboxDir) { final String cronValue = sub.getString("outbox[@cron]"); // the outbox exists final SenderConfiguration senderConfiguration = new SenderConfiguration( StringUtils.defaultIfEmpty(cronValue, defaultSenderCronValue)); senderConfiguration.addOutbox(new Outbox(FileUtils.createPath(baseDir, outboxDir))); clientConfiguration.addTransparentSenderConfiguration(senderConfiguration); // MANTIS 5023 LOG.info("transparent sender added, " + senderConfiguration); }// w w w.j a va2s . c o m // inboxes final List inboxes = sub.configurationsAt(".inbox"); for (Iterator j = inboxes.iterator(); j.hasNext();) { final HierarchicalConfiguration inboxSub = (HierarchicalConfiguration) j.next(); String inboxDir = inboxSub.getString("[@dirPath]"); File tmpDir = FileUtils.createPath(baseDir, inboxDir); Inbox inbox = new TransparentInbox(tmpDir, sedexId, MessageType.from(inboxSub.getString(MSG_TYPES))); checkSedexIdMsgTypes(inbox); receiverConfiguration.addInbox(inbox); } // receipt folder if (sub.getString("receipts[@dirPath]") != null) { String receiptsDir = sub.getString("receipts[@dirPath]"); File tmpDir = FileUtils.createPath(baseDir, receiptsDir); statusCheckerConfiguration.addReceiptFolder(new ReceiptsFolder(tmpDir, sedexId, MessageType.from(sub.getString("receipts[@msgTypes]")))); } } // wrap-up for MANTIS 5023 clientConfiguration.setReceiverConfiguration(receiverConfiguration); LOG.info("receiver added, " + receiverConfiguration); clientConfiguration.setStatusCheckerConfiguration(statusCheckerConfiguration); LOG.info("status checker added, " + statusCheckerConfiguration); // **************** status database settings clientConfiguration.setLogServiceConfiguration(createLogServiceConfig(xmlConfig)); // the localRecipients (replacement from targetDirectoryResolver) final List<HierarchicalConfiguration> localRecipients = xmlConfig .configurationsAt("messageHandler.localRecipients.localRecipient"); for (HierarchicalConfiguration lr : localRecipients) { final String recipientId = lr.getString("[@recipientId]"); final String msgTypes = lr.getString(MSG_TYPES); LocalRecipient localRecipient = new LocalRecipient(recipientId, msgTypes); LOG.info("LocalRecipient: " + localRecipient); clientConfiguration.addLocalRecipient(localRecipient); } // if the protocol files should be created ProtocolWriter.getInstance() .setActive(xmlConfig.getBoolean("messageHandler.protocol[@createPerMessageProtocols]", false)); LOG.info(ProtocolWriter.getInstance().isActive() ? "protocol writer configured" : "protocol writer not configured"); }
From source file:com.eyeq.pivot4j.ui.AbstractPivotRenderer.java
/** * @see com.eyeq.pivot4j.state.Configurable#restoreSettings(org.apache.commons.configuration.HierarchicalConfiguration) *///from w w w . j a va 2 s . c o m @Override public void restoreSettings(HierarchicalConfiguration configuration) { if (configuration == null) { throw new NullArgumentException("configuration"); } this.showDimensionTitle = configuration.getBoolean("showDimensionTitle", true); this.showParentMembers = configuration.getBoolean("showParentMembers", false); this.hideSpans = configuration.getBoolean("hideSpans", false); List<HierarchicalConfiguration> aggregationSettings = configuration .configurationsAt("aggregations.aggregation"); this.aggregatorNames.clear(); for (HierarchicalConfiguration aggConfig : aggregationSettings) { String name = aggConfig.getString("[@name]"); if (name != null) { Axis axis = Axis.Standard.valueOf(aggConfig.getString("[@axis]")); AggregatorPosition position = AggregatorPosition.valueOf(aggConfig.getString("[@position]")); AggregatorKey key = new AggregatorKey(axis, position); List<String> names = aggregatorNames.get(key); if (names == null) { names = new LinkedList<String>(); aggregatorNames.put(key, names); } if (!names.contains(name)) { names.add(name); } } } initializeProperties(); if (cellProperties != null) { try { cellProperties.restoreSettings(configuration.configurationAt("properties.cell")); } catch (IllegalArgumentException e) { } } if (headerProperties != null) { try { headerProperties.restoreSettings(configuration.configurationAt("properties.header")); } catch (IllegalArgumentException e) { } } }
From source file:ch.admin.suis.msghandler.config.ClientConfigurationFactory.java
private void setupNativeOutbox(Iterator j, String baseDir, String sedexId, SenderConfiguration defaultSenderConfiguration) throws ConfigurationException { final HierarchicalConfiguration outboxSub = (HierarchicalConfiguration) j.next(); final MessageType messageType = new MessageType(outboxSub.getInt(".[@msgType]")); String resolverFile = outboxSub.getString(".recipientIdResolver[@filePath]"); File scriptFile = FileUtils.createPath(baseDir, resolverFile); FileUtils.isFile(scriptFile, ".recipientIdResolver[@filePath]"); final ScriptedNamingService resolver = new ScriptedNamingService(scriptFile, outboxSub.getString(".recipientIdResolver[@method]")); String outboxDir = outboxSub.getString(DIR_PATH); final Outbox outbox = new Outbox(FileUtils.createPath(baseDir, outboxDir), sedexId, messageType, resolver); LOG.info("participant ID resolver configured, " + resolver + " for outbox " + outbox.getDirectory()); final String outboxCron = outboxSub.getString("[@cron]"); if (null != outboxCron) { // the outbox defines its own cron, create a separate sender configuration for this outbox // create the sender configuration - with the cron from the outbox final SenderConfiguration senderConfiguration = new SenderConfiguration(outboxCron); senderConfiguration.addOutbox(outbox); // and add this configuration to the client config clientConfiguration.addSenderConfiguration(senderConfiguration); LOG.info("sender added, " + senderConfiguration); } else {//from ww w .j a v a 2s . c o m // add this outbox to the default configuration defaultSenderConfiguration.addOutbox(outbox); } // the signing outboxes final List cfgSigningOutboxes = outboxSub.configurationsAt(".signingOutbox"); setupSiginingOutbox(cfgSigningOutboxes, baseDir, outbox); }
From source file:com.sonicle.webtop.core.sdk.ServiceManifest.java
public ServiceManifest(HierarchicalConfiguration svcEl) throws Exception { String pkg = svcEl.getString("package"); if (StringUtils.isEmpty(pkg)) throw new Exception("Invalid value for property [package]"); javaPackage = StringUtils.lowerCase(pkg); id = javaPackage;// www . jav a 2 s .c om String jspkg = svcEl.getString("jsPackage"); if (StringUtils.isEmpty(jspkg)) throw new Exception("Invalid value for property [jsPackage]"); jsPackage = jspkg; // Lowercase allowed! String sname = svcEl.getString("shortName"); if (StringUtils.isEmpty(sname)) throw new Exception("Invalid value for property [shortName]"); xid = sname; ServiceVersion ver = new ServiceVersion(svcEl.getString("version")); if (ver.isUndefined()) throw new Exception("Invalid value for property [version]"); version = ver; buildDate = StringUtils.defaultIfBlank(svcEl.getString("buildDate"), null); buildType = StringUtils.defaultIfBlank(svcEl.getString("buildType"), BUILD_TYPE_DEV); company = StringUtils.defaultIfBlank(svcEl.getString("company"), null); companyEmail = StringUtils.defaultIfBlank(svcEl.getString("companyEmail"), null); companyWebSite = StringUtils.defaultIfBlank(svcEl.getString("companyWebSite"), null); supportEmail = StringUtils.defaultIfBlank(svcEl.getString("supportEmail"), null); List<HierarchicalConfiguration> hconf = null; hconf = svcEl.configurationsAt("controller"); if (!hconf.isEmpty()) { //if (hconf.size() != 1) throw new Exception(invalidCardinalityEx("controller", "1")); if (hconf.size() > 1) throw new Exception(invalidCardinalityEx("controller", "*1")); final String cn = hconf.get(0).getString("[@className]"); if (StringUtils.isBlank(cn)) throw new Exception(invalidAttributeValueEx("controller", "className")); controllerClassName = buildJavaClassName(javaPackage, cn); } else { // Old-style configuration if (svcEl.containsKey("controllerClassName")) { controllerClassName = LangUtils.buildClassName(javaPackage, StringUtils.defaultIfEmpty(svcEl.getString("controllerClassName"), "Controller")); } } hconf = svcEl.configurationsAt("manager"); if (!hconf.isEmpty()) { if (!hconf.isEmpty()) { if (hconf.size() > 1) throw new Exception(invalidCardinalityEx("manager", "*1")); final String cn = hconf.get(0).getString("[@className]"); if (StringUtils.isBlank(cn)) throw new Exception(invalidAttributeValueEx("manager", "className")); managerClassName = buildJavaClassName(javaPackage, cn); } } else { // Old-style configuration if (svcEl.containsKey("managerClassName")) { managerClassName = LangUtils.buildClassName(javaPackage, StringUtils.defaultIfEmpty(svcEl.getString("managerClassName"), "Manager")); } } /* hconf = svcEl.configurationsAt("privateService"); if (!hconf.isEmpty()) { if (!hconf.isEmpty()) { if (hconf.size() > 1) throw new Exception(invalidCardinalityEx("manager", "*1")); final String cn = hconf.get(0).getString("[@className]"); if (StringUtils.isBlank(cn)) throw new Exception(invalidAttributeValueEx("privateService", "className")); final String jcn = hconf.get(0).getString("[@jsClassName]"); if (StringUtils.isBlank(jcn)) throw new Exception(invalidAttributeValueEx("privateService", "jsClassName")); privateServiceClassName = LangUtils.buildClassName(javaPackage, cn); privateServiceJsClassName = jcn; privateServiceVarsModelJsClassName = hconf.get(0).getString("[@jsClassName]"); } } else { // Old-style configuration if (svcEl.containsKey("serviceClassName")) { String cn = StringUtils.defaultIfEmpty(svcEl.getString("serviceClassName"), "Service"); privateServiceClassName = LangUtils.buildClassName(javaPackage, cn); privateServiceJsClassName = StringUtils.defaultIfEmpty(svcEl.getString("serviceJsClassName"), cn); privateServiceVarsModelJsClassName = StringUtils.defaultIfEmpty(svcEl.getString("serviceVarsModelJsClassName"), "model.ServiceVars"); } } */ if (svcEl.containsKey("serviceClassName")) { String cn = StringUtils.defaultIfEmpty(svcEl.getString("serviceClassName"), "Service"); privateServiceClassName = LangUtils.buildClassName(javaPackage, cn); privateServiceJsClassName = StringUtils.defaultIfEmpty(svcEl.getString("serviceJsClassName"), cn); privateServiceVarsModelJsClassName = StringUtils .defaultIfEmpty(svcEl.getString("serviceVarsModelJsClassName"), "model.ServiceVars"); } if (svcEl.containsKey("publicServiceClassName")) { String cn = StringUtils.defaultIfEmpty(svcEl.getString("publicServiceClassName"), "PublicService"); publicServiceClassName = LangUtils.buildClassName(javaPackage, StringUtils.defaultIfEmpty(svcEl.getString("publicServiceClassName"), "PublicService")); publicServiceJsClassName = StringUtils.defaultIfEmpty(svcEl.getString("publicServiceJsClassName"), cn); publicServiceVarsModelJsClassName = StringUtils.defaultIfEmpty( svcEl.getString("publicServiceVarsModelJsClassName"), "model.PublicServiceVars"); } hconf = svcEl.configurationsAt("jobService"); if (!hconf.isEmpty()) { if (hconf.size() > 1) throw new Exception(invalidCardinalityEx("jobService", "*1")); final String cn = hconf.get(0).getString("[@className]"); if (StringUtils.isBlank(cn)) throw new Exception(invalidAttributeValueEx("jobService", "className")); jobServiceClassName = LangUtils.buildClassName(javaPackage, cn); } else { // Old-style configuration if (svcEl.containsKey("jobServiceClassName")) { jobServiceClassName = LangUtils.buildClassName(javaPackage, StringUtils.defaultIfEmpty(svcEl.getString("jobServiceClassName"), "JobService")); } } if (!svcEl.configurationsAt("userOptions").isEmpty()) { userOptionsServiceClassName = LangUtils.buildClassName(javaPackage, StringUtils .defaultIfEmpty(svcEl.getString("userOptions.serviceClassName"), "UserOptionsService")); userOptionsViewJsClassName = StringUtils.defaultIfEmpty(svcEl.getString("userOptions.viewJsClassName"), "view.UserOptions"); userOptionsModelJsClassName = StringUtils .defaultIfEmpty(svcEl.getString("userOptions.modelJsClassName"), "model.UserOptions"); } hidden = svcEl.getBoolean("hidden", false); hconf = svcEl.configurationsAt("restApiEndpoint"); if (!hconf.isEmpty()) { for (HierarchicalConfiguration el : hconf) { final String name = el.getString("[@name]"); if (StringUtils.isBlank(name)) throw new Exception(invalidAttributeValueEx("restApiEndpoint", "name")); final String path = el.getString("[@path]", ""); if (restApiEndpoints.containsKey(path)) throw new Exception(invalidAttributeValueEx("restApiEndpoint", "path")); restApiEndpoints.put(path, new RestApiEndpoint(buildJavaClassName(javaPackage, name), path)); } } if (!svcEl.configurationsAt("restApis").isEmpty()) { List<HierarchicalConfiguration> restApiEls = svcEl.configurationsAt("restApis.restApi"); for (HierarchicalConfiguration el : restApiEls) { final String oasFile = el.getString("[@oasFile]"); if (StringUtils.isBlank(oasFile)) throw new Exception(invalidAttributeValueEx("restApis.restApi", "oasFile")); final String context = oasFileToContext(oasFile); final String implPackage = el.getString("[@package]", "." + JAVAPKG_REST + "." + context); if (restApis.containsKey(oasFile)) throw new Exception(invalidAttributeValueEx("restApis.restApi", "oasFile")); //String oasFilePath = LangUtils.packageToPath(buildJavaPackage(javaPackage, "." + JAVAPKG_REST)) + "/" + oasFile; String oasFilePath = LangUtils.packageToPath(javaPackage) + "/" + oasFile; restApis.put(oasFile, new RestApi(oasFilePath, context, buildJavaPackage(javaPackage, implPackage))); } } if (!svcEl.configurationsAt("permissions").isEmpty()) { List<HierarchicalConfiguration> elPerms = svcEl.configurationsAt("permissions.permission"); for (HierarchicalConfiguration elPerm : elPerms) { if (elPerm.containsKey("[@group]")) { String groupName = elPerm.getString("[@group]"); if (StringUtils.isEmpty(groupName)) throw new Exception("Permission must have a valid uppercase group name"); if (elPerm.containsKey("[@actions]")) { String[] actions = StringUtils.split(elPerm.getString("[@actions]"), ","); if (actions.length == 0) throw new Exception("Resource must declare at least 1 action"); permissions.add(new ServicePermission(groupName, actions)); } else { throw new Exception("Permission must declare actions supported on group"); } } } List<HierarchicalConfiguration> elShPerms = svcEl.configurationsAt("permissions.sharePermission"); for (HierarchicalConfiguration elShPerm : elShPerms) { if (elShPerm.containsKey("[@group]")) { String groupName = elShPerm.getString("[@group]"); if (StringUtils.isEmpty(groupName)) throw new Exception("Permission must have a valid uppercase group name"); permissions.add(new ServiceSharePermission(groupName)); } } } if (!svcEl.configurationsAt("portlets").isEmpty()) { List<HierarchicalConfiguration> elPortlets = svcEl.configurationsAt("portlets.portlet"); for (HierarchicalConfiguration el : elPortlets) { if (el.containsKey("[@jsClassName]")) { final String jsClassName = el.getString("[@jsClassName]"); if (StringUtils.isBlank(jsClassName)) throw new Exception("Invalid value for attribute [portlet->jsClassName]"); portlets.add(new Portlet(LangUtils.buildClassName(jsPackage, jsClassName))); } } } }
From source file:com.graphhopper.jsprit.core.problem.io.VrpXMLReader.java
private void readServices(XMLConfiguration vrpProblem) { List<HierarchicalConfiguration> serviceConfigs = vrpProblem.configurationsAt("services.service"); for (HierarchicalConfiguration serviceConfig : serviceConfigs) { String id = serviceConfig.getString("[@id]"); if (id == null) throw new IllegalStateException("service[@id] is missing."); String type = serviceConfig.getString("[@type]"); if (type == null) type = "service"; String capacityString = serviceConfig.getString("capacity-demand"); boolean capacityDimensionsExist = serviceConfig.containsKey("capacity-dimensions.dimension(0)"); if (capacityString == null && !capacityDimensionsExist) { throw new IllegalStateException("capacity of service is not set. use 'capacity-dimensions'"); }/*from w w w.j a va 2 s . co m*/ if (capacityString != null && capacityDimensionsExist) { throw new IllegalStateException( "either use capacity or capacity-dimension, not both. prefer the use of 'capacity-dimensions' over 'capacity'."); } Service.Builder builder; if (capacityString != null) { builder = serviceBuilderFactory.createBuilder(type, id, Integer.parseInt(capacityString)); } else { builder = serviceBuilderFactory.createBuilder(type, id, null); List<HierarchicalConfiguration> dimensionConfigs = serviceConfig .configurationsAt("capacity-dimensions.dimension"); for (HierarchicalConfiguration dimension : dimensionConfigs) { Integer index = dimension.getInt("[@index]"); Integer value = dimension.getInt(""); builder.addSizeDimension(index, value); } } //name String name = serviceConfig.getString("name"); if (name != null) builder.setName(name); //location Location.Builder locationBuilder = Location.Builder.newInstance(); String serviceLocationId = serviceConfig.getString("locationId"); if (serviceLocationId == null) { serviceLocationId = serviceConfig.getString("location.id"); } if (serviceLocationId != null) locationBuilder.setId(serviceLocationId); Coordinate serviceCoord = getCoord(serviceConfig, ""); if (serviceCoord == null) serviceCoord = getCoord(serviceConfig, "location."); if (serviceCoord != null) { locationBuilder.setCoordinate(serviceCoord); } String locationIndex = serviceConfig.getString("location.index"); if (locationIndex != null) locationBuilder.setIndex(Integer.parseInt(locationIndex)); builder.setLocation(locationBuilder.build()); if (serviceConfig.containsKey("duration")) { builder.setServiceTime(serviceConfig.getDouble("duration")); } List<HierarchicalConfiguration> deliveryTWConfigs = serviceConfig .configurationsAt("timeWindows.timeWindow"); if (!deliveryTWConfigs.isEmpty()) { for (HierarchicalConfiguration twConfig : deliveryTWConfigs) { builder.addTimeWindow( TimeWindow.newInstance(twConfig.getDouble("start"), twConfig.getDouble("end"))); } } //read skills String skillString = serviceConfig.getString("requiredSkills"); if (skillString != null) { String cleaned = skillString.replaceAll("\\s", ""); String[] skillTokens = cleaned.split("[,;]"); for (String skill : skillTokens) builder.addRequiredSkill(skill.toLowerCase()); } //build service Service service = builder.build(); serviceMap.put(service.getId(), service); // vrpBuilder.addJob(service); } }
From source file:com.graphhopper.jsprit.core.problem.io.VrpXMLReader.java
private void readSolutions(XMLConfiguration vrpProblem) { if (solutions == null) return;// ww w . ja v a 2s . c o m List<HierarchicalConfiguration> solutionConfigs = vrpProblem.configurationsAt("solutions.solution"); for (HierarchicalConfiguration solutionConfig : solutionConfigs) { String totalCost = solutionConfig.getString("cost"); double cost = -1; if (totalCost != null) cost = Double.parseDouble(totalCost); List<HierarchicalConfiguration> routeConfigs = solutionConfig.configurationsAt("routes.route"); List<VehicleRoute> routes = new ArrayList<VehicleRoute>(); for (HierarchicalConfiguration routeConfig : routeConfigs) { //! here, driverId is set to noDriver, no matter whats in driverId. Driver driver = DriverImpl.noDriver(); String vehicleId = routeConfig.getString("vehicleId"); Vehicle vehicle = getVehicle(vehicleId); if (vehicle == null) throw new IllegalStateException("vehicle is missing."); String start = routeConfig.getString("start"); if (start == null) throw new IllegalStateException("route start-time is missing."); double departureTime = Double.parseDouble(start); String end = routeConfig.getString("end"); if (end == null) throw new IllegalStateException("route end-time is missing."); VehicleRoute.Builder routeBuilder = VehicleRoute.Builder.newInstance(vehicle, driver); routeBuilder.setDepartureTime(departureTime); List<HierarchicalConfiguration> actConfigs = routeConfig.configurationsAt("act"); for (HierarchicalConfiguration actConfig : actConfigs) { String type = actConfig.getString("[@type]"); if (type == null) throw new IllegalStateException("act[@type] is missing."); double arrTime = 0.; double endTime = 0.; String arrTimeS = actConfig.getString("arrTime"); if (arrTimeS != null) arrTime = Double.parseDouble(arrTimeS); String endTimeS = actConfig.getString("endTime"); if (endTimeS != null) endTime = Double.parseDouble(endTimeS); String serviceId = actConfig.getString("serviceId"); if (serviceId != null) { Service service = getService(serviceId); routeBuilder.addService(service); } else { String shipmentId = actConfig.getString("shipmentId"); if (shipmentId == null) throw new IllegalStateException("either serviceId or shipmentId is missing"); Shipment shipment = getShipment(shipmentId); if (shipment == null) throw new IllegalStateException("shipment with id " + shipmentId + " does not exist."); if (type.equals("pickupShipment")) { routeBuilder.addPickup(shipment); } else if (type.equals("deliverShipment")) { routeBuilder.addDelivery(shipment); } else throw new IllegalStateException("type " + type + " is not supported. Use 'pickupShipment' or 'deliverShipment' here"); } } routes.add(routeBuilder.build()); } VehicleRoutingProblemSolution solution = new VehicleRoutingProblemSolution(routes, cost); List<HierarchicalConfiguration> unassignedJobConfigs = solutionConfig .configurationsAt("unassignedJobs.job"); for (HierarchicalConfiguration unassignedJobConfig : unassignedJobConfigs) { String jobId = unassignedJobConfig.getString("[@id]"); Job job = getShipment(jobId); if (job == null) job = getService(jobId); if (job == null) throw new IllegalStateException("cannot find unassignedJob with id " + jobId); solution.getUnassignedJobs().add(job); } solutions.add(solution); } }
From source file:jsprit.core.problem.io.VrpXMLReader.java
private void readServices(XMLConfiguration vrpProblem) { List<HierarchicalConfiguration> serviceConfigs = vrpProblem.configurationsAt("services.service"); for (HierarchicalConfiguration serviceConfig : serviceConfigs) { String id = serviceConfig.getString("[@id]"); if (id == null) throw new IllegalStateException("service[@id] is missing."); String type = serviceConfig.getString("[@type]"); if (type == null) type = "service"; String capacityString = serviceConfig.getString("capacity-demand"); boolean capacityDimensionsExist = serviceConfig.containsKey("capacity-dimensions.dimension(0)"); if (capacityString == null && !capacityDimensionsExist) { throw new IllegalStateException("capacity of service is not set. use 'capacity-dimensions'"); }// ww w . jav a 2s . c om if (capacityString != null && capacityDimensionsExist) { throw new IllegalStateException( "either use capacity or capacity-dimension, not both. prefer the use of 'capacity-dimensions' over 'capacity'."); } Service.Builder builder; if (capacityString != null) { builder = serviceBuilderFactory.createBuilder(type, id, Integer.parseInt(capacityString)); } else { builder = serviceBuilderFactory.createBuilder(type, id, null); List<HierarchicalConfiguration> dimensionConfigs = serviceConfig .configurationsAt("capacity-dimensions.dimension"); for (HierarchicalConfiguration dimension : dimensionConfigs) { Integer index = dimension.getInt("[@index]"); Integer value = dimension.getInt(""); builder.addSizeDimension(index, value); } } //name String name = serviceConfig.getString("name"); if (name != null) builder.setName(name); //location Location.Builder locationBuilder = Location.Builder.newInstance(); String serviceLocationId = serviceConfig.getString("locationId"); if (serviceLocationId == null) { serviceLocationId = serviceConfig.getString("location.id"); } if (serviceLocationId != null) locationBuilder.setId(serviceLocationId); Coordinate serviceCoord = getCoord(serviceConfig, ""); if (serviceCoord == null) serviceCoord = getCoord(serviceConfig, "location."); if (serviceCoord != null) { locationBuilder.setCoordinate(serviceCoord); } String locationIndex = serviceConfig.getString("location.index"); if (locationIndex != null) locationBuilder.setIndex(Integer.parseInt(locationIndex)); builder.setLocation(locationBuilder.build()); if (serviceConfig.containsKey("duration")) { builder.setServiceTime(serviceConfig.getDouble("duration")); } List<HierarchicalConfiguration> deliveryTWConfigs = serviceConfig .configurationsAt("timeWindows.timeWindow"); if (!deliveryTWConfigs.isEmpty()) { for (HierarchicalConfiguration twConfig : deliveryTWConfigs) { builder.setTimeWindow( TimeWindow.newInstance(twConfig.getDouble("start"), twConfig.getDouble("end"))); } } //read skills String skillString = serviceConfig.getString("requiredSkills"); if (skillString != null) { String cleaned = skillString.replaceAll("\\s", ""); String[] skillTokens = cleaned.split("[,;]"); for (String skill : skillTokens) builder.addRequiredSkill(skill.toLowerCase()); } //build service Service service = builder.build(); serviceMap.put(service.getId(), service); // vrpBuilder.addJob(service); } }
From source file:com.webcohesion.enunciate.modules.csharp_client.CSharpXMLClientModule.java
/** * The package-to-namespace conversions. * * @return The package-to-namespace conversions. *//*w w w.j a v a 2 s. co m*/ public Map<String, String> getPackageToNamespaceConversions() { List<HierarchicalConfiguration> conversionElements = this.config .configurationsAt("package-conversions.convert"); HashMap<String, String> conversions = new HashMap<String, String>(); for (HierarchicalConfiguration conversionElement : conversionElements) { conversions.put(conversionElement.getString("[@from]"), conversionElement.getString("[@to]")); } return conversions; }