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:com.sonicle.webtop.core.app.ServiceManager.java

private ArrayList<ServiceManifest> parseDescriptor(final URL descriptorUri) throws ConfigurationException {
    ArrayList<ServiceManifest> manifests = new ArrayList();
    ServiceManifest manifest = null;//from   w  w  w  . ja va 2  s .com

    logger.trace("Parsing descriptor [{}]", descriptorUri.toString());
    XMLConfiguration config = new XMLConfiguration(descriptorUri);
    List<HierarchicalConfiguration> elServices = config.configurationsAt("service");
    for (HierarchicalConfiguration elService : elServices) {
        try {
            manifest = new ServiceManifest(elService);
            manifests.add(manifest);

        } catch (Exception ex) {
            logger.warn("Service descriptor for '{}' version {} skipped. Cause: {}",
                    elService.getString("shortName"), elService.getString("version"), ex.getMessage());
        }
    }
    return manifests;
}

From source file:com.moviejukebox.plugin.DefaultImagePlugin.java

private void fillOverlayParams(String xmlOverlayFilename) {
    if (!xmlOverlayFilename.toUpperCase().endsWith("XML")) {
        return;//from   w w  w .  j ava  2s.co  m
    }
    File xmlOverlayFile = new File(overlayRoot + xmlOverlayFilename);
    if (xmlOverlayFile.exists() && xmlOverlayFile.isFile()) {
        try {
            XMLConfiguration c = new XMLConfiguration(xmlOverlayFile);
            List<HierarchicalConfiguration> layers = c.configurationsAt("layer");
            overlayLayers.clear();
            int index = 0;
            for (HierarchicalConfiguration layer : layers) {
                String name = layer.getString("name");
                if (StringTools.isNotValidString(name)) {
                    continue;
                }
                LogoOverlay overlay = new LogoOverlay();

                String after = layer.getString("[@after]");
                if (StringTools.isValidString(after) && after.equalsIgnoreCase(TRUE)) {
                    overlay.setBefore(Boolean.FALSE);
                }

                String left = layer.getString(LEFT);
                String top = layer.getString(TOP);
                String align = layer.getString("align");
                String valign = layer.getString("valign");
                String width = layer.getString("width");
                String height = layer.getString("height");

                overlay.setNames(Arrays.asList(name.split("/")));
                if (StringUtils.isNumeric(left)) {
                    overlay.setLeft(NumberUtils.toInt(left, 0));
                }
                if (StringUtils.isNumeric(top)) {
                    overlay.setTop(NumberUtils.toInt(top, 0));
                }
                if (StringTools.isValidString(align) && (align.equalsIgnoreCase(LEFT)
                        || align.equalsIgnoreCase(CENTER) || align.equalsIgnoreCase(RIGHT))) {
                    overlay.setAlign(align);
                }
                if (StringTools.isValidString(valign) && (valign.equalsIgnoreCase(TOP)
                        || valign.equalsIgnoreCase(CENTER) || valign.equalsIgnoreCase(BOTTOM))) {
                    overlay.setValign(valign);
                }
                if (StringTools.isValidString(width) && (width.equalsIgnoreCase(EQUAL)
                        || width.equalsIgnoreCase(AUTO) || width.matches(D_PLUS))) {
                    overlay.setWidth(width);
                }
                if (StringTools.isValidString(height) && (height.equalsIgnoreCase(EQUAL)
                        || height.equalsIgnoreCase(AUTO) || height.matches(D_PLUS))) {
                    overlay.setHeight(height);
                }

                List<HierarchicalConfiguration> images = c
                        .configurationsAt("layer(" + index + ").images.image");
                for (HierarchicalConfiguration image : images) {
                    name = image.getString("[@name]");
                    String value = image.getString("[@value]");
                    String filename = image.getString("[@filename]");

                    if (StringTools.isNotValidString(name)) {
                        name = overlay.getNames().get(0);
                    }
                    if (!overlay.getNames().contains(name) || StringTools.isNotValidString(value)
                            || StringTools.isNotValidString(filename)) {
                        continue;
                    }

                    ImageOverlay img = new ImageOverlay(name, value, filename, Arrays.asList(value.split("/")));
                    if (img.getValues().size() > 1) {
                        for (int i = 0; i < overlay.getNames().size(); i++) {
                            if (img.getValues().size() <= i) {
                                img.getValues().add(Movie.UNKNOWN);
                            } else if (StringTools.isNotValidString(img.getValues().get(i))) {
                                img.getValues().set(i, Movie.UNKNOWN);
                            }
                        }
                    }
                    overlay.getImages().add(img);
                }

                if (overlay.getNames().size() > 1) {
                    List<HierarchicalConfiguration> positions = c
                            .configurationsAt("layer(" + index + ").positions.position");
                    for (HierarchicalConfiguration position : positions) {
                        String value = position.getString("[@value]");
                        left = position.getString("[@left]");
                        top = position.getString("[@top]");
                        align = position.getString("[@align]");
                        valign = position.getString("[@valign]");
                        width = position.getString("[@width]");
                        height = position.getString("[@height]");

                        if (StringTools.isNotValidString(value)) {
                            continue;
                        }
                        ConditionOverlay condition = new ConditionOverlay();
                        condition.setValues(Arrays.asList(value.split("/")));
                        if (StringTools.isNotValidString(left)) {
                            left = Integer.toString(overlay.getLeft());
                        }
                        if (StringTools.isNotValidString(top)) {
                            top = Integer.toString(overlay.getTop());
                        }
                        if (StringTools.isNotValidString(align)) {
                            align = overlay.getAlign();
                        }
                        if (StringTools.isNotValidString(valign)) {
                            valign = overlay.getValign();
                        }
                        if (StringTools.isNotValidString(width)) {
                            width = overlay.getWidth();
                        }
                        if (StringTools.isNotValidString(height)) {
                            height = overlay.getHeight();
                        }
                        List<String> lefts = Arrays.asList(left.split("/"));
                        List<String> tops = Arrays.asList(top.split("/"));
                        List<String> aligns = Arrays.asList(align.split("/"));
                        List<String> valigns = Arrays.asList(valign.split("/"));
                        List<String> widths = Arrays.asList(width.split("/"));
                        List<String> heights = Arrays.asList(height.split("/"));
                        for (int i = 0; i < overlay.getNames().size(); i++) {
                            if (StringTools.isNotValidString(condition.getValues().get(i))) {
                                condition.getValues().set(i, Movie.UNKNOWN);
                            }
                            PositionOverlay p = new PositionOverlay(
                                    (lefts.size() <= i || StringTools.isNotValidString(lefts.get(i)))
                                            ? overlay.getLeft()
                                            : Integer.parseInt(lefts.get(i)),
                                    (tops.size() <= i || StringTools.isNotValidString(tops.get(i)))
                                            ? overlay.getTop()
                                            : Integer.parseInt(tops.get(i)),
                                    (aligns.size() <= i || StringTools.isNotValidString(aligns.get(i)))
                                            ? overlay.getAlign()
                                            : aligns.get(i),
                                    (valigns.size() <= i || StringTools.isNotValidString(valigns.get(i)))
                                            ? overlay.getValign()
                                            : valigns.get(i),
                                    (widths.size() <= i || StringTools.isNotValidString(widths.get(i)))
                                            ? overlay.getWidth()
                                            : widths.get(i),
                                    (heights.size() <= i || StringTools.isNotValidString(heights.get(i)))
                                            ? overlay.getHeight()
                                            : heights.get(i));
                            condition.getPositions().add(p);
                        }
                        overlay.getPositions().add(condition);
                    }
                }
                overlayLayers.add(overlay);
                index++;
            }

            List<HierarchicalConfiguration> blocks = c.configurationsAt(BLOCK);
            overlayBlocks.clear();
            for (HierarchicalConfiguration block : blocks) {
                String name = block.getString("name");
                if (StringTools.isNotValidString(name)) {
                    continue;
                }
                String dir = block.getString("dir");
                dir = StringTools.isNotValidString(dir) ? "horizontal" : dir;
                String size = block.getString("size");
                size = StringTools.isNotValidString(size) ? AUTO : size;
                String cols = block.getString("cols");
                cols = StringTools.isNotValidString(cols) ? AUTO : cols;
                String rows = block.getString("rows");
                rows = StringTools.isNotValidString(rows) ? AUTO : rows;
                String hmargin = block.getString("hmargin");
                hmargin = StringTools.isNotValidString(hmargin) ? "0" : hmargin;
                String vmargin = block.getString("vmargin");
                vmargin = StringTools.isNotValidString(vmargin) ? "0" : vmargin;
                String clones = block.getString("clones");
                overlayBlocks.put(name,
                        new LogosBlock("horizontal".equalsIgnoreCase(dir), "static".equalsIgnoreCase(size),
                                cols, rows, hmargin, vmargin,
                                StringTools.isNotValidString(clones) ? blockClones
                                        : (TRUE.equalsIgnoreCase(clones) ? true
                                                : (FALSE.equalsIgnoreCase(clones) ? false : blockClones))));
            }
        } catch (ConfigurationException ex) {
            LOG.error("Failed parsing moviejukebox overlay configuration file: {}", xmlOverlayFile.getName());
            LOG.error(SystemTools.getStackTrace(ex));
        }
    } else {
        LOG.error("The moviejukebox overlay configuration file you specified is invalid: {}",
                xmlOverlayFile.getAbsolutePath());
    }
}

