bea78482fde1a7f77e198164bbe1d97b06c84ae0
java/com.sap.sailing.landscape.ui/src/com/sap/sailing/landscape/ui/client/LinkBuilder.java
| ... | ... | @@ -128,7 +128,8 @@ public class LinkBuilder implements Builder<LinkBuilder, SafeHtml> { |
| 128 | 128 | } |
| 129 | 129 | |
| 130 | 130 | private String getReleaseNotesLink(final String version) { |
| 131 | - return "https://releases.sapsailing.com/" + version + "/release-notes.txt"; |
|
| 131 | + // TODO bug6173: can we figure this out from the ReleaseRepository, asking a Release specified by "version"? See Release.getReleaseNotesURL() |
|
| 132 | + return "https://github.com/SAP/sailing-analytics/releases/download/" + version + "/release-notes.txt"; |
|
| 132 | 133 | } |
| 133 | 134 | |
| 134 | 135 | /** |
java/com.sap.sailing.landscape/src/com/sap/sailing/landscape/SailingReleaseRepository.java
| ... | ... | @@ -1,8 +1,8 @@ |
| 1 | 1 | package com.sap.sailing.landscape; |
| 2 | 2 | |
| 3 | 3 | import com.sap.sse.landscape.ReleaseRepository; |
| 4 | -import com.sap.sse.landscape.impl.ReleaseRepositoryImpl; |
|
| 4 | +import com.sap.sse.landscape.impl.GithubReleasesRepository; |
|
| 5 | 5 | |
| 6 | 6 | public interface SailingReleaseRepository extends ReleaseRepository { |
| 7 | - ReleaseRepository INSTANCE = new ReleaseRepositoryImpl("https://releases.sapsailing.com", /* master release name prefix */ "main"); |
|
| 7 | + ReleaseRepository INSTANCE = new GithubReleasesRepository("https://github.com/SAP/sailing-analytics/releases/download/", /* main release name prefix */ "main"); |
|
| 8 | 8 | } |
java/com.sap.sse.landscape/src/com/sap/sse/landscape/ReleaseRepository.java
| ... | ... | @@ -13,7 +13,7 @@ public interface ReleaseRepository extends Iterable<Release> { |
| 13 | 13 | * repository, or {@code null} otherwise |
| 14 | 14 | */ |
| 15 | 15 | default Release getLatestMasterRelease() { |
| 16 | - return getLatestRelease(getMasterReleaseNamePrefix()); |
|
| 16 | + return getLatestRelease(getMainReleaseNamePrefix()); |
|
| 17 | 17 | } |
| 18 | 18 | |
| 19 | 19 | /** |
| ... | ... | @@ -28,5 +28,5 @@ public interface ReleaseRepository extends Iterable<Release> { |
| 28 | 28 | |
| 29 | 29 | String getRepositoryBase(); |
| 30 | 30 | |
| 31 | - String getMasterReleaseNamePrefix(); |
|
| 31 | + String getMainReleaseNamePrefix(); |
|
| 32 | 32 | } |
java/com.sap.sse.landscape/src/com/sap/sse/landscape/impl/AbstractReleaseRepository.java
| ... | ... | @@ -0,0 +1,52 @@ |
| 1 | +package com.sap.sse.landscape.impl; |
|
| 2 | + |
|
| 3 | +import java.util.Iterator; |
|
| 4 | + |
|
| 5 | +import com.sap.sse.common.Util; |
|
| 6 | +import com.sap.sse.landscape.Release; |
|
| 7 | +import com.sap.sse.landscape.ReleaseRepository; |
|
| 8 | + |
|
| 9 | +public abstract class AbstractReleaseRepository implements ReleaseRepository { |
|
| 10 | + private final String mainReleaseNamePrefix; |
|
| 11 | + private final String repositoryBase; |
|
| 12 | + |
|
| 13 | + public AbstractReleaseRepository(String repositoryBase, String mainReleaseNamePrefix) { |
|
| 14 | + super(); |
|
| 15 | + this.repositoryBase = repositoryBase; |
|
| 16 | + this.mainReleaseNamePrefix = mainReleaseNamePrefix; |
|
| 17 | + } |
|
| 18 | + |
|
| 19 | + @Override |
|
| 20 | + public String getRepositoryBase() { |
|
| 21 | + return repositoryBase; |
|
| 22 | + } |
|
| 23 | + |
|
| 24 | + @Override |
|
| 25 | + public String getMainReleaseNamePrefix() { |
|
| 26 | + return mainReleaseNamePrefix; |
|
| 27 | + } |
|
| 28 | + |
|
| 29 | + protected abstract Iterable<Release> getAvailableReleases(); |
|
| 30 | + |
|
| 31 | + @Override |
|
| 32 | + public Iterator<Release> iterator() { |
|
| 33 | + return getAvailableReleases().iterator(); |
|
| 34 | + } |
|
| 35 | + |
|
| 36 | + @Override |
|
| 37 | + public Release getLatestRelease(String releaseNamePrefix) { |
|
| 38 | + Release result = null; |
|
| 39 | + for (final Release release : getAvailableReleases()) { |
|
| 40 | + if (release.getBaseName().equals(releaseNamePrefix) && |
|
| 41 | + (result == null || release.getCreationDate().after(result.getCreationDate()))) { |
|
| 42 | + result = release; |
|
| 43 | + } |
|
| 44 | + } |
|
| 45 | + return result; |
|
| 46 | + } |
|
| 47 | + |
|
| 48 | + @Override |
|
| 49 | + public Release getRelease(String releaseName) { |
|
| 50 | + return Util.first(Util.filter(getAvailableReleases(), r->r.getName().equals(releaseName))); |
|
| 51 | + } |
|
| 52 | +} |
java/com.sap.sse.landscape/src/com/sap/sse/landscape/impl/GithubReleasesRepository.java
| ... | ... | @@ -0,0 +1,40 @@ |
| 1 | +package com.sap.sse.landscape.impl; |
|
| 2 | + |
|
| 3 | +import java.io.IOException; |
|
| 4 | +import java.io.InputStream; |
|
| 5 | +import java.io.InputStreamReader; |
|
| 6 | +import java.net.URL; |
|
| 7 | +import java.net.URLConnection; |
|
| 8 | +import java.util.logging.Logger; |
|
| 9 | + |
|
| 10 | +import org.json.simple.JSONArray; |
|
| 11 | +import org.json.simple.parser.JSONParser; |
|
| 12 | +import org.json.simple.parser.ParseException; |
|
| 13 | + |
|
| 14 | +import com.sap.sse.landscape.Release; |
|
| 15 | +import com.sap.sse.landscape.ReleaseRepository; |
|
| 16 | +import com.sap.sse.util.HttpUrlConnectionHelper; |
|
| 17 | + |
|
| 18 | +public class GithubReleasesRepository extends AbstractReleaseRepository implements ReleaseRepository { |
|
| 19 | + private final static Logger logger = Logger.getLogger(GithubReleasesRepository.class.getName()); |
|
| 20 | + |
|
| 21 | + public GithubReleasesRepository(String repositoryBase, String mainReleaseNamePrefix) { |
|
| 22 | + super(repositoryBase, mainReleaseNamePrefix); |
|
| 23 | + } |
|
| 24 | + |
|
| 25 | + @Override |
|
| 26 | + protected Iterable<Release> getAvailableReleases() { |
|
| 27 | + URLConnection connection; |
|
| 28 | + try { |
|
| 29 | + connection = HttpUrlConnectionHelper.redirectConnection(new URL(getRepositoryBase())); |
|
| 30 | + final InputStream index = (InputStream) connection.getContent(); |
|
| 31 | + final JSONArray releasesJson = (JSONArray) new JSONParser().parse(new InputStreamReader(index)); |
|
| 32 | + // TODO |
|
| 33 | + return null; |
|
| 34 | + } catch (IOException | ParseException e) { |
|
| 35 | + logger.warning("Exception trying to find releases: "+e.getMessage()); |
|
| 36 | + } |
|
| 37 | + return null; // TODO |
|
| 38 | + } |
|
| 39 | + |
|
| 40 | +} |
java/com.sap.sse.landscape/src/com/sap/sse/landscape/impl/ReleaseRepositoryImpl.java
| ... | ... | @@ -6,7 +6,6 @@ import java.io.InputStream; |
| 6 | 6 | import java.net.URL; |
| 7 | 7 | import java.net.URLConnection; |
| 8 | 8 | import java.util.Collections; |
| 9 | -import java.util.Iterator; |
|
| 10 | 9 | import java.util.LinkedList; |
| 11 | 10 | import java.util.List; |
| 12 | 11 | import java.util.logging.Level; |
| ... | ... | @@ -14,34 +13,17 @@ import java.util.logging.Logger; |
| 14 | 13 | import java.util.regex.Matcher; |
| 15 | 14 | import java.util.regex.Pattern; |
| 16 | 15 | |
| 17 | -import com.sap.sse.common.Util; |
|
| 18 | 16 | import com.sap.sse.landscape.Release; |
| 19 | -import com.sap.sse.landscape.ReleaseRepository; |
|
| 20 | 17 | import com.sap.sse.util.HttpUrlConnectionHelper; |
| 21 | 18 | |
| 22 | -public class ReleaseRepositoryImpl implements ReleaseRepository { |
|
| 19 | +public class ReleaseRepositoryImpl extends AbstractReleaseRepository { |
|
| 23 | 20 | private static final Logger logger = Logger.getLogger(ReleaseRepositoryImpl.class.getName()); |
| 24 | - private final String repositoryBase; |
|
| 25 | 21 | |
| 26 | - private final String masterReleaseNamePrefix; |
|
| 27 | - |
|
| 28 | - public ReleaseRepositoryImpl(String repositoryBase, String masterReleaseNamePrefix) { |
|
| 29 | - super(); |
|
| 30 | - this.repositoryBase = repositoryBase; |
|
| 31 | - this.masterReleaseNamePrefix = masterReleaseNamePrefix; |
|
| 32 | - } |
|
| 33 | - |
|
| 34 | - @Override |
|
| 35 | - public String getRepositoryBase() { |
|
| 36 | - return repositoryBase; |
|
| 22 | + public ReleaseRepositoryImpl(String repositoryBase, String mainReleaseNamePrefix) { |
|
| 23 | + super(repositoryBase, mainReleaseNamePrefix); |
|
| 37 | 24 | } |
| 38 | 25 | |
| 39 | - @Override |
|
| 40 | - public String getMasterReleaseNamePrefix() { |
|
| 41 | - return masterReleaseNamePrefix; |
|
| 42 | - } |
|
| 43 | - |
|
| 44 | - private Iterable<Release> getAvailableReleases() { |
|
| 26 | + protected Iterable<Release> getAvailableReleases() { |
|
| 45 | 27 | final List<Release> result = new LinkedList<>(); |
| 46 | 28 | try { |
| 47 | 29 | final URLConnection connection = HttpUrlConnectionHelper.redirectConnection(new URL(getRepositoryBase())); |
| ... | ... | @@ -66,27 +48,4 @@ public class ReleaseRepositoryImpl implements ReleaseRepository { |
| 66 | 48 | } |
| 67 | 49 | return result; |
| 68 | 50 | } |
| 69 | - |
|
| 70 | - @Override |
|
| 71 | - public Iterator<Release> iterator() { |
|
| 72 | - return getAvailableReleases().iterator(); |
|
| 73 | - } |
|
| 74 | - |
|
| 75 | - @Override |
|
| 76 | - public Release getLatestRelease(String releaseNamePrefix) { |
|
| 77 | - Release result = null; |
|
| 78 | - for (final Release release : getAvailableReleases()) { |
|
| 79 | - if (release.getBaseName().equals(releaseNamePrefix) && |
|
| 80 | - (result == null || release.getCreationDate().after(result.getCreationDate()))) { |
|
| 81 | - result = release; |
|
| 82 | - } |
|
| 83 | - } |
|
| 84 | - return result; |
|
| 85 | - } |
|
| 86 | - |
|
| 87 | - @Override |
|
| 88 | - public Release getRelease(String releaseName) { |
|
| 89 | - return Util.first(Util.filter(getAvailableReleases(), r->r.getName().equals(releaseName))); |
|
| 90 | - } |
|
| 91 | - |
|
| 92 | 51 | } |