Reorganizing the way to get servers from config files. Going to support multiple urls
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/information-system/resource-registry@133188 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
bf0148db37
commit
6662e7b6ef
|
@ -31,13 +31,13 @@ public abstract class SecurityContextMapper {
|
||||||
boolean created = DatabaseIntializator.initGraphDB();
|
boolean created = DatabaseIntializator.initGraphDB();
|
||||||
|
|
||||||
logger.trace("Creating factory for {} connecting as {}",
|
logger.trace("Creating factory for {} connecting as {}",
|
||||||
DatabaseEnvironment.URI_DB,
|
DatabaseEnvironment.getDBURI(),
|
||||||
DatabaseEnvironment.DEFAULT_ADMIN_USERNAME);
|
DatabaseEnvironment.DEFAULT_ADMIN_USERNAME);
|
||||||
|
|
||||||
securityContextFactories = new HashMap<>();
|
securityContextFactories = new HashMap<>();
|
||||||
|
|
||||||
OrientGraphFactory factory = new OrientGraphFactory(
|
OrientGraphFactory factory = new OrientGraphFactory(
|
||||||
DatabaseEnvironment.URI_DB,
|
DatabaseEnvironment.getDBURI(),
|
||||||
DatabaseEnvironment.DEFAULT_ADMIN_USERNAME,
|
DatabaseEnvironment.DEFAULT_ADMIN_USERNAME,
|
||||||
DatabaseEnvironment.CHANGED_ADMIN_PASSWORD)
|
DatabaseEnvironment.CHANGED_ADMIN_PASSWORD)
|
||||||
.setupPool(1, 10);
|
.setupPool(1, 10);
|
||||||
|
@ -113,7 +113,7 @@ public abstract class SecurityContextMapper {
|
||||||
SecurityType.USER, contextID);
|
SecurityType.USER, contextID);
|
||||||
String password = DatabaseEnvironment.DEFAULT_PASSWORDS.get(permissionMode);
|
String password = DatabaseEnvironment.DEFAULT_PASSWORDS.get(permissionMode);
|
||||||
|
|
||||||
factory = new OrientGraphFactory(DatabaseEnvironment.URI_DB,
|
factory = new OrientGraphFactory(DatabaseEnvironment.getDBURI(),
|
||||||
username, password).setupPool(1, 10);
|
username, password).setupPool(1, 10);
|
||||||
|
|
||||||
permissionSecurityContextFactories.put(contextID, factory);
|
permissionSecurityContextFactories.put(contextID, factory);
|
||||||
|
|
|
@ -22,56 +22,67 @@ public class DatabaseEnvironment {
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(DatabaseIntializator.class);
|
private static Logger logger = LoggerFactory.getLogger(DatabaseIntializator.class);
|
||||||
|
|
||||||
public static final String PROPERTY_FILENAME = "config.properties";
|
protected static final String PROPERTY_FILENAME = "config.properties";
|
||||||
|
|
||||||
public static final String HOST;
|
protected static final String HOST_VARNAME = "HOST";
|
||||||
public static final String HOST_VARNAME = "HOST";
|
|
||||||
|
|
||||||
public static final String REMOTE_PROTOCOL;
|
protected static final String REMOTE_PROTOCOL;
|
||||||
public static final String REMOTE_PROTOCOL_VARNAME = "REMOTE_PROTOCOL";
|
protected static final String REMOTE_PROTOCOL_VARNAME = "REMOTE_PROTOCOL";
|
||||||
|
|
||||||
public static final String REMOTE_URI;
|
protected static final String HTTP_PROTOCOL;
|
||||||
|
protected static final String HTTP_PROTOCOL_VARNAME = "HTTP_PROTOCOL";
|
||||||
|
|
||||||
public static final String HTTP_PROTOCOL;
|
protected static final String HTTP_PORT;
|
||||||
public static final String HTTP_PROTOCOL_VARNAME = "HTTP_PROTOCOL";
|
protected static final String HTTP_PORT_VARNAME = "HTTP_PORT";
|
||||||
|
|
||||||
public static final String HTTP_PORT;
|
|
||||||
public static final String HTTP_PORT_VARNAME = "HTTP_PORT";
|
|
||||||
|
|
||||||
public static final String HTTP_URL_STRING;
|
|
||||||
|
|
||||||
public static final String DB;
|
public static final String DB;
|
||||||
public static final String DB_VARNAME = "DB";
|
protected static final String DB_VARNAME = "DB";
|
||||||
|
|
||||||
public static final String URI_DB;
|
protected static final String USERNAME;
|
||||||
|
protected static final String USERNAME_VARNAME = "USERNAME";
|
||||||
|
|
||||||
public static final String USERNAME;
|
protected static final String PASSWORD;
|
||||||
public static final String USERNAME_VARNAME = "USERNAME";
|
protected static final String PASSWORD_VARNAME = "PASSWORD";
|
||||||
|
|
||||||
public static final String PASSWORD;
|
|
||||||
public static final String PASSWORD_VARNAME = "PASSWORD";
|
|
||||||
|
|
||||||
public static final String CHANGED_ADMIN_PASSWORD;
|
public static final String CHANGED_ADMIN_PASSWORD;
|
||||||
public static final String CHANGED_ADMIN_PASSWORD_VARNAME = "CHANGED_ADMIN_PASSWORD";
|
protected static final String CHANGED_ADMIN_PASSWORD_VARNAME = "CHANGED_ADMIN_PASSWORD";
|
||||||
|
|
||||||
private static final String DEFAULT_CREATED_WRITER_USER_PASSWORD;
|
protected static final String DEFAULT_CREATED_WRITER_USER_PASSWORD;
|
||||||
private static final String DEFAULT_CREATED_WRITER_USER_PASSWORD_VARNAME = "DEFAULT_CREATED_WRITER_USER_PASSWORD";
|
protected static final String DEFAULT_CREATED_WRITER_USER_PASSWORD_VARNAME = "DEFAULT_CREATED_WRITER_USER_PASSWORD";
|
||||||
|
|
||||||
private static final String DEFAULT_CREATED_READER_USER_PASSWORD;
|
protected static final String DEFAULT_CREATED_READER_USER_PASSWORD;
|
||||||
private static final String DEFAULT_CREATED_READER_USER_PASSWORD_VARNAME = "DEFAULT_CREATED_READER_USER_PASSWORD";
|
protected static final String DEFAULT_CREATED_READER_USER_PASSWORD_VARNAME = "DEFAULT_CREATED_READER_USER_PASSWORD";
|
||||||
|
|
||||||
public static final String DEFAULT_ADMIN_USERNAME;
|
public static final String DEFAULT_ADMIN_USERNAME;
|
||||||
public static final String DEFAULT_ADMIN_USERNAME_VARNAME = "DEFAULT_ADMIN_USERNAME";
|
protected static final String DEFAULT_ADMIN_USERNAME_VARNAME = "DEFAULT_ADMIN_USERNAME";
|
||||||
|
|
||||||
public static final String DEFAULT_ADMIN_PASSWORD;
|
protected static final String DEFAULT_ADMIN_PASSWORD;
|
||||||
public static final String DEFAULT_ADMIN_PASSWORD_VARNAME = "DEFAULT_ADMIN_PASSWORD";
|
protected static final String DEFAULT_ADMIN_PASSWORD_VARNAME = "DEFAULT_ADMIN_PASSWORD";
|
||||||
|
|
||||||
public static final Map<PermissionMode, String> DEFAULT_PASSWORDS;
|
public static final Map<PermissionMode, String> DEFAULT_PASSWORDS;
|
||||||
|
|
||||||
|
|
||||||
|
protected static int currentHost;
|
||||||
|
|
||||||
|
public static final String[] HOSTS;
|
||||||
|
public static final String[] HTTP_URL_STRINGS;
|
||||||
|
public static final String[] URI_DBS;
|
||||||
|
|
||||||
|
|
||||||
|
public static String getDBURI(){
|
||||||
|
return URI_DBS[currentHost];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static String getHTTPURL(){
|
||||||
|
return HTTP_URL_STRINGS[currentHost];
|
||||||
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
InputStream input = null;
|
InputStream input = null;
|
||||||
|
|
||||||
|
currentHost = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
@ -80,16 +91,16 @@ public class DatabaseEnvironment {
|
||||||
// load a properties file
|
// load a properties file
|
||||||
properties.load(input);
|
properties.load(input);
|
||||||
|
|
||||||
HOST = properties.getProperty(HOST_VARNAME);
|
String hostsString = properties.getProperty(HOST_VARNAME);
|
||||||
|
HOSTS = hostsString.split(",");
|
||||||
|
|
||||||
REMOTE_PROTOCOL = properties.getProperty(REMOTE_PROTOCOL_VARNAME);
|
REMOTE_PROTOCOL = properties.getProperty(REMOTE_PROTOCOL_VARNAME);
|
||||||
REMOTE_URI = REMOTE_PROTOCOL + HOST;
|
|
||||||
|
|
||||||
HTTP_PROTOCOL = properties.getProperty(HTTP_PROTOCOL_VARNAME);
|
HTTP_PROTOCOL = properties.getProperty(HTTP_PROTOCOL_VARNAME);
|
||||||
HTTP_PORT = properties.getProperty(HTTP_PORT_VARNAME);
|
HTTP_PORT = properties.getProperty(HTTP_PORT_VARNAME);
|
||||||
HTTP_URL_STRING = HTTP_PROTOCOL + HOST + HTTP_PORT;
|
|
||||||
|
|
||||||
DB = properties.getProperty(DB_VARNAME);
|
DB = properties.getProperty(DB_VARNAME);
|
||||||
URI_DB = REMOTE_URI + "/" + DB;
|
|
||||||
|
|
||||||
USERNAME = properties.getProperty(USERNAME_VARNAME);
|
USERNAME = properties.getProperty(USERNAME_VARNAME);
|
||||||
PASSWORD = properties.getProperty(PASSWORD_VARNAME);
|
PASSWORD = properties.getProperty(PASSWORD_VARNAME);
|
||||||
|
@ -108,6 +119,17 @@ public class DatabaseEnvironment {
|
||||||
|
|
||||||
DEFAULT_PASSWORDS.put(PermissionMode.WRITER, DEFAULT_CREATED_WRITER_USER_PASSWORD);
|
DEFAULT_PASSWORDS.put(PermissionMode.WRITER, DEFAULT_CREATED_WRITER_USER_PASSWORD);
|
||||||
DEFAULT_PASSWORDS.put(PermissionMode.READER, DEFAULT_CREATED_READER_USER_PASSWORD);
|
DEFAULT_PASSWORDS.put(PermissionMode.READER, DEFAULT_CREATED_READER_USER_PASSWORD);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HTTP_URL_STRINGS = new String[HOSTS.length];
|
||||||
|
URI_DBS = new String[HOSTS.length];
|
||||||
|
|
||||||
|
for(int i=0; i<HOSTS.length; i++){
|
||||||
|
HTTP_URL_STRINGS[i] = HTTP_PROTOCOL + HOSTS[i] + HTTP_PORT;
|
||||||
|
URI_DBS[i] = REMOTE_PROTOCOL + HOSTS[i] + "/" + DB;
|
||||||
|
}
|
||||||
|
|
||||||
} catch(Exception e){
|
} catch(Exception e){
|
||||||
logger.error("Unable to load properties from {}", PROPERTY_FILENAME);
|
logger.error("Unable to load properties from {}", PROPERTY_FILENAME);
|
||||||
throw new RuntimeException("Unable to load properties", e);
|
throw new RuntimeException("Unable to load properties", e);
|
||||||
|
|
|
@ -37,19 +37,20 @@ public class DatabaseIntializator {
|
||||||
|
|
||||||
public static boolean initGraphDB() throws Exception {
|
public static boolean initGraphDB() throws Exception {
|
||||||
|
|
||||||
logger.trace("Connecting to {} as {} to create new DB", DatabaseEnvironment.URI_DB, DatabaseEnvironment.USERNAME);
|
logger.trace("Connecting to {} as {} to create new DB", DatabaseEnvironment.getDBURI(), DatabaseEnvironment.USERNAME);
|
||||||
OServerAdmin serverAdmin = new OServerAdmin(DatabaseEnvironment.URI_DB).connect(DatabaseEnvironment.USERNAME,
|
OServerAdmin serverAdmin = new OServerAdmin(DatabaseEnvironment.getDBURI()).connect(DatabaseEnvironment.USERNAME,
|
||||||
DatabaseEnvironment.PASSWORD);
|
DatabaseEnvironment.PASSWORD);
|
||||||
|
|
||||||
if (!serverAdmin.existsDatabase()) {
|
if (!serverAdmin.existsDatabase()) {
|
||||||
|
|
||||||
logger.trace("Creating Database {}", DatabaseEnvironment.URI_DB);
|
logger.trace("Creating Database {}", DatabaseEnvironment.getDBURI());
|
||||||
serverAdmin.createDatabase(DatabaseEnvironment.DB, DATABASE_TYPE, STORAGE_MODE);
|
serverAdmin.createDatabase(DatabaseEnvironment.DB, DATABASE_TYPE, STORAGE_MODE);
|
||||||
|
|
||||||
logger.trace(
|
logger.trace(
|
||||||
"Connecting to newly created database {} as {} with default password",
|
"Connecting to newly created database {} as {} with default password",
|
||||||
DatabaseEnvironment.URI_DB, DatabaseEnvironment.DEFAULT_ADMIN_USERNAME);
|
DatabaseEnvironment.getDBURI(), DatabaseEnvironment.DEFAULT_ADMIN_USERNAME);
|
||||||
OrientGraphFactory factory = new OrientGraphFactory(DatabaseEnvironment.URI_DB,
|
|
||||||
|
OrientGraphFactory factory = new OrientGraphFactory(DatabaseEnvironment.getDBURI(),
|
||||||
DatabaseEnvironment.DEFAULT_ADMIN_USERNAME, DatabaseEnvironment.DEFAULT_ADMIN_PASSWORD).setupPool(
|
DatabaseEnvironment.DEFAULT_ADMIN_USERNAME, DatabaseEnvironment.DEFAULT_ADMIN_PASSWORD).setupPool(
|
||||||
1, 10);
|
1, 10);
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class QueryImpl implements Query {
|
||||||
|
|
||||||
static {
|
static {
|
||||||
try {
|
try {
|
||||||
URL url = new URL(DatabaseEnvironment.HTTP_URL_STRING);
|
URL url = new URL(DatabaseEnvironment.getHTTPURL());
|
||||||
URL urlQuery = new URL(url, QUERY);
|
URL urlQuery = new URL(url, QUERY);
|
||||||
URL urlDB = new URL(urlQuery, DatabaseEnvironment.DB + "/");
|
URL urlDB = new URL(urlQuery, DatabaseEnvironment.DB + "/");
|
||||||
BASE_QUERY_URL = new URL(urlDB, SQL);
|
BASE_QUERY_URL = new URL(urlDB, SQL);
|
||||||
|
|
|
@ -9,12 +9,20 @@ import org.gcube.informationsystem.model.entity.Entity;
|
||||||
import org.gcube.informationsystem.model.relation.Relation;
|
import org.gcube.informationsystem.model.relation.Relation;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class ContextCreation {
|
public class ContextCreation {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void aux() throws Exception{
|
||||||
|
OrientGraphFactory factory = new OrientGraphFactory("remote:pc-frosini.isti.cnr.it", "admin", "admin").setupPool(1, 10);
|
||||||
|
factory.getTx();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() throws Exception{
|
public void test() throws Exception{
|
||||||
ERDiscovery.addPackage(Embedded.class.getPackage());
|
ERDiscovery.addPackage(Embedded.class.getPackage());
|
||||||
|
|
Loading…
Reference in New Issue