use of cbit.vcell.modeldb.AdminDBTopLevel in project vcell by virtualcell.
the class VcmlOmexConverter method parseArgsAndConvert.
public static void parseArgsAndConvert(String[] args) throws IOException {
File input = null;
try {
// TODO: handle if it's not valid PATH
input = new File(args[1]);
} catch (Exception e1) {
e1.printStackTrace();
}
args = parseArgs(args);
// if (bHasDataOnly) {
try {
conFactory = DatabaseService.getInstance().createConnectionFactory();
adminDbTopLevel = new AdminDBTopLevel(conFactory);
} catch (SQLException e) {
System.err.println("\n\n\n=====>>>>EXPORT FAILED: connection to database failed");
e.printStackTrace();
}
// }
VCInfoContainer vcic;
try {
vcic = adminDbTopLevel.getPublicOracleVCInfoContainer(false);
if (vcic != null) {
User user = vcic.getUser();
BioModelInfo[] bioModelInfos = vcic.getBioModelInfos();
// int count = 0;
for (BioModelInfo bi : bioModelInfos) {
// if(bi.getPublicationInfos() != null && bi.getPublicationInfos().length > 0) {
// // let's see what has PublicationInfo
// System.out.println(bi.getVersion().getName());
// count++;
// }
// build the biomodel id / biomodel info map
String biomodelId = "biomodel_" + bi.getVersion().getVersionKey();
String biomodelName = bi.getVersion().getName();
// String biomodelId2 = "biomodel_" + bi.getModelKey();
bioModelInfoMap.put(biomodelId, bi);
bioModelInfoMap2.put(biomodelName, bi);
}
// System.out.println("User: " + user.getName() + " count published biomodels: " + count);
}
} catch (SQLException | DataAccessException e1) {
System.err.println("\n\n\n=====>>>>EXPORT FAILED: failed to retrieve metadata");
e1.printStackTrace();
}
System.out.println("Found " + bioModelInfoMap.size() + " public BioNodelInfo objects");
if (input != null && input.isDirectory()) {
FilenameFilter filterVcmlFiles = (f, name) -> name.endsWith(".vcml");
// jusr a list of vcml names, like biomodel-185577495.vcml, ...
String[] inputFiles = input.list(filterVcmlFiles);
if (inputFiles == null) {
System.err.println("No VCML files found in the directory `" + input + "`");
}
// full directory name, like C:\TEMP\biomodel\omex\native
String outputDir = args[3];
CLIStandalone.writeSimErrorList(outputDir, "hasDataOnly is " + bHasDataOnly);
CLIStandalone.writeSimErrorList(outputDir, "makeLogsOnly is " + bMakeLogsOnly);
// assert inputFiles != null;
for (String inputFile : inputFiles) {
File file = new File(input, inputFile);
System.out.println(" ============== start: " + inputFile);
args[1] = file.toString();
cliHandler = new CLIHandler(args);
try {
if (inputFile.endsWith(".vcml")) {
boolean isCreated = vcmlToOmexConversion(outputDir);
if (isCreated) {
System.out.println("Combine archive created for file(s) `" + input + "`");
} else {
System.err.println("Failed converting VCML to OMEX archive for `" + input + "`");
}
} else {
System.err.println("No VCML files found in the directory `" + input + "`");
}
} catch (Exception e) {
// e.printStackTrace(System.err);
System.out.println("\n\n\n=====>>>>EXPORT FAILED: " + inputFile + "\n\n\n");
CLIStandalone.writeDetailedErrorList(outputDir, inputFile + ", " + e.getMessage());
// System.exit(1);
}
}
} else {
try {
assert input != null;
if (input.toString().endsWith(".vcml")) {
cliHandler = new CLIHandler(args);
boolean isCreated = vcmlToOmexConversion(null);
if (isCreated)
System.out.println("Combine archive created for `" + input + "`");
else
System.err.println("Failed converting VCML to OMEX archive for `" + input + "`");
} else
System.err.println("No input files found in the directory `" + input + "`");
} catch (Exception e) {
// e.printStackTrace();
System.out.println("\n\n\n=====>>>>EXPORT FAILED: " + input + "\n\n\n");
// System.exit(1);
}
}
}
use of cbit.vcell.modeldb.AdminDBTopLevel in project vcell by virtualcell.
the class SimulationDispatcher method main.
/**
* Starts the application.
* @param args an array of command-line arguments
*/
public static void main(java.lang.String[] args) {
OperatingSystemInfo.getInstance();
if (args.length != 3 && args.length != 0) {
System.out.println("Missing arguments: " + VCellServices.class.getName() + " [sshHost sshUser sshKeyFile] ");
System.exit(1);
}
try {
PropertyLoader.loadProperties(REQUIRED_SERVICE_PROPERTIES);
HtcProxy htcProxy = SlurmProxy.creatCommandService(args);
int serviceOrdinal = 99;
VCMongoMessage.serviceStartup(ServiceName.dispatch, new Integer(serviceOrdinal), args);
// //
// // JMX registration
// //
// MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
// mbs.registerMBean(new VCellServiceMXBeanImpl(), new ObjectName(VCellServiceMXBean.jmxObjectName));
ServiceInstanceStatus serviceInstanceStatus = new ServiceInstanceStatus(VCellServerID.getSystemServerID(), ServiceType.DISPATCH, serviceOrdinal, ManageUtils.getHostName(), new Date(), true);
ConnectionFactory conFactory = DatabaseService.getInstance().createConnectionFactory();
KeyFactory keyFactory = conFactory.getKeyFactory();
DatabaseServerImpl databaseServerImpl = new DatabaseServerImpl(conFactory, keyFactory);
AdminDBTopLevel adminDbTopLevel = new AdminDBTopLevel(conFactory);
SimulationDatabase simulationDatabase = new SimulationDatabaseDirect(adminDbTopLevel, databaseServerImpl, true);
VCMessagingService vcMessagingService_int = new VCMessagingServiceActiveMQ();
String jmshost_int = PropertyLoader.getRequiredProperty(PropertyLoader.jmsIntHostInternal);
int jmsport_int = Integer.parseInt(PropertyLoader.getRequiredProperty(PropertyLoader.jmsIntPortInternal));
vcMessagingService_int.setConfiguration(new ServerMessagingDelegate(), jmshost_int, jmsport_int);
VCMessagingService vcMessagingService_sim = new VCMessagingServiceActiveMQ();
String jmshost_sim = PropertyLoader.getRequiredProperty(PropertyLoader.jmsSimHostInternal);
int jmsport_sim = Integer.parseInt(PropertyLoader.getRequiredProperty(PropertyLoader.jmsSimPortInternal));
vcMessagingService_sim.setConfiguration(new ServerMessagingDelegate(), jmshost_sim, jmsport_sim);
SimulationDispatcher simulationDispatcher = new SimulationDispatcher(htcProxy, vcMessagingService_int, vcMessagingService_sim, serviceInstanceStatus, simulationDatabase, false);
simulationDispatcher.init();
} catch (Throwable e) {
lg.error("uncaught exception initializing SimulationDispatcher: " + e.getLocalizedMessage(), e);
System.exit(1);
}
}
use of cbit.vcell.modeldb.AdminDBTopLevel in project vcell by virtualcell.
the class VCellServices method main.
/**
* Starts the application.
* @param args an array of command-line arguments
*/
public static void main(java.lang.String[] args) {
OperatingSystemInfo.getInstance();
if (args.length != 3 && args.length != 0) {
System.out.println("Missing arguments: " + VCellServices.class.getName() + " [sshHost sshUser sshKeyFile] ");
System.exit(1);
}
try {
PropertyLoader.loadProperties(REQUIRED_SERVICE_PROPERTIES);
ResourceUtil.setNativeLibraryDirectory();
new LibraryLoaderThread(false).start();
PythonSupport.verifyInstallation(new PythonPackage[] { PythonPackage.VTK, PythonPackage.THRIFT });
HtcProxy htcProxy = SlurmProxy.creatCommandService(args);
int serviceOrdinal = 0;
VCMongoMessage.serviceStartup(ServiceName.dispatch, new Integer(serviceOrdinal), args);
// //
// // JMX registration
// //
// MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
// mbs.registerMBean(new VCellServiceMXBeanImpl(), new ObjectName(VCellServiceMXBean.jmxObjectName));
ServiceInstanceStatus serviceInstanceStatus = new ServiceInstanceStatus(VCellServerID.getSystemServerID(), ServiceType.MASTER, serviceOrdinal, ManageUtils.getHostName(), new Date(), true);
ConnectionFactory conFactory = DatabaseService.getInstance().createConnectionFactory();
KeyFactory keyFactory = conFactory.getKeyFactory();
DatabaseServerImpl databaseServerImpl = new DatabaseServerImpl(conFactory, keyFactory);
AdminDBTopLevel adminDbTopLevel = new AdminDBTopLevel(conFactory);
SimulationDatabase simulationDatabase = new SimulationDatabaseDirect(adminDbTopLevel, databaseServerImpl, true);
String cacheSize = PropertyLoader.getRequiredProperty(PropertyLoader.simdataCacheSizeProperty);
long maxMemSize = Long.parseLong(cacheSize);
Cachetable cacheTable = new Cachetable(MessageConstants.MINUTE_IN_MS * 20, maxMemSize);
DataSetControllerImpl dataSetControllerImpl = new DataSetControllerImpl(cacheTable, new File(PropertyLoader.getRequiredProperty(PropertyLoader.primarySimDataDirInternalProperty)), new File(PropertyLoader.getProperty(PropertyLoader.secondarySimDataDirInternalProperty, PropertyLoader.getRequiredProperty(PropertyLoader.primarySimDataDirInternalProperty))));
ExportServiceImpl exportServiceImpl = new ExportServiceImpl();
// add dataJobListener
DataServerImpl dataServerImpl = new DataServerImpl(dataSetControllerImpl, exportServiceImpl);
VCMessagingService vcMessagingService_int = new VCMessagingServiceActiveMQ();
String jmshost_int = PropertyLoader.getRequiredProperty(PropertyLoader.jmsIntHostInternal);
int jmsport_int = Integer.parseInt(PropertyLoader.getRequiredProperty(PropertyLoader.jmsIntPortInternal));
vcMessagingService_int.setConfiguration(new ServerMessagingDelegate(), jmshost_int, jmsport_int);
VCMessagingService vcMessagingService_sim = new VCMessagingServiceActiveMQ();
String jmshost_sim = PropertyLoader.getRequiredProperty(PropertyLoader.jmsSimHostInternal);
int jmsport_sim = Integer.parseInt(PropertyLoader.getRequiredProperty(PropertyLoader.jmsSimPortInternal));
vcMessagingService_sim.setConfiguration(new ServerMessagingDelegate(), jmshost_sim, jmsport_sim);
VCellServices vcellServices = new VCellServices(htcProxy, vcMessagingService_int, vcMessagingService_sim, serviceInstanceStatus, databaseServerImpl, dataServerImpl, simulationDatabase);
dataSetControllerImpl.addDataJobListener(vcellServices);
exportServiceImpl.addExportListener(vcellServices);
vcellServices.init();
} catch (Throwable e) {
e.printStackTrace(System.out);
}
}
use of cbit.vcell.modeldb.AdminDBTopLevel in project vcell by virtualcell.
the class ServerManageConsole method main.
/**
* main entrypoint - starts the part when it is run as an application
* @param args java.lang.String[]
*/
public static void main(java.lang.String[] args) {
try {
if (args.length == 2 && args[0].equals("-password")) {
ServerManageConsole.commandLineAdminPassword = args[1];
}
PropertyLoader.loadProperties();
javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
ConnectionFactory conFactory = DatabaseService.getInstance().createConnectionFactory();
KeyFactory keyFactory = conFactory.getKeyFactory();
DatabaseServerImpl databaseServerImpl = new DatabaseServerImpl(conFactory, keyFactory);
AdminDBTopLevel adminDbTopLevel = new AdminDBTopLevel(conFactory);
ServerManageConsole aServerManageConsole = new ServerManageConsole(adminDbTopLevel, databaseServerImpl);
aServerManageConsole.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
java.awt.Insets insets = aServerManageConsole.getInsets();
aServerManageConsole.setSize(aServerManageConsole.getWidth() + insets.left + insets.right, aServerManageConsole.getHeight() + insets.top + insets.bottom);
aServerManageConsole.setLocation(200, 200);
aServerManageConsole.setVisible(true);
} catch (Throwable exception) {
System.err.println("Exception occurred in main() of javax.swing.JFrame");
exception.printStackTrace(System.out);
}
}
use of cbit.vcell.modeldb.AdminDBTopLevel in project vcell by virtualcell.
the class VCellApiMain method main.
/**
* @param args
*/
public static void main(String[] args) {
try {
if (args.length != 2) {
System.out.println("usage: VCellApiMain javascriptDir port");
System.exit(1);
}
File javascriptDir = new File(args[0]);
if (!javascriptDir.isDirectory()) {
throw new RuntimeException("javascriptDir '" + args[0] + "' is not a directory");
}
// don't validate
PropertyLoader.loadProperties();
lg.debug("properties loaded");
String portString = args[1];
// was hard-coded at 8080
Integer port = null;
try {
port = Integer.parseInt(portString);
} catch (NumberFormatException e) {
e.printStackTrace();
throw new RuntimeException("failed to parse port argument '" + portString + "'", e);
}
lg.trace("connecting to database");
lg.trace("oracle factory (next)");
ConnectionFactory conFactory = DatabaseService.getInstance().createConnectionFactory();
KeyFactory keyFactory = conFactory.getKeyFactory();
lg.trace("database impl (next)");
DatabaseServerImpl databaseServerImpl = new DatabaseServerImpl(conFactory, keyFactory);
lg.trace("local db server (next)");
LocalAdminDbServer localAdminDbServer = new LocalAdminDbServer(conFactory, keyFactory);
lg.trace("admin db server (next)");
AdminDBTopLevel adminDbTopLevel = new AdminDBTopLevel(conFactory);
lg.trace("messaging service (next)");
VCMessagingService vcMessagingService_int = VCellServiceHelper.getInstance().loadService(VCMessagingService.class);
VCMessagingDelegate delegate = new VCMessagingDelegate() {
@Override
public void onTraceEvent(String string) {
if (lg.isTraceEnabled())
lg.trace("onTraceEvent(): " + string);
}
@Override
public void onRpcRequestSent(VCRpcRequest vcRpcRequest, UserLoginInfo userLoginInfo, VCMessage vcRpcRequestMessage) {
if (lg.isTraceEnabled())
lg.trace("onRpcRequestSent(): " + vcRpcRequest.getMethodName());
}
@Override
public void onRpcRequestProcessed(VCRpcRequest vcRpcRequest, VCMessage rpcVCMessage) {
if (lg.isTraceEnabled())
lg.trace("onRpcRequestProcessed(): " + vcRpcRequest.getMethodName());
}
@Override
public void onMessageSent(VCMessage message, VCDestination desintation) {
if (lg.isTraceEnabled())
lg.trace("onMessageSent(): " + message);
}
@Override
public void onMessageReceived(VCMessage vcMessage, VCDestination vcDestination) {
if (lg.isTraceEnabled())
lg.trace("onMessageReceived(): " + vcMessage);
}
@Override
public void onException(Exception e) {
lg.error(e.getMessage(), e);
}
};
String jmshost_int = PropertyLoader.getRequiredProperty(PropertyLoader.jmsIntHostInternal);
int jmsport_int = Integer.parseInt(PropertyLoader.getRequiredProperty(PropertyLoader.jmsIntPortInternal));
vcMessagingService_int.setConfiguration(delegate, jmshost_int, jmsport_int);
lg.trace("rest database service (next)");
RestDatabaseService restDatabaseService = new RestDatabaseService(databaseServerImpl, localAdminDbServer, vcMessagingService_int);
lg.trace("rest event service (next)");
RestEventService restEventService = new RestEventService(vcMessagingService_int);
lg.trace("use verifier (next)");
UserVerifier userVerifier = new UserVerifier(adminDbTopLevel);
lg.trace("mongo (next)");
VCMongoMessage.enabled = true;
VCMongoMessage.serviceStartup(ServiceName.unknown, port, args);
System.out.println("setting up server configuration");
lg.trace("register engine (next)");
Engine.register(true);
WadlComponent component = new WadlComponent();
// Server httpServer = component.getServers().add(Protocol.HTTP, 80);
// Server httpsServer = component.getServers().add(Protocol.HTTPS, 443);
// Client httpsClient = component.getClients().add(Protocol.HTTPS);
// Client httpClient = component.getClients().add(Protocol.HTTP);
lg.trace("adding FILE protcol");
@SuppressWarnings("unused") Client httpClient = component.getClients().add(Protocol.FILE);
lg.trace("adding CLAP protcol");
@SuppressWarnings("unused") Client clapClient = component.getClients().add(Protocol.CLAP);
lg.trace("adding CLAP https");
File keystorePath = new File(PropertyLoader.getRequiredProperty(PropertyLoader.vcellapiKeystoreFile));
String keystorePassword = PropertyLoader.getSecretValue(PropertyLoader.vcellapiKeystorePswd, PropertyLoader.vcellapiKeystorePswdFile);
try {
//
// keystorePassword may be encrypted with dbPassword, if it is decypt it.
//
String dbPassword = PropertyLoader.getSecretValue(PropertyLoader.dbPasswordValue, PropertyLoader.dbPasswordFile);
SecretKeyFactory kf = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key = kf.generateSecret(new PBEKeySpec(dbPassword.toCharArray()));
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
pbeCipher.init(Cipher.DECRYPT_MODE, key, new PBEParameterSpec(new byte[] { 32, 11, 55, 121, 01, 42, 89, 11 }, 20));
keystorePassword = new String(pbeCipher.doFinal(DatatypeConverter.parseBase64Binary(keystorePassword)));
} catch (Exception e) {
System.out.println("password unhashing didn't work - trying clear text password");
e.printStackTrace();
}
Server httpsServer = component.getServers().add(Protocol.HTTPS, port);
Series<Parameter> parameters = httpsServer.getContext().getParameters();
parameters.add("keystorePath", keystorePath.toString());
parameters.add("keystorePassword", keystorePassword);
parameters.add("keystoreType", "JKS");
parameters.add("keyPassword", keystorePassword);
parameters.add("disabledCipherSuites", "SSL_RSA_WITH_3DES_EDE_CBC_SHA " + "SSL_DHE_RSA_WITH_DES_CBC_SHA " + "SSL_DHE_DSS_WITH_DES_CBC_SHA");
parameters.add("enabledCipherSuites", "TLS_DHE_DSS_WITH_AES_128_CBC_SHA " + "TLS_DHE_RSA_WITH_AES_128_CBC_SHA " + "TLS_RSA_WITH_AES_128_CBC_SHA " + "TLS_DHE_DSS_WITH_AES_256_CBC_SHA " + "TLS_DHE_RSA_WITH_AES_256_CBC_SHA " + "TLS_RSA_WITH_AES_256_CBC_SHA");
lg.trace("create config");
Configuration templateConfiguration = new Configuration();
templateConfiguration.setObjectWrapper(new DefaultObjectWrapper());
// lg.trace("verify python installation");
// PythonSupport.verifyInstallation(new PythonPackage[] { PythonPackage.COPASI, PythonPackage.LIBSBML, PythonPackage.THRIFT });
//
// lg.trace("start Optimization Service");
lg.trace("create app");
boolean bIgnoreHostProblems = true;
boolean bIgnoreCertProblems = true;
User testUser = localAdminDbServer.getUser(TEST_USER);
// lookup hashed auth credentials in database.
UserInfo testUserInfo = localAdminDbServer.getUserInfo(testUser.getID());
HealthService healthService = new HealthService(restEventService, "localhost", port, bIgnoreCertProblems, bIgnoreHostProblems, testUserInfo.userid, testUserInfo.digestedPassword0);
AdminService adminService = new AdminService(adminDbTopLevel, databaseServerImpl);
RpcService rpcService = new RpcService(vcMessagingService_int);
WadlApplication app = new VCellApiApplication(restDatabaseService, userVerifier, rpcService, restEventService, adminService, templateConfiguration, healthService, javascriptDir);
lg.trace("attach app");
component.getDefaultHost().attach(app);
System.out.println("component start()");
lg.trace("start component");
component.start();
System.out.println("component ended.");
lg.trace("component started");
lg.trace("start VCell Health Monitoring service");
healthService.start();
} catch (Exception e) {
lg.error(e.getMessage(), e);
}
}
Aggregations