blob: 533b49e50845506711bf1305adaf1258d776fd7f [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jena.fuseki.server;
import javax.servlet.ServletContext ;
import org.apache.jena.atlas.lib.Registry ;
import org.apache.jena.fuseki.FusekiException ;
public class DataAccessPointRegistry extends Registry<String, DataAccessPoint>
{
public DataAccessPointRegistry() {}
// Add error checking.
public void register(String name, DataAccessPoint accessPt) {
if ( isRegistered(name) )
throw new FusekiException("Already registered: "+name) ;
super.put(name, accessPt);
}
// Debugging
public void print(String string) {
System.out.flush() ;
if ( string == null )
string = "DataAccessPointRegistry" ;
System.out.println("== "+string) ;
this.forEach((k,ref)->{
System.out.printf(" (key=%s, ref=%s)\n", k, ref.getName()) ;
ref.getDataService().getOperations().forEach((opName)->{
ref.getDataService().getOperation(opName).forEach(ep->{
System.out.printf(" %s : %s\n", opName, ep.getEndpoint()) ;
});
});
}) ;
}
// TODO To be removed ...
private static DataAccessPointRegistry singleton = new DataAccessPointRegistry() ;
// Still used by ServerTest and FusekiEmbeddedServer (but nowhere else)
public static DataAccessPointRegistry get() { return singleton ; }
private static final String attrNameRegistry = "jena-fuseki:dataAccessPointRegistry" ;
// Policy for the location of the server-wide DataAccessPointRegistry
public static DataAccessPointRegistry get(ServletContext cxt) {
//return (DataAccessPointRegistry)cxt.getAttribute(attrName) ;
return singleton ;
}
public static void set(ServletContext cxt, DataAccessPointRegistry registry) {
// Temporary until get() removed completely.
singleton = registry ;
cxt.setAttribute(attrNameRegistry, registry) ;
}
}