package org.eclipse.aether.util;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *  http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;

import org.eclipse.aether.RepositorySystemSession;

A utility class to read configuration properties from a repository system session.
See Also:
  • getConfigProperties.getConfigProperties()
/** * A utility class to read configuration properties from a repository system session. * * @see RepositorySystemSession#getConfigProperties() */
public final class ConfigUtils { private ConfigUtils() { // hide constructor }
Gets the specified configuration property.
Params:
  • properties – The configuration properties to read, must not be null.
  • defaultValue – The default value to return in case none of the property keys are set, may be null.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a valid value is found.
Returns:The property value or null if none.
/** * Gets the specified configuration property. * * @param properties The configuration properties to read, must not be {@code null}. * @param defaultValue The default value to return in case none of the property keys are set, may be {@code null}. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a valid value is found. * @return The property value or {@code null} if none. */
public static Object getObject( Map<?, ?> properties, Object defaultValue, String... keys ) { for ( String key : keys ) { Object value = properties.get( key ); if ( value != null ) { return value; } } return defaultValue; }
Gets the specified configuration property.
Params:
  • session – The repository system session from which to read the configuration property, must not be null.
  • defaultValue – The default value to return in case none of the property keys are set, may be null.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a valid value is found.
Returns:The property value or null if none.
/** * Gets the specified configuration property. * * @param session The repository system session from which to read the configuration property, must not be * {@code null}. * @param defaultValue The default value to return in case none of the property keys are set, may be {@code null}. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a valid value is found. * @return The property value or {@code null} if none. */
public static Object getObject( RepositorySystemSession session, Object defaultValue, String... keys ) { return getObject( session.getConfigProperties(), defaultValue, keys ); }
Gets the specified configuration property.
Params:
  • properties – The configuration properties to read, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a string, may be null.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a string value is found.
Returns:The property value or null if none.
/** * Gets the specified configuration property. * * @param properties The configuration properties to read, must not be {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a string, may be * {@code null}. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a string value is found. * @return The property value or {@code null} if none. */
public static String getString( Map<?, ?> properties, String defaultValue, String... keys ) { for ( String key : keys ) { Object value = properties.get( key ); if ( value instanceof String ) { return (String) value; } } return defaultValue; }
Gets the specified configuration property.
Params:
  • session – The repository system session from which to read the configuration property, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a string, may be null.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a string value is found.
Returns:The property value or null if none.
/** * Gets the specified configuration property. * * @param session The repository system session from which to read the configuration property, must not be * {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a string, may be * {@code null}. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a string value is found. * @return The property value or {@code null} if none. */
public static String getString( RepositorySystemSession session, String defaultValue, String... keys ) { return getString( session.getConfigProperties(), defaultValue, keys ); }
Gets the specified configuration property.
Params:
  • properties – The configuration properties to read, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a number.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a Number or a string representation of an Integer is found.
Returns:The property value.
/** * Gets the specified configuration property. * * @param properties The configuration properties to read, must not be {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a number. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a {@link Number} or a string representation of an {@link Integer} is found. * @return The property value. */
public static int getInteger( Map<?, ?> properties, int defaultValue, String... keys ) { for ( String key : keys ) { Object value = properties.get( key ); if ( value instanceof Number ) { return ( (Number) value ).intValue(); } try { return Integer.valueOf( (String) value ); } catch ( Exception e ) { // try next key } } return defaultValue; }
Gets the specified configuration property.
Params:
  • session – The repository system session from which to read the configuration property, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a number.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a Number or a string representation of an Integer is found.
Returns:The property value.
/** * Gets the specified configuration property. * * @param session The repository system session from which to read the configuration property, must not be * {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a number. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a {@link Number} or a string representation of an {@link Integer} is found. * @return The property value. */
public static int getInteger( RepositorySystemSession session, int defaultValue, String... keys ) { return getInteger( session.getConfigProperties(), defaultValue, keys ); }
Gets the specified configuration property.
Params:
  • properties – The configuration properties to read, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a number.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a Number or a string representation of a Long is found.
Returns:The property value.
/** * Gets the specified configuration property. * * @param properties The configuration properties to read, must not be {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a number. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a {@link Number} or a string representation of a {@link Long} is found. * @return The property value. */
public static long getLong( Map<?, ?> properties, long defaultValue, String... keys ) { for ( String key : keys ) { Object value = properties.get( key ); if ( value instanceof Number ) { return ( (Number) value ).longValue(); } try { return Long.valueOf( (String) value ); } catch ( Exception e ) { // try next key } } return defaultValue; }
Gets the specified configuration property.
Params:
  • session – The repository system session from which to read the configuration property, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a number.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a Number or a string representation of a Long is found.
Returns:The property value.
/** * Gets the specified configuration property. * * @param session The repository system session from which to read the configuration property, must not be * {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a number. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a {@link Number} or a string representation of a {@link Long} is found. * @return The property value. */
public static long getLong( RepositorySystemSession session, long defaultValue, String... keys ) { return getLong( session.getConfigProperties(), defaultValue, keys ); }
Gets the specified configuration property.
Params:
  • properties – The configuration properties to read, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a number.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a Number or a string representation of a Float is found.
Returns:The property value.
/** * Gets the specified configuration property. * * @param properties The configuration properties to read, must not be {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a number. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a {@link Number} or a string representation of a {@link Float} is found. * @return The property value. */
public static float getFloat( Map<?, ?> properties, float defaultValue, String... keys ) { for ( String key : keys ) { Object value = properties.get( key ); if ( value instanceof Number ) { return ( (Number) value ).floatValue(); } try { return Float.valueOf( (String) value ); } catch ( Exception e ) { // try next key } } return defaultValue; }
Gets the specified configuration property.
Params:
  • session – The repository system session from which to read the configuration property, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a number.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a Number or a string representation of a Float is found.
Returns:The property value.
/** * Gets the specified configuration property. * * @param session The repository system session from which to read the configuration property, must not be * {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a number. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a {@link Number} or a string representation of a {@link Float} is found. * @return The property value. */
public static float getFloat( RepositorySystemSession session, float defaultValue, String... keys ) { return getFloat( session.getConfigProperties(), defaultValue, keys ); }
Gets the specified configuration property.
Params:
  • properties – The configuration properties to read, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a boolean.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a Boolean or a string (to be parsed as boolean) is found.
Returns:The property value.
/** * Gets the specified configuration property. * * @param properties The configuration properties to read, must not be {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a boolean. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a {@link Boolean} or a string (to be {@link Boolean#parseBoolean(String) parsed as boolean}) is found. * @return The property value. */
public static boolean getBoolean( Map<?, ?> properties, boolean defaultValue, String... keys ) { for ( String key : keys ) { Object value = properties.get( key ); if ( value instanceof Boolean ) { return (Boolean) value; } else if ( value instanceof String ) { return Boolean.parseBoolean( (String) value ); } } return defaultValue; }
Gets the specified configuration property.
Params:
  • session – The repository system session from which to read the configuration property, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a boolean.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a Boolean or a string (to be parsed as boolean) is found.
Returns:The property value.
/** * Gets the specified configuration property. * * @param session The repository system session from which to read the configuration property, must not be * {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a boolean. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a {@link Boolean} or a string (to be {@link Boolean#parseBoolean(String) parsed as boolean}) is found. * @return The property value. */
public static boolean getBoolean( RepositorySystemSession session, boolean defaultValue, String... keys ) { return getBoolean( session.getConfigProperties(), defaultValue, keys ); }
Gets the specified configuration property.
Params:
  • properties – The configuration properties to read, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a collection.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a collection is found.
Returns:The property value or null if none.
/** * Gets the specified configuration property. * * @param properties The configuration properties to read, must not be {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a collection. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a collection is found. * @return The property value or {@code null} if none. */
public static List<?> getList( Map<?, ?> properties, List<?> defaultValue, String... keys ) { for ( String key : keys ) { Object value = properties.get( key ); if ( value instanceof List ) { return (List<?>) value; } else if ( value instanceof Collection ) { return Collections.unmodifiableList( new ArrayList<>( (Collection<?>) value ) ); } } return defaultValue; }
Gets the specified configuration property.
Params:
  • session – The repository system session from which to read the configuration property, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a collection.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a collection is found.
Returns:The property value or null if none.
/** * Gets the specified configuration property. * * @param session The repository system session from which to read the configuration property, must not be * {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a collection. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a collection is found. * @return The property value or {@code null} if none. */
public static List<?> getList( RepositorySystemSession session, List<?> defaultValue, String... keys ) { return getList( session.getConfigProperties(), defaultValue, keys ); }
Gets the specified configuration property.
Params:
  • properties – The configuration properties to read, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a map.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a map is found.
Returns:The property value or null if none.
/** * Gets the specified configuration property. * * @param properties The configuration properties to read, must not be {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a map. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a map is found. * @return The property value or {@code null} if none. */
public static Map<?, ?> getMap( Map<?, ?> properties, Map<?, ?> defaultValue, String... keys ) { for ( String key : keys ) { Object value = properties.get( key ); if ( value instanceof Map ) { return (Map<?, ?>) value; } } return defaultValue; }
Gets the specified configuration property.
Params:
  • session – The repository system session from which to read the configuration property, must not be null.
  • defaultValue – The default value to return in case none of the property keys is set to a map.
  • keys – The property keys to read, must not be null. The specified keys are read one after one until a map is found.
Returns:The property value or null if none.
/** * Gets the specified configuration property. * * @param session The repository system session from which to read the configuration property, must not be * {@code null}. * @param defaultValue The default value to return in case none of the property keys is set to a map. * @param keys The property keys to read, must not be {@code null}. The specified keys are read one after one until * a map is found. * @return The property value or {@code null} if none. */
public static Map<?, ?> getMap( RepositorySystemSession session, Map<?, ?> defaultValue, String... keys ) { return getMap( session.getConfigProperties(), defaultValue, keys ); } }