/*******************************************************************************
* Copyright (c) 2014 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.foundation.core.properties.internal;
import java.util.Locale;
import java.util.ResourceBundle;
/**
* Utility class to extract the <code>version</code> property from a {@link ResourceBundle}
*
* @author Fred Bricon
* @since 1.1.0
*/
class VersionExtractor {
private VersionExtractor() {
}
/**
* Searches for the <code>version</code> property in a given {@link ResourceBundle}.
* <code>version</code> is a Maven-filtered property.
* As a convenience, this method searches for a <code>default.version</code> property if
* Maven filtering is unavailable (for development purposes).
*
* @param bundleName the {@link ResourceBundle} name.
* @param classLoader the {@link ClassLoader} to look the <code>bundleName</code> at
* @return the <code>version</code> value or <code>null</code> if no match was found.
*/
public static String getVersion(String bundleName, ClassLoader classLoader) {
ResourceBundle bundle = ResourceBundle.getBundle(bundleName, Locale.getDefault(), classLoader);
String version = bundle.getString("version");
if (version == null || version.trim().isEmpty() || version.contains("${")) {
//Version not interpolated == not maven built, fallback on hard coded value,
//for those m2e haters :-/
version = bundle.getString("default.version");
}
return version.trim();
}
}