/**
*
* Copyright (C) norad.fr
*
* Licensed 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.
*/
package fr.norad.visuwall.plugin.bamboo;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import com.google.common.base.Preconditions;
import com.google.common.io.ByteStreams;
import com.google.common.io.Closeables;
class BambooVersionExtractor {
private BambooVersionExtractor() {
}
static String extractVersion(URL url) throws BambooVersionNotFoundException {
InputStream stream = null;
try {
stream = url.openStream();
byte[] bytes = ByteStreams.toByteArray(stream);
String page = new String(bytes);
return extractVersion(page);
} catch (IOException e) {
throw new BambooVersionNotFoundException("Can't extract version from url:" + url, e);
} finally {
Closeables.closeQuietly(stream);
}
}
static String extractVersion(String content) throws BambooVersionNotFoundException {
Preconditions.checkNotNull(content, "content is mandatory");
if (content.contains("version ") && content.contains(" build")) {
String rightOfVersionToken = content.split("version ")[1];
String leftOfBuildToken = rightOfVersionToken.split(" build")[0];
return leftOfBuildToken;
}
throw new BambooVersionNotFoundException("Can't extract version from content: " + content);
}
}