@Override public PersistenceUnitCommon setupConnection(PersistenceUnitCommon unit, JPADataSource dataSource) { unit.transactionType("JTA"); if (dataSource.getDatabase() == null) { dataSource.setDatabase(DatabaseType.H2); } return unit; }
public void validate() throws Exception { getContainer().validate(this); getProvider().validate(this); } }
@Override public void validate(JPADataSource dataSource) throws Exception { if (isNotEmbeddedDB(dataSource.getDatabase()) && Strings.isNullOrEmpty(dataSource.getDatabaseURL())) { throw new RuntimeException("Must specify database URL for JDBC connections."); } }
private JPADataSource applyUIValues(final UIContext context) { Map<Object, Object> attributeMap = context.getAttributeMap(); final Project project = helper.getProject(context); helper.installJPAFacet(project); final SpringBootPersistenceContainer container = new SpringBootPersistenceContainer(); attributeMap.put(PersistenceContainer.class, container); final PersistenceProvider provider = jpaProvider.getValue(); attributeMap.put(PersistenceProvider.class, provider); final DatabaseType database = dbType.getValue(); attributeMap.put(DatabaseType.class, database); final JPADataSource dataSource = new JPADataSource(); dataSource.setDatabase(database); dataSource.setContainer(container); dataSource.setProvider(provider); dataSource.setJndiDataSource(dataSourceName.getValue()); dataSource.setDatabaseURL(databaseURL.getValue()); attributeMap.put(JPADataSource.class, dataSource); return dataSource; }
public boolean hasNonDefaultDatabase() { return !DatabaseType.DEFAULT.equals(getDatabase()); }
@Override protected void setProperties(Properties properties, JPADataSource dataSource) { properties.put(SpringBootJPAFacet.SPRING_DATASOURCE_PROPERTIES_PREFIX + "jndi-name", dataSource.getJndiDataSource()); } }
@Override protected void setProperties(Properties properties, JPADataSource dataSource) { properties.put(SpringBootJPAFacet.SPRING_DATASOURCE_PROPERTIES_PREFIX + "url", dataSource.getDatabaseURL()); properties.put(SpringBootJPAFacet.SPRING_DATASOURCE_PROPERTIES_PREFIX + "username", username.getValue()); properties.put(SpringBootJPAFacet.SPRING_DATASOURCE_PROPERTIES_PREFIX + "password", password.getValue()); } }
@Override public Result execute(UIExecutionContext context) throws Exception { final UIContext uiContext = context.getUIContext(); final Project project = helper.getProject(uiContext); final Map<Object, Object> attributeMap = uiContext.getAttributeMap(); final JPADataSource dataSource = (JPADataSource) attributeMap.get(JPADataSource.class); persistenceOperations.setup(SpringBootJPAFacet.PERSISTENCE_UNIT_NAME, project, dataSource, false); // if we're using H2, Derby or HSQL embedded databases, we need to remove any previously set data // source properties if (!SpringBootPersistenceContainer.isNotEmbeddedDB(dataSource.getDatabase())) { SpringBootHelper.removeSpringDataPropertiesFromApplication(project); } return null; } }