/** * Go through the input string and replace any occurance of ${p} with the * System.getProperty(p) value. If there is no such property p defined, then * the ${p} reference will remain unchanged. * <p/> * If the property reference is of the form ${p:v} and there is no such * property p, then the default value v will be returned. * <p/> * If the property reference is of the form ${p1,p2} or ${p1,p2:v} then the * primary and the secondary properties will be tried in turn, before * returning either the unchanged input, or the default value. * <p/> * The property ${/} is replaced with System.getProperty("file.separator") * value and the property ${:} is replaced with System.getProperty("path.separator"). * * @param string - the string with possible ${} references * @return the input string with all property references replaced if any. If * there are no valid references the input string will be returned. */ public static String replaceProperties(final String string) { return replaceProperties(string, null); }
value = resolveCompositeKey(realKey, props); value = resolveCompositeKey(key, props);
@Override public Properties properties() { // Interpolate with system properties where ${sysPropName} is found Properties interpolatedProps = new Properties(); for (String name : super.properties().stringPropertyNames()) { interpolatedProps.setProperty(name, StringPropertyReplacer.replaceProperties(super.properties().getProperty(name))); } return interpolatedProps; }
@Override public Properties properties() { // Interpolate with system properties where ${sysPropName} is found Properties interpolatedProps = new Properties(); for (String name: super.properties().stringPropertyNames()) { interpolatedProps.setProperty(name, StringPropertyReplacer.replaceProperties(super.properties().getProperty(name))); } return interpolatedProps; }
public <T extends Enum<T>> T getEnumProperty(String key, Class<T> enumClass, T defaultValue, boolean doStringReplace) { String value = getProperty(key); if (value == null) return defaultValue; value = value.trim(); if (value.length() == 0) return defaultValue; if (doStringReplace) value = StringPropertyReplacer.replaceProperties(value); try { return Enum.valueOf(enumClass, value); } catch (IllegalArgumentException e) { log.unableToConvertStringPropertyToEnum(value, defaultValue.name()); return defaultValue; } }
public int getIntProperty(String key, int defaultValue, boolean doStringReplace) { String value = getProperty(key); if (value == null) return defaultValue; value = value.trim(); if (value.length() == 0) return defaultValue; if (doStringReplace) value = StringPropertyReplacer.replaceProperties(value); try { return Integer.parseInt(value); } catch (NumberFormatException nfe) { log.unableToConvertStringPropertyToInt(value, defaultValue); return defaultValue; } }
public long getLongProperty(String key, long defaultValue, boolean doStringReplace) { String value = getProperty(key); if (value == null) return defaultValue; value = value.trim(); if (value.length() == 0) return defaultValue; if (doStringReplace) value = StringPropertyReplacer.replaceProperties(value); try { return Long.parseLong(value); } catch (NumberFormatException nfe) { log.unableToConvertStringPropertyToLong(value, defaultValue); return defaultValue; } }
public boolean getBooleanProperty(String key, boolean defaultValue, boolean doStringReplace) { String value = getProperty(key); if (value == null) return defaultValue; value = value.trim(); if (value.length() == 0) return defaultValue; if (doStringReplace) value = StringPropertyReplacer.replaceProperties(value); try { return Boolean.parseBoolean(value); } catch (Exception e) { log.unableToConvertStringPropertyToBoolean(value, defaultValue); return defaultValue; } }
/** * Get the property associated with the key, optionally applying string property replacement as defined in * {@link StringPropertyReplacer#replaceProperties} to the result. * * @param key the hashtable key. * @param defaultValue a default value. * @param doStringReplace boolean indicating whether to apply string property replacement * @return the value in this property list with the specified key valu after optionally being inspected for String property replacement */ public synchronized String getProperty(String key, String defaultValue, boolean doStringReplace) { if (doStringReplace) return StringPropertyReplacer.replaceProperties(getProperty(key, defaultValue)); else return getProperty(key, defaultValue); }
/** * This method is public static so that it can be reused by custom cache store/loader configuration parsers */ public static void parseCommonStoreAttributes(XMLExtendedStreamReader reader, int i, StoreConfigurationBuilder<?, ?> builder) throws XMLStreamException { ParseUtils.requireNoNamespaceAttribute(reader, i); String value = replaceProperties(reader.getAttributeValue(i)); org.infinispan.tools.config.v6.Attribute attribute = org.infinispan.tools.config.v6.Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case FETCH_PERSISTENT_STATE: builder.fetchPersistentState(Boolean.parseBoolean(value)); break; case IGNORE_MODIFICATIONS: builder.ignoreModifications(Boolean.parseBoolean(value)); break; case PURGE_ON_STARTUP: builder.purgeOnStartup(Boolean.parseBoolean(value)); break; default: throw ParseUtils.unexpectedAttribute(reader, i); } }
private void parseGlobalSites(final XMLExtendedStreamReader reader, final ConfigurationBuilderHolder holder) throws XMLStreamException { GlobalConfigurationBuilder gcb = holder.getGlobalConfigurationBuilder(); ParseUtils.requireSingleAttribute(reader, "local"); String value = replaceProperties(reader.getAttributeValue(0)); gcb.site().localSite(value); ParseUtils.requireNoContent(reader); }
private void parseConnectionPool(XMLExtendedStreamReader reader, ConnectionPoolConfigurationBuilder builder) throws XMLStreamException { for (int i = 0; i < reader.getAttributeCount(); i++) { ParseUtils.requireNoNamespaceAttribute(reader, i); String value = replaceProperties(reader.getAttributeValue(i)); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) {
private void parseConnectionPool(XMLExtendedStreamReader reader, ConnectionPoolConfigurationBuilder builder) throws XMLStreamException { for (int i = 0; i < reader.getAttributeCount(); i++) { ParseUtils.requireNoNamespaceAttribute(reader, i); String value = replaceProperties(reader.getAttributeValue(i)); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) {
for (int i = 0; i < reader.getAttributeCount(); i++) { ParseUtils.requireNoNamespaceAttribute(reader, i); String value = replaceProperties(reader.getAttributeValue(i)); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) {
private void parseExpiry(XMLExtendedStreamReader reader, RocksDBStoreConfigurationBuilder builder) throws XMLStreamException { for (int i = 0; i < reader.getAttributeCount(); i++) { String attributeValue = reader.getAttributeValue(i); String value = StringPropertyReplacer.replaceProperties(attributeValue); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case PATH: { builder.expiredLocation(value); break; } case QUEUE_SIZE: { builder.expiryQueueSize(Integer.valueOf(value)); break; } default: throw ParseUtils.unexpectedAttribute(reader, i); } } ParseUtils.requireNoContent(reader); }
private void parseLevelDBCacheStoreExpiry(XMLExtendedStreamReader reader, LevelDBStoreConfigurationBuilder builder) throws XMLStreamException { for (int i = 0; i < reader.getAttributeCount(); i++) { String attributeValue = reader.getAttributeValue(i); String value = StringPropertyReplacer.replaceProperties(attributeValue); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case PATH: { builder.expiredLocation(value); break; } case QUEUE_SIZE: { builder.expiryQueueSize(Integer.valueOf(value)); break; } default: throw ParseUtils.unexpectedAttribute(reader, i); } } ParseUtils.requireNoContent(reader); }
for (int i = 0; i < reader.getAttributeCount(); i++) { ParseUtils.requireNoNamespaceAttribute(reader, i); String value = replaceProperties(reader.getAttributeValue(i)); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) {
private void parseConnectionPool(XMLExtendedStreamReader reader, ConnectionPoolConfigurationBuilder builder) throws XMLStreamException { for (int i = 0; i < reader.getAttributeCount(); i++) { ParseUtils.requireNoNamespaceAttribute(reader, i); String value = replaceProperties(reader.getAttributeValue(i)); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) {
private void parseServer(XMLExtendedStreamReader reader, RemoteServerConfigurationBuilder builder) throws XMLStreamException { for (int i = 0; i < reader.getAttributeCount(); i++) { ParseUtils.requireNoNamespaceAttribute(reader, i); String value = replaceProperties(reader.getAttributeValue(i)); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case HOST: builder.host(value); break; case PORT: builder.port(Integer.parseInt(value)); break; default: throw ParseUtils.unexpectedAttribute(reader, i); } } ParseUtils.requireNoContent(reader); }
private void parseSync(final XMLExtendedStreamReader reader, final ConfigurationBuilder builder) throws XMLStreamException { for (int i = 0; i < reader.getAttributeCount(); i++) { ParseUtils.requireNoNamespaceAttribute(reader, i); String value = replaceProperties(reader.getAttributeValue(i)); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case REPL_TIMEOUT: builder.clustering().sync().replTimeout(Long.parseLong(value)); break; default: throw ParseUtils.unexpectedAttribute(reader, i); } } ParseUtils.requireNoContent(reader); }