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:
Luca Frosini 2016-10-13 15:53:22 +00:00
parent bf0148db37
commit 6662e7b6ef
5 changed files with 73 additions and 42 deletions

View File

@ -31,13 +31,13 @@ public abstract class SecurityContextMapper {
boolean created = DatabaseIntializator.initGraphDB();
logger.trace("Creating factory for {} connecting as {}",
DatabaseEnvironment.URI_DB,
DatabaseEnvironment.getDBURI(),
DatabaseEnvironment.DEFAULT_ADMIN_USERNAME);
securityContextFactories = new HashMap<>();
OrientGraphFactory factory = new OrientGraphFactory(
DatabaseEnvironment.URI_DB,
DatabaseEnvironment.getDBURI(),
DatabaseEnvironment.DEFAULT_ADMIN_USERNAME,
DatabaseEnvironment.CHANGED_ADMIN_PASSWORD)
.setupPool(1, 10);
@ -113,7 +113,7 @@ public abstract class SecurityContextMapper {
SecurityType.USER, contextID);
String password = DatabaseEnvironment.DEFAULT_PASSWORDS.get(permissionMode);
factory = new OrientGraphFactory(DatabaseEnvironment.URI_DB,
factory = new OrientGraphFactory(DatabaseEnvironment.getDBURI(),
username, password).setupPool(1, 10);
permissionSecurityContextFactories.put(contextID, factory);

View File

@ -22,56 +22,67 @@ public class DatabaseEnvironment {
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;
public static final String HOST_VARNAME = "HOST";
protected static final String HOST_VARNAME = "HOST";
public static final String REMOTE_PROTOCOL;
public static final String REMOTE_PROTOCOL_VARNAME = "REMOTE_PROTOCOL";
protected static final String 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;
public static final String HTTP_PROTOCOL_VARNAME = "HTTP_PROTOCOL";
public static final String HTTP_PORT;
public static final String HTTP_PORT_VARNAME = "HTTP_PORT";
public static final String HTTP_URL_STRING;
protected static final String HTTP_PORT;
protected static final String HTTP_PORT_VARNAME = "HTTP_PORT";
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;
public static final String USERNAME_VARNAME = "USERNAME";
public static final String PASSWORD;
public static final String PASSWORD_VARNAME = "PASSWORD";
protected static final String PASSWORD;
protected static final String PASSWORD_VARNAME = "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;
private static final String DEFAULT_CREATED_WRITER_USER_PASSWORD_VARNAME = "DEFAULT_CREATED_WRITER_USER_PASSWORD";
protected static final String 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;
private static final String DEFAULT_CREATED_READER_USER_PASSWORD_VARNAME = "DEFAULT_CREATED_READER_USER_PASSWORD";
protected static final String 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_VARNAME = "DEFAULT_ADMIN_USERNAME";
protected static final String DEFAULT_ADMIN_USERNAME_VARNAME = "DEFAULT_ADMIN_USERNAME";
public static final String DEFAULT_ADMIN_PASSWORD;
public static final String DEFAULT_ADMIN_PASSWORD_VARNAME = "DEFAULT_ADMIN_PASSWORD";
protected static final String DEFAULT_ADMIN_PASSWORD;
protected static final String DEFAULT_ADMIN_PASSWORD_VARNAME = "DEFAULT_ADMIN_PASSWORD";
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 {
Properties properties = new Properties();
InputStream input = null;
currentHost = 0;
try {
@ -80,16 +91,16 @@ public class DatabaseEnvironment {
// load a properties file
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_URI = REMOTE_PROTOCOL + HOST;
HTTP_PROTOCOL = properties.getProperty(HTTP_PROTOCOL_VARNAME);
HTTP_PORT = properties.getProperty(HTTP_PORT_VARNAME);
HTTP_URL_STRING = HTTP_PROTOCOL + HOST + HTTP_PORT;
DB = properties.getProperty(DB_VARNAME);
URI_DB = REMOTE_URI + "/" + DB;
USERNAME = properties.getProperty(USERNAME_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.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){
logger.error("Unable to load properties from {}", PROPERTY_FILENAME);
throw new RuntimeException("Unable to load properties", e);

View File

@ -37,19 +37,20 @@ public class DatabaseIntializator {
public static boolean initGraphDB() throws Exception {
logger.trace("Connecting to {} as {} to create new DB", DatabaseEnvironment.URI_DB, DatabaseEnvironment.USERNAME);
OServerAdmin serverAdmin = new OServerAdmin(DatabaseEnvironment.URI_DB).connect(DatabaseEnvironment.USERNAME,
logger.trace("Connecting to {} as {} to create new DB", DatabaseEnvironment.getDBURI(), DatabaseEnvironment.USERNAME);
OServerAdmin serverAdmin = new OServerAdmin(DatabaseEnvironment.getDBURI()).connect(DatabaseEnvironment.USERNAME,
DatabaseEnvironment.PASSWORD);
if (!serverAdmin.existsDatabase()) {
logger.trace("Creating Database {}", DatabaseEnvironment.URI_DB);
logger.trace("Creating Database {}", DatabaseEnvironment.getDBURI());
serverAdmin.createDatabase(DatabaseEnvironment.DB, DATABASE_TYPE, STORAGE_MODE);
logger.trace(
"Connecting to newly created database {} as {} with default password",
DatabaseEnvironment.URI_DB, DatabaseEnvironment.DEFAULT_ADMIN_USERNAME);
OrientGraphFactory factory = new OrientGraphFactory(DatabaseEnvironment.URI_DB,
DatabaseEnvironment.getDBURI(), DatabaseEnvironment.DEFAULT_ADMIN_USERNAME);
OrientGraphFactory factory = new OrientGraphFactory(DatabaseEnvironment.getDBURI(),
DatabaseEnvironment.DEFAULT_ADMIN_USERNAME, DatabaseEnvironment.DEFAULT_ADMIN_PASSWORD).setupPool(
1, 10);

View File

@ -38,7 +38,7 @@ public class QueryImpl implements Query {
static {
try {
URL url = new URL(DatabaseEnvironment.HTTP_URL_STRING);
URL url = new URL(DatabaseEnvironment.getHTTPURL());
URL urlQuery = new URL(url, QUERY);
URL urlDB = new URL(urlQuery, DatabaseEnvironment.DB + "/");
BASE_QUERY_URL = new URL(urlDB, SQL);

View File

@ -9,12 +9,20 @@ import org.gcube.informationsystem.model.entity.Entity;
import org.gcube.informationsystem.model.relation.Relation;
import org.junit.Test;
import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*
*/
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
public void test() throws Exception{
ERDiscovery.addPackage(Embedded.class.getPackage());