protected static TemplateDescriptor getDriverTemplateDescriptor(IServerType serverType) { if (usesH2(serverType)) { return TemplateDescriptor.getDriverTemplateDescriptor(H2_DRIVER_TEMPLATE_ID); } else { return TemplateDescriptor.getDriverTemplateDescriptor(HSQL_DRIVER_TEMPLATE_ID); } }
private void createDriver2(String jbossASLocation, IServerType serverType) throws ConnectionProfileException { if (ProfileManager.getInstance().getProfileByName(DEFAULT_DS) != null) { // Don't create the driver a few times return; } String driverPath; try { driverPath = getDriverPath(jbossASLocation, serverType); } catch (IOException e) { ServerRuntimesIntegrationActivator.getDefault() .getLog() .log( new Status( IStatus.ERROR, ServerRuntimesIntegrationActivator.PLUGIN_ID, Messages.JBossRuntimeStartup_Cannott_create_new_HSQL_DB_Driver, e)); return; } if (driverPath == null) { ServerRuntimesIntegrationActivator.getDefault() .getLog() .log( new Status( IStatus.ERROR, ServerRuntimesIntegrationActivator.PLUGIN_ID, Messages.JBossRuntimeStartup_Cannot_create_new_DB_Driver)); } DriverInstance driver = getDriver(serverType); if (driver == null) { TemplateDescriptor descr = getDriverTemplateDescriptor(serverType); IPropertySet instance = new PropertySetImpl(getDriverName(serverType), getDriverDefinitionId(serverType)); instance.setName(getDriverName(serverType)); instance.setID(getDriverDefinitionId(serverType)); Properties props = new Properties(); IConfigurationElement[] template = descr.getProperties(); for (int i = 0; i < template.length; i++) { IConfigurationElement prop = template[i]; String id = prop.getAttribute("id"); // $NON-NLS-1$ String value = prop.getAttribute("value"); // $NON-NLS-1$ props.setProperty(id, value == null ? "" : value); // $NON-NLS-1$ } props.setProperty(DTP_DB_URL_PROPERTY_ID, getDriverUrl(serverType)); props.setProperty(IDriverMgmtConstants.PROP_DEFN_TYPE, descr.getId()); props.setProperty(IDriverMgmtConstants.PROP_DEFN_JARLIST, driverPath); if (usesH2(serverType)) { props.setProperty( IDBDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, "org.h2.Driver"); // $NON-NLS-1$ props.setProperty( IDBDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, "H2 driver"); // $NON-NLS-1$ props.setProperty(IDBDriverDefinitionConstants.URL_PROP_ID, "jdbc:h2:mem"); // $NON-NLS-1$ props.setProperty(IDBDriverDefinitionConstants.USERNAME_PROP_ID, "sa"); // $NON-NLS-1$ } instance.setBaseProperties(props); DriverManager.getInstance().removeDriverInstance(instance.getID()); System.gc(); DriverManager.getInstance().addDriverInstance(instance); } driver = DriverManager.getInstance().getDriverInstanceByName(getDriverName(serverType)); if (driver != null && ProfileManager.getInstance().getProfileByName(DEFAULT_DS) == null) { // create profile Properties props = new Properties(); props.setProperty( ConnectionProfileConstants.PROP_DRIVER_DEFINITION_ID, getDriverDefinitionId(serverType)); props.setProperty( IDBConnectionProfileConstants.CONNECTION_PROPERTIES_PROP_ID, ""); // $NON-NLS-1$ props.setProperty( IDBDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, driver.getProperty(IDBDriverDefinitionConstants.DRIVER_CLASS_PROP_ID)); props.setProperty( IDBDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, driver.getProperty(IDBDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID)); props.setProperty( IDBDriverDefinitionConstants.DATABASE_VERSION_PROP_ID, driver.getProperty(IDBDriverDefinitionConstants.DATABASE_VERSION_PROP_ID)); props.setProperty( IDBDriverDefinitionConstants.DATABASE_NAME_PROP_ID, "Default"); // $NON-NLS-1$ props.setProperty(IDBDriverDefinitionConstants.PASSWORD_PROP_ID, ""); // $NON-NLS-1$ props.setProperty( IDBConnectionProfileConstants.SAVE_PASSWORD_PROP_ID, "false"); // $NON-NLS-1$ props.setProperty( IDBDriverDefinitionConstants.USERNAME_PROP_ID, driver.getProperty(IDBDriverDefinitionConstants.USERNAME_PROP_ID)); props.setProperty( IDBDriverDefinitionConstants.URL_PROP_ID, driver.getProperty(IDBDriverDefinitionConstants.URL_PROP_ID)); if (usesH2(serverType)) { ProfileManager.getInstance() .createProfile( DEFAULT_DS, Messages.JBossRuntimeStartup_The_JBoss_AS_H2_embedded_database, H2_PROFILE_ID, props, "", false); //$NON-NLS-1$ } else { ProfileManager.getInstance() .createProfile( DEFAULT_DS, Messages.JBossRuntimeStartup_The_JBoss_AS_Hypersonic_embedded_database, HSQL_PROFILE_ID, props, "", false); //$NON-NLS-1$ } } }