1414import java .io .FileReader ;
1515import java .io .IOException ;
1616import java .net .URISyntaxException ;
17+ import java .net .URL ;
1718import java .util .ArrayList ;
1819import java .util .Collection ;
1920import java .util .HashMap ;
@@ -94,10 +95,6 @@ public void init(ServletConfig servletConfig) throws ServletException {
9495 for (Entry <String , JsonObject > dataSource : config .getDataSources ().entrySet ()) {
9596 dataSources .put (dataSource .getKey (), DataSourceFactory .create (dataSource .getValue ()));
9697 }
97-
98- String baseURL = config .getBaseURL () != null ? config .getBaseURL () : "http://localhost:8080" ;
99-
100- IndexDataSource index = new IndexDataSource (baseURL , dataSources );
10198
10299 // register content types
103100 mimeTypes .add (Lang .TTL .getHeaderString ());
@@ -123,6 +120,11 @@ private IDataSource getDataSource(HttpServletRequest request) throws IOException
123120 String path = contextPath == null
124121 ? requestURI
125122 : requestURI .substring (contextPath .length ());
123+
124+ if (path .equals ("/" ) || path .isEmpty ()) {
125+ return new IndexDataSource (getBaseUrl (request ), dataSources );
126+ }
127+
126128 String dataSourceName = path .substring (1 );
127129 IDataSource dataSource = dataSources .get (dataSourceName );
128130 if (dataSource == null ) {
@@ -138,18 +140,20 @@ private IDataSource getDataSource(HttpServletRequest request) throws IOException
138140 * @return
139141 */
140142 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 )
142150 || (request .getServerPort () == 443 )) {
143151 return request .getScheme () + "://"
144- + request .getServerName ()
145- + request .getRequestURI ();
152+ + request .getServerName ();
146153 } else {
147154 return request .getScheme () + "://"
148- + request .getServerName () + ":" + request .getServerPort ()
149- + request .getRequestURI ();
155+ + request .getServerName () + ":" + request .getServerPort ();
150156 }
151-
152- //return request.getScheme() + "://" + hostName + request.getRequestURI();
153157 }
154158
155159 /**
@@ -286,6 +290,7 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) thro
286290
287291 RDFDataMgr .write (response .getOutputStream (), output , contentType );
288292 } catch (IOException | URISyntaxException e ) {
293+ e .printStackTrace ();
289294 throw new ServletException (e );
290295 }
291296 }
0 commit comments