From source file:edu.hawaii.soest.kilonalu.ctd.CTDSource.java

/**
 * A method that processes the data object passed and flushes the
 * data to the DataTurbine given the sensor properties in the XMLConfiguration
 * passed in. This method is largely called from a dispatcher that is handling
 * the data streaming, like StorXDispatcher.
 *
 * @param xmlConfig - the XMLConfiguration object containing the list of
 *                    sensor properties/*w  w  w  . j  a v  a2 s .  c om*/
 * @param frameMap  - the parsed data as a HierarchicalMap object
 */
public boolean process(XMLConfiguration xmlConfig, HierarchicalMap frameMap) {

    logger.debug("CTDSource.process() called.");
    // do not execute the stream if there is no connection
    if (!isConnected())
        return false;

    boolean success = false;

    try {

        // add channels of data that will be pushed to the server.  
        // Each sample will be sent to the Data Turbine as an rbnb frame.  Information
        // on each channel is found in the XMLConfiguration file (email.account.properties.xml)
        // and the StorXParser object (to get the data string)
        ChannelMap rbnbChannelMap = new ChannelMap(); // used to flush channels
        ChannelMap registerChannelMap = new ChannelMap(); // used to register channels
        int channelIndex = 0;

        // this.storXParser = new StorXParser(storXFrame);

        String sensorName = null;
        String sensorSerialNumber = null;
        String sensorDescription = null;
        boolean isImmersed = false;
        String[] calibrationURLs = null;
        String calibrationURL = null;
        String type = null;

        List sensorList = xmlConfig.configurationsAt("account.logger.sensor");

        for (Iterator sIterator = sensorList.iterator(); sIterator.hasNext();) {
            //  
            HierarchicalConfiguration sensorConfig = (HierarchicalConfiguration) sIterator.next();
            sensorSerialNumber = sensorConfig.getString("serialNumber");

            // find the correct sensor configuration properties
            if (sensorSerialNumber.equals(frameMap.get("serialNumber"))) {

                sensorName = sensorConfig.getString("name");
                sensorDescription = sensorConfig.getString("description");
                isImmersed = new Boolean(sensorConfig.getString("isImmersed")).booleanValue();
                //calibrationURLs = sensorConfig.getStringArray("calibrationURL");
                type = (String) frameMap.get("type");

                // Build the RBNB channel map 

                // get the sample date and convert it to seconds since the epoch
                Date frameDate = (Date) frameMap.get("date");
                Calendar frameDateTime = Calendar.getInstance();
                frameDateTime.setTime(frameDate);
                double sampleTimeAsSecondsSinceEpoch = (double) (frameDateTime.getTimeInMillis() / 1000);
                // and create a string formatted date for the given time zone
                DATE_FORMAT.setTimeZone(TZ);
                String frameDateAsString = DATE_FORMAT.format(frameDate).toString();

                // get the sample data from the frame map
                ByteBuffer rawFrame = (ByteBuffer) frameMap.get("rawFrame");
                CTDFrame ctdFrame = (CTDFrame) frameMap.get("parsedFrameObject");

                String sampleString = ctdFrame.getSample();

                // add the sample timestamp to the rbnb channel map
                //registerChannelMap.PutTime(sampleTimeAsSecondsSinceEpoch, 0d);
                rbnbChannelMap.PutTime(sampleTimeAsSecondsSinceEpoch, 0d);

                // add the BinaryRawSatlanticFrameData channel to the channelMap
                channelIndex = registerChannelMap.Add("BinaryRawSatlanticFrameData");
                registerChannelMap.PutUserInfo(channelIndex, "units=none");
                channelIndex = rbnbChannelMap.Add("BinaryRawSatlanticFrameData");
                rbnbChannelMap.PutMime(channelIndex, "application/octet-stream");
                rbnbChannelMap.PutDataAsByteArray(channelIndex, rawFrame.array());

                // add the DecimalASCIISampleData channel to the channelMap
                channelIndex = registerChannelMap.Add(getRBNBChannelName());
                registerChannelMap.PutUserInfo(channelIndex, "units=none");
                channelIndex = rbnbChannelMap.Add(getRBNBChannelName());
                rbnbChannelMap.PutMime(channelIndex, "text/plain");
                rbnbChannelMap.PutDataAsString(channelIndex, sampleString);

                // Now register the RBNB channels, and flush the rbnbChannelMap to the
                // DataTurbine
                getSource().Register(registerChannelMap);
                getSource().Flush(rbnbChannelMap);
                logger.info("Sample sent to the DataTurbine: (" + sensorSerialNumber + ") " + sampleString);

                registerChannelMap.Clear();
                rbnbChannelMap.Clear();

            } // end if()

        } // end for()                                             

        success = true;

    } catch (Exception sapie) {
        success = false;
        sapie.printStackTrace();
        return success;

    }

    return success;
}

