14
14
import java .io .FileReader ;
15
15
import java .io .IOException ;
16
16
import java .net .URISyntaxException ;
17
+ import java .net .URL ;
17
18
import java .util .ArrayList ;
18
19
import java .util .Collection ;
19
20
import java .util .HashMap ;
@@ -94,10 +95,6 @@ public void init(ServletConfig servletConfig) throws ServletException {
94
95
for (Entry <String , JsonObject > dataSource : config .getDataSources ().entrySet ()) {
95
96
dataSources .put (dataSource .getKey (), DataSourceFactory .create (dataSource .getValue ()));
96
97
}
97
-
98
- String baseURL = config .getBaseURL () != null ? config .getBaseURL () : "http://localhost:8080" ;
99
-
100
- IndexDataSource index = new IndexDataSource (baseURL , dataSources );
101
98
102
99
// register content types
103
100
mimeTypes .add (Lang .TTL .getHeaderString ());
@@ -123,6 +120,11 @@ private IDataSource getDataSource(HttpServletRequest request) throws IOException
123
120
String path = contextPath == null
124
121
? requestURI
125
122
: requestURI .substring (contextPath .length ());
123
+
124
+ if (path .equals ("/" ) || path .isEmpty ()) {
125
+ return new IndexDataSource (getBaseUrl (request ), dataSources );
126
+ }
127
+
126
128
String dataSourceName = path .substring (1 );
127
129
IDataSource dataSource = dataSources .get (dataSourceName );
128
130
if (dataSource == null ) {
@@ -138,18 +140,20 @@ private IDataSource getDataSource(HttpServletRequest request) throws IOException
138
140
* @return
139
141
*/
140
142
private String getDatasetUrl (HttpServletRequest request ) {
141
- if ((request .getServerPort () == 80 )
143
+ return getBaseUrl (request ) + request .getRequestURI ();
144
+ }
145
+
146
+ private String getBaseUrl (HttpServletRequest request ) {
147
+ if (config .getBaseURL () != null )
148
+ return config .getBaseURL ();
149
+ else if ((request .getServerPort () == 80 )
142
150
|| (request .getServerPort () == 443 )) {
143
151
return request .getScheme () + "://"
144
- + request .getServerName ()
145
- + request .getRequestURI ();
152
+ + request .getServerName ();
146
153
} else {
147
154
return request .getScheme () + "://"
148
- + request .getServerName () + ":" + request .getServerPort ()
149
- + request .getRequestURI ();
155
+ + request .getServerName () + ":" + request .getServerPort ();
150
156
}
151
-
152
- //return request.getScheme() + "://" + hostName + request.getRequestURI();
153
157
}
154
158
155
159
/**
@@ -286,6 +290,7 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) thro
286
290
287
291
RDFDataMgr .write (response .getOutputStream (), output , contentType );
288
292
} catch (IOException | URISyntaxException e ) {
293
+ e .printStackTrace ();
289
294
throw new ServletException (e );
290
295
}
291
296
}
0 commit comments