Skip to content

Commit 9239095

Browse files
committed
ServiceStackIDEA using GitHub tags to check for latest dep version
1 parent def4535 commit 9239095

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

src/ServiceStackIDEA/src/net/servicestack/idea/AddRef.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.servicestack.idea;
22

3+
import com.google.gson.JsonElement;
4+
import com.google.gson.JsonParser;
35
import com.intellij.ide.util.PackageChooserDialog;
46
import com.intellij.openapi.module.Module;
57
import com.intellij.openapi.project.Project;
@@ -16,7 +18,13 @@
1618
import javax.swing.event.DocumentListener;
1719
import java.awt.*;
1820
import java.awt.event.*;
21+
import java.io.BufferedReader;
22+
import java.io.IOException;
23+
import java.io.InputStreamReader;
24+
import java.net.MalformedURLException;
1925
import java.net.URL;
26+
import java.net.URLConnection;
27+
import java.util.*;
2028

2129
public class AddRef extends JDialog {
2230
private JPanel contentPane;
@@ -45,6 +53,8 @@ public AddRef(@NotNull Module module) {
4553

4654
buttonOK.setEnabled(false);
4755

56+
57+
4858
addressUrlTextField.setInputVerifier(new InputVerifier() {
4959
@Override
5060
public boolean verify(JComponent input) {
@@ -186,6 +196,33 @@ private void processOK() {
186196
errorMessage = null;
187197
errorTextPane.setVisible(false);
188198

199+
URL serviceUrl;
200+
try {
201+
serviceUrl = new URL("https://api.github.com/repos/ServiceStack/ServiceStack.Java/tags");
202+
URLConnection javaResponseConnection = serviceUrl.openConnection();
203+
StringBuilder builder = new StringBuilder();
204+
BufferedReader javaResponseReader = new BufferedReader(
205+
new InputStreamReader(
206+
javaResponseConnection.getInputStream()));
207+
String metadataInputLine;
208+
209+
while ((metadataInputLine = javaResponseReader.readLine()) != null)
210+
builder.append(metadataInputLine);
211+
212+
213+
JsonElement jElement = new JsonParser().parse(builder.toString());
214+
if(jElement.getAsJsonArray().size() > 0) {
215+
String latestTag = jElement.getAsJsonArray().get(0).getAsJsonObject().get("name").getAsJsonPrimitive().getAsString();
216+
AddServiceStackRefHandler.setDependencyVersion(latestTag.substring(1));
217+
}
218+
219+
} catch (MalformedURLException e) {
220+
e.printStackTrace();
221+
} catch (IOException e) {
222+
e.printStackTrace();
223+
}
224+
225+
189226
Runnable r = new Runnable() {
190227
public void run() {
191228
try {

src/ServiceStackIDEA/src/net/servicestack/idea/AddServiceStackRefHandler.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,13 @@ public class AddServiceStackRefHandler {
3333

3434
private static final String dependencyGroupId = "net.servicestack";
3535
private static final String dependencyPackageId = "android";
36-
private static final String dependencyVersion = "1.0.13";
36+
private static String dependencyVersion = "1.0.13";
3737
private static final String clientPackageId = "client";
3838

39+
public static void setDependencyVersion(String version) {
40+
dependencyVersion = version;
41+
}
42+
3943
public static void handleOk(String addressUrl, String qualifiedPackageName, String fileName, String selectedDirectory, Module module, StringBuilder errorMessage) {
4044
String url;
4145
List<String> javaCodeLines = new ArrayList<String>();

0 commit comments

Comments
 (0)