From source file:net.fenyo.gnetwatch.GUI.GUI.java

/**
   * Parses a configuration file to create initial targets.
   * @param filename configuration file.
   * @return void.//w  w  w.  j  a  v  a 2s.  c o  m
   */
public void createFromXML(final String filename) {
    final GUI gui = this;

    asyncExec(new Runnable() {
        public void run() {
            synchronized (synchro) {
                final Session session = synchro.getSessionFactory().getCurrentSession();
                session.beginTransaction();

                try {
                    final XMLConfiguration initial = new XMLConfiguration(filename);
                    initial.setExpressionEngine(new XPathExpressionEngine());

                    // limitation de l'implmentation : on n'autorise que les parents de type groupe

                    for (final HierarchicalConfiguration subconf : (java.util.List<HierarchicalConfiguration>) initial
                            .configurationsAt("/objects/target")) {
                        if (subconf.getProperty("@targetType").equals("group")) {
                            final String name = subconf.getString("name");

                            final java.util.List<String> parents = (java.util.List<String>) subconf
                                    .getList("parent[@parentType='group']");
                            if (parents.size() == 0) {
                                final TargetGroup target_group = new TargetGroup(
                                        "added by initial configuration", name);
                                target_group.addTarget(gui, user_defined);
                            } else
                                for (final String parent : parents) {
                                    final TargetGroup foo = new TargetGroup("temporary", parent);
                                    final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo);
                                    if (target_parent == foo)
                                        log.error("Initial configuration: parent does not exist");
                                    else {
                                        final TargetGroup target_group = new TargetGroup(
                                                "added by initial configuration", name);
                                        target_group.addTarget(gui, target_parent);
                                    }
                                }
                        }

                        if (subconf.getProperty("@targetType").equals("ipv4")) {
                            final String address = subconf.getString("address");

                            java.util.List<String> parents = (java.util.List<String>) subconf
                                    .getList("parent[@parentType='group']");
                            if (parents.size() != 0)
                                for (final String parent : parents) {
                                    final TargetGroup foo = new TargetGroup("temporary", parent);
                                    final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo);
                                    if (target_parent == foo)
                                        log.error("Initial configuration: parent does not exist");
                                    else {
                                        final TargetIPv4 target = new TargetIPv4(
                                                "added by initial configuration",
                                                GenericTools.stringToInet4Address(address), snmp_manager);
                                        target.addTarget(gui, target_parent);
                                        if (subconf.getString("snmp/version") != null) {
                                            if (subconf.getString("snmp/version").equals("v1"))
                                                target.getSNMPQuerier().setVersion(0);
                                            if (subconf.getString("snmp/version").equals("v2c"))
                                                target.getSNMPQuerier().setVersion(1);
                                            if (subconf.getString("snmp/version").equals("v3"))
                                                target.getSNMPQuerier().setVersion(2);
                                        }
                                        if (subconf.getString("snmp/community") != null)
                                            target.getSNMPQuerier()
                                                    .setCommunity(subconf.getString("snmp/community"));

                                        // Setting the agent is not possible when creating a target through the GUI
                                        if (subconf.getString("snmp/agent") != null)
                                            target.getSNMPQuerier().setAddress(GenericTools
                                                    .stringToInet4Address(subconf.getString("snmp/agent")));

                                        if (subconf.getString("snmp/password-auth") != null)
                                            target.getSNMPQuerier()
                                                    .setPasswordAuth(subconf.getString("snmp/password-auth"));
                                        if (subconf.getString("snmp/password-priv") != null)
                                            target.getSNMPQuerier()
                                                    .setPasswordPriv(subconf.getString("snmp/password-priv"));
                                        if (subconf.getString("snmp/pdu-max-size") != null)
                                            target.getSNMPQuerier()
                                                    .setPDUMaxSize(subconf.getInt("snmp/pdu-max-size"));
                                        if (subconf.getString("snmp/port") != null)
                                            target.getSNMPQuerier().setPort(subconf.getInt("snmp/port"));
                                        if (subconf.getString("snmp/retries") != null)
                                            target.getSNMPQuerier().setRetries(subconf.getInt("snmp/retries"));
                                        if (subconf.getString("snmp/security") != null
                                                && subconf.getString("snmp/security").equals("NOAUTH_NOPRIV"))
                                            target.getSNMPQuerier().setSec(SecurityLevel.NOAUTH_NOPRIV);
                                        if (subconf.getString("snmp/security") != null
                                                && subconf.getString("snmp/security").equals("AUTH_NOPRIV"))
                                            target.getSNMPQuerier().setSec(SecurityLevel.AUTH_NOPRIV);
                                        if (subconf.getString("snmp/security") != null
                                                && subconf.getString("snmp/security").equals("AUTH_PRIV"))
                                            target.getSNMPQuerier().setSec(SecurityLevel.AUTH_PRIV);
                                        if (subconf.getString("snmp/timeout") != null)
                                            target.getSNMPQuerier().setTimeout(subconf.getInt("snmp/timeout"));
                                        target.getSNMPQuerier().update();
                                    }
                                }
                        }

                        if (subconf.getProperty("@targetType").equals("ipv6")) {
                            final String address = subconf.getString("address");

                            java.util.List<String> parents = (java.util.List<String>) subconf
                                    .getList("parent[@parentType='group']");
                            if (parents.size() != 0)
                                for (final String parent : parents) {
                                    final TargetGroup foo = new TargetGroup("temporary", parent);
                                    final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo);
                                    if (target_parent == foo)
                                        log.error("Initial configuration: parent does not exist");
                                    else {
                                        final TargetIPv6 target = new TargetIPv6(
                                                "added by initial configuration",
                                                GenericTools.stringToInet6Address(address), snmp_manager);
                                        target.addTarget(gui, target_parent);
                                    }
                                }
                        }

                        if (subconf.getProperty("@targetType").equals("ipv4range")) {
                            final String begin = subconf.getString("begin");
                            final String end = subconf.getString("end");

                            java.util.List<String> parents = (java.util.List<String>) subconf
                                    .getList("parent[@parentType='group']");
                            if (parents.size() != 0)
                                for (final String parent : parents) {
                                    final TargetGroup foo = new TargetGroup("temporary", parent);
                                    final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo);
                                    if (target_parent == foo)
                                        log.error("Initial configuration: parent does not exist");
                                    else {
                                        final TargetIPv4Range target = new TargetIPv4Range(
                                                "added by initial configuration",
                                                GenericTools.stringToInet4Address(begin),
                                                GenericTools.stringToInet4Address(end));
                                        target.addTarget(gui, target_parent);
                                    }
                                }
                        }

                        if (subconf.getProperty("@targetType").equals("ipv4subnet")) {
                            final String network = subconf.getString("network");
                            final String netmask = subconf.getString("netmask");

                            java.util.List<String> parents = (java.util.List<String>) subconf
                                    .getList("parent[@parentType='group']");
                            if (parents.size() != 0)
                                for (final String parent : parents) {
                                    final TargetGroup foo = new TargetGroup("temporary", parent);
                                    final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo);
                                    if (target_parent == foo)
                                        log.error("Initial configuration: parent does not exist");
                                    else {
                                        final TargetIPv4Subnet target = new TargetIPv4Subnet(
                                                "added by initial configuration",
                                                GenericTools.stringToInet4Address(network),
                                                GenericTools.stringToInet4Address(netmask));
                                        target.addTarget(gui, target_parent);
                                    }
                                }
                        }
                    }

                    session.getTransaction().commit();
                } catch (final ConfigurationException ex) {
                    log.warn("Exception", ex);
                    session.getTransaction().rollback();
                } catch (final AlgorithmException ex) {
                    log.error("Exception", ex);
                    session.getTransaction().rollback();
                } catch (final UnknownHostException ex) {
                    log.error("Exception", ex);
                    session.getTransaction().rollback();
                }
            }
        }
    });
}

