21
21
import java .io .InputStream ;
22
22
import java .io .InputStreamReader ;
23
23
import java .net .URL ;
24
+ import java .net .URLConnection ;
24
25
import java .util .ArrayList ;
25
26
import java .util .HashMap ;
26
27
import java .util .List ;
27
28
import java .util .Map ;
29
+ import javax .tools .Diagnostic ;
30
+ import jdk .javadoc .doclet .Reporter ;
28
31
29
32
/**
30
33
*
@@ -42,12 +45,12 @@ public void addConfiguredBaseUrl(String baseUrl) {
42
45
configuredBaseUrls .add (baseUrl );
43
46
}
44
47
45
- public String getUrlForPackage (String packageName ) {
48
+ public String getUrlForPackage (Reporter reporter , String packageName ) {
46
49
if (!configuredBaseUrls .isEmpty () && !packageListsRead ) {
47
50
packageListsRead = true ;
48
51
for (String cofiguredBaseUrl : configuredBaseUrls ) {
49
- readPackageList (baseUrlFromPackage , cofiguredBaseUrl );
50
- readElementList (baseUrlFromPackage , cofiguredBaseUrl );
52
+ readPackageList (reporter , baseUrlFromPackage , cofiguredBaseUrl );
53
+ readElementList (reporter , baseUrlFromPackage , cofiguredBaseUrl );
51
54
}
52
55
}
53
56
String baseUrl = baseUrlFromPackage .get (packageName );
@@ -58,35 +61,43 @@ public String getUrlForPackage(String packageName) {
58
61
}
59
62
}
60
63
61
- public String getUrlForType (String packageName , String className ) {
62
- String packageUrl = getUrlForPackage (packageName );
64
+ public String getUrlForType (Reporter reporter , String packageName , String className ) {
65
+ String packageUrl = getUrlForPackage (reporter , packageName );
63
66
if (packageUrl == null ) {
64
67
return null ;
65
68
} else {
66
69
return packageUrl + className + ".html" ;
67
70
}
68
71
}
69
72
70
- static void readPackageList (Map <String , String > baseUrlFromPackage , String baseUrl ) {
73
+ static void readPackageList (Reporter reporter , Map <String , String > baseUrlFromPackage , String baseUrl ) {
74
+ String url = baseUrl .endsWith ("/" ) ? baseUrl + "package-list" : baseUrl + "/package-list" ;
71
75
try {
72
- URL link = new URL (baseUrl .endsWith ("/" ) ? baseUrl + "package-list" : baseUrl + "/package-list" );
73
- try (InputStream in = link .openStream ()) {
76
+ URL link = new URL (url );
77
+ URLConnection con = link .openConnection ();
78
+ con .setConnectTimeout (2000 );
79
+ con .setReadTimeout (2000 );
80
+ try (InputStream in = con .getInputStream ()) {
74
81
readPackageList (baseUrlFromPackage , in , baseUrl );
75
82
}
76
83
} catch (Throwable ex ) {
77
- // Silently fail, because failure is quite likely
84
+ reporter . print ( Diagnostic . Kind . NOTE , "Failed to download from URL " + url + " (" + ex . toString () + ")" );
78
85
}
79
86
80
87
}
81
88
82
- static void readElementList (Map <String , String > baseUrlFromPackage , String baseUrl ) {
89
+ static void readElementList (Reporter reporter , Map <String , String > baseUrlFromPackage , String baseUrl ) {
90
+ String url = baseUrl .endsWith ("/" ) ? baseUrl + "element-list" : baseUrl + "/element-list" ;
83
91
try {
84
- URL link = new URL (baseUrl .endsWith ("/" ) ? baseUrl + "element-list" : baseUrl + "/element-list" );
85
- try (InputStream in = link .openStream ()) {
92
+ URL link = new URL (url );
93
+ URLConnection con = link .openConnection ();
94
+ con .setConnectTimeout (2000 );
95
+ con .setReadTimeout (2000 );
96
+ try (InputStream in = con .getInputStream ()) {
86
97
readPackageList (baseUrlFromPackage , in , baseUrl );
87
98
}
88
99
} catch (Throwable ex ) {
89
- // Silently fail, because failure is quite likely
100
+ reporter . print ( Diagnostic . Kind . NOTE , "Failed to download from URL " + url + " (" + ex . toString () + ")" );
90
101
}
91
102
}
92
103
0 commit comments