1 package org.simantics.db.procore.internal;
3 import java.io.IOException;
4 import java.util.Properties;
6 import org.simantics.db.DatabaseUserAgent;
7 import org.simantics.db.Driver;
8 import org.simantics.db.ReadGraph;
9 import org.simantics.db.ServerI;
10 import org.simantics.db.Session;
11 import org.simantics.db.authentication.UserAuthenticationAgent;
12 import org.simantics.db.authentication.UserAuthenticator;
13 import org.simantics.db.common.auth.UserAuthenticationAgents;
14 import org.simantics.db.common.request.ReadRequest;
15 import org.simantics.db.exception.DatabaseException;
16 import org.simantics.db.procore.ProCoreDriver;
17 import org.simantics.layer0.Layer0;
19 import fi.vtt.simantics.procore.BackdoorAuthenticator;
20 import fi.vtt.simantics.procore.SessionManagerSource;
21 import fi.vtt.simantics.procore.internal.SessionImplVirtual;
22 import fi.vtt.simantics.procore.internal.SessionImplVirtualInit;
24 public class ProCoreDriverVirtual implements Driver {
25 private static final Boolean DEBUG = true;
26 private final UserAuthenticator authenticator = new BackdoorAuthenticator();
27 private final UserAuthenticationAgent agent = UserAuthenticationAgents.staticAgent(authenticator);
29 public ProCoreDriverVirtual() {
33 private void initLogging() {
35 SessionManagerSource.getSessionManager();
36 } catch (IOException e) {
43 public Session getSession(String address, Properties args) throws DatabaseException {
44 Session s = new SessionImplVirtual(agent);
45 if (args.containsKey("builtinInitializer"))
46 return new SessionImplVirtualInit(agent);
47 else if (args.containsKey("noinitialise")) {
49 System.out.println("noinitialise");
51 s.syncRequest(new ReadRequest() {
53 public void run(ReadGraph g) {
54 // Registers Builtins with the session ServiceLocator.
55 Layer0.getInstance(g);
63 public ServerI getServer(String address, Properties info) throws DatabaseException {
64 return SessionImplVirtual.newVirtualProCoreServer();
68 public String getName() {
69 return ProCoreDriver.ProCoreDriverNameVirtual;
72 public DatabaseUserAgent getDatabaseUserAgent(String address) {
76 public void setDatabaseUserAgent(String address, DatabaseUserAgent dbUserAgent) {
79 public Management getManagement(String address, Properties info) throws DatabaseException {
80 return null; // No management for virtual database.