/** * * 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.jenkins; import static org.apache.commons.lang.StringUtils.isNumeric; import fr.norad.visuwall.api.domain.SoftwareId; import org.apache.commons.lang.StringUtils; public class JenkinsVersionPage { private String content; public JenkinsVersionPage(String content) { this.content = content; } public SoftwareId createSoftwareId() { SoftwareId softwareId = new SoftwareId(); softwareId.setName("Jenkins"); String strVersion = getVersion(content); softwareId.setVersion(strVersion); addWarnings(softwareId, strVersion); return softwareId; } private void addWarnings(SoftwareId softwareInfo, String strVersion) { String cleanedVersion = StringUtils.remove(strVersion, "."); if (isNumeric(cleanedVersion)) { double version = Double.parseDouble(strVersion); if (version < 1.405) { addWarningForVersionBefore1405(softwareInfo); } } } private void addWarningForVersionBefore1405(SoftwareId softwareInfo) { softwareInfo.setWarnings("This jenkins version has a bug with git project. Git project wont be display."); } private String getVersion(String xml) { return new JenkinsVersionExtractor(xml).version(); } public boolean isJenkinsApiPage() { return content.contains("Remote API [Jenkins]"); } }