Example usage for org.apache.commons.configuration HierarchicalConfiguration getString

List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getString

Introduction

In this page you can find the example usage for org.apache.commons.configuration HierarchicalConfiguration getString.

Prototype

public String getString(String key) 

Source Link

Usage

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;
}