From source file:nl.knaw.huygens.timbuctoo.config.Configuration.java

private String getString(HierarchicalConfiguration cfg, String key) {
    return Text.normalizeWhitespace(cfg.getString(key));
}

From source file:nz.co.jsrsolutions.ds3.provider.EodDataProviderFactory.java

public static EodDataProvider create(HierarchicalConfiguration appConfig, String type)
        throws EodDataProviderException {

    // TODO: Use reflection here.  Probably need a Builder to abstract away different construction arguments
    if (type.compareTo(EODDATADATAPROVIDER_KEY) == 0) {

        String serviceUrl = appConfig.getString("eodDataProviders.eodDataProvider(0).serviceUrl");
        String username = appConfig.getString("eodDataProviders.eodDataProvider(0).username");
        String password = appConfig.getString("eodDataProviders.eodDataProvider(0).password");
        long timeout = appConfig.getLong("eodDataProviders.eodDataProvider(0).timeout");

        return new EodDataEodDataProvider(serviceUrl, username, password, timeout);

    } else {/* w  ww . j av  a2 s .com*/

        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("Unknown data provider type [ ");
        stringBuffer.append(type);
        stringBuffer.append(" ] ");
        throw new EodDataProviderException(stringBuffer.toString());

    }

}

From source file:nz.co.jsrsolutions.ds3.sink.EodDataSinkFactory.java

public static EodDataSink create(HierarchicalConfiguration appConfig, String type) throws EodDataSinkException {

    if (type.compareTo(HDF5_KEY) == 0) {

        return new Hdf5EodDataSink(appConfig.getString("eodDataSinks.eodDataSink(0).filename"));

    } else if (type.compareTo(HDFOBJECT_KEY) == 0) {

        return new HdfObjectEodDataSink(appConfig.getString("eodDataSinks.eodDataSink(0).filename"));

    } else {// w ww.ja  v  a  2  s  .  co  m

        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("Unknown data sink type [ ");
        stringBuffer.append(type);
        stringBuffer.append(" ] ");
        throw new EodDataSinkException(stringBuffer.toString());

    }

}

From source file:org.ambraproject.admin.service.impl.SyndicationServiceImpl.java

@Transactional(rollbackFor = { Throwable.class })
@Override// w  w w  .  jav  a2 s . co m
@SuppressWarnings("unchecked")
public List<Syndication> createSyndications(String articleDoi) throws NoSuchArticleIdException {

    try {
        Article article = (Article) hibernateTemplate
                .findByCriteria(
                        DetachedCriteria.forClass(Article.class).add(Restrictions.eq("doi", articleDoi)), 0, 1)
                .get(0);
        if (!isSyndicatableType(article.getTypes())) {
            //don't syndicate
            return new ArrayList<Syndication>();
        }
    } catch (IndexOutOfBoundsException e) {
        //the article didn't exist
        throw new NoSuchArticleIdException(articleDoi);
    }
    List<HierarchicalConfiguration> allSyndicationTargets = ((HierarchicalConfiguration) configuration)
            .configurationsAt("ambra.services.syndications.syndication");

    if (allSyndicationTargets == null || allSyndicationTargets.size() < 1) { // Should never happen.
        log.warn("There are no Syndication Targets defined in the property: "
                + "ambra.services.syndications.syndication so no Syndication objects were created for "
                + "the article with ID = " + articleDoi);
        return new ArrayList<Syndication>();
    }

    List<Syndication> syndications = new ArrayList<Syndication>(allSyndicationTargets.size());

    for (HierarchicalConfiguration targetNode : allSyndicationTargets) {
        String target = targetNode.getString("[@target]");
        Syndication existingSyndication = getSyndication(articleDoi, target);
        if (existingSyndication != null) {
            syndications.add(existingSyndication);
        } else {
            Syndication syndication = new Syndication(articleDoi, target);
            syndication.setStatus(Syndication.STATUS_PENDING);
            syndication.setSubmissionCount(0);
            hibernateTemplate.save(syndication);
            syndications.add(syndication);
        }
    }
    return syndications;
}

From source file:org.ambraproject.article.service.BrowseServiceImpl.java

/**
 * Set the configuration class//from  w w w  .  j  a  v a  2 s  .  com
 *
 * @param config the configuration class to use
 * @throws ApplicationException if required configuration settings are missing
 */
@Required
public void setConfiguration(Configuration config) throws ApplicationException {
    if (config.containsKey("ambra.services.browse.sortOptions.option")) {
        validSorts = new HashMap();
        displaySorts = new ArrayList();

        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc.configurationsAt("ambra.services.browse.sortOptions.option");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validSorts.put(key, value);
            displaySorts.add(key);
        }

        ((HierarchicalConfiguration) config).setExpressionEngine(null);
    } else {
        throw new ApplicationException(
                "ambra.services.browse.sortOptions.option not defined " + "in configuration.");
    }

    this.cacheTimeToLive = config.getInt("ambra.services.browse.time", 15) * 60;
    this.useCache = config.getBoolean("ambra.services.browse.cache", true);
}

From source file:org.ambraproject.queue.MessageServiceImpl.java

public void sendSyndicationMessage(String target, String articleId, String archive)
        throws ApplicationException {
    List<HierarchicalConfiguration> syndications = ((HierarchicalConfiguration) ambraConfiguration)
            .configurationsAt("ambra.services.syndications.syndication");

    String queue = null;// w  w  w  . j  ava  2  s. c o  m
    String additionalBodyContent = null;
    if (syndications != null) {
        for (HierarchicalConfiguration syndication : syndications) {
            if (target.equals(syndication.getString("[@target]"))) {
                queue = syndication.getString("queue", null);
                HierarchicalConfiguration message = (HierarchicalConfiguration) syndication.subset("message");
                additionalBodyContent = createAdditionalBodyFromConfiguration(message);
            }
        }
    }

    if (queue == null) {
        throw new ApplicationException(target + " queue not configured");
    }

    sender.sendMessage(queue, createBody(articleId, archive, additionalBodyContent));

}