Skip to content

Commit

Permalink
Correct MongoDB + Cloud Foundry setup
Browse files Browse the repository at this point in the history
Fix #4363
  • Loading branch information
jdubois committed Oct 21, 2016
1 parent 8d0fa58 commit b1680a8
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 95 deletions.
4 changes: 3 additions & 1 deletion generators/cleanup.js
Expand Up @@ -32,5 +32,7 @@ function cleanupOldServerFiles(generator, javaDir, testDir) {
if (generator.isJhipsterVersionLessThan('3.8.1')) {
generator.removeFile(javaDir + 'config/JacksonConfiguration.java');
}

if (generator.isJhipsterVersionLessThan('3.10.0')) {
generator.removeFile(javaDir + 'config/CloudMongoDbConfiguration.java');
}
}
3 changes: 1 addition & 2 deletions generators/server/files.js
Expand Up @@ -337,10 +337,9 @@ function writeFiles() {
this.template(SERVER_MAIN_SRC_DIR + 'package/config/_LoggingConfiguration.java', javaDir + 'config/LoggingConfiguration.java', this, {});

if (this.databaseType === 'mongodb') {
this.template(SERVER_MAIN_SRC_DIR + 'package/config/_CloudMongoDbConfiguration.java', javaDir + 'config/CloudMongoDbConfiguration.java', this, {});
this.template(SERVER_MAIN_SRC_DIR + 'package/domain/util/_JSR310DateConverters.java', javaDir + 'domain/util/JSR310DateConverters.java', this, {});
}
if (this.databaseType === 'sql' || this.databaseType === 'mongodb') {
if (this.databaseType === 'sql'|| this.databaseType === 'mongodb') {
this.template(SERVER_MAIN_SRC_DIR + 'package/config/_CloudDatabaseConfiguration.java', javaDir + 'config/CloudDatabaseConfiguration.java', this, {});
this.template(SERVER_MAIN_SRC_DIR + 'package/config/_DatabaseConfiguration.java', javaDir + 'config/DatabaseConfiguration.java', this, {});
this.template(SERVER_MAIN_SRC_DIR + 'package/config/audit/_package-info.java', javaDir + 'config/audit/package-info.java', this, {});
Expand Down
@@ -1,29 +1,95 @@
package <%=packageName%>.config;
<%_ if (databaseType == 'mongodb') { _%>

import <%=packageName%>.domain.util.JSR310DateConverters.*;

import com.github.mongobee.Mongobee;
<%_ } _%>
<%_ if (authenticationType == 'oauth2') { _%>

import <%=packageName%>.config.oauth2.OAuth2AuthenticationReadConverter;
<%_ } _%>

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;<% if (hibernateCache == 'hazelcast') { %>
import org.springframework.cache.CacheManager;<% } %>
import org.springframework.cloud.config.java.AbstractCloudConfig;
import org.springframework.context.annotation.*;<% if (databaseType == 'mongodb') { %>
import org.springframework.data.mongodb.MongoDbFactory;<% } %>
<% if (databaseType == 'sql') { %>
import javax.sql.DataSource;<% } %>
import org.springframework.context.annotation.*;
<%_ if (databaseType == 'mongodb') { _%>
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.convert.CustomConversions;
import org.springframework.data.mongodb.core.mapping.event.ValidatingMongoEventListener;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
<%_ } _%>
<%_ if (databaseType == 'sql') { _%>

import javax.sql.DataSource;
<%_ } _%>
<%_ if (databaseType == 'mongodb') { _%>

import java.util.ArrayList;
import java.util.List;
<%_ } _%>

@Configuration
<%_ if (databaseType == 'mongodb') { _%>
@EnableMongoRepositories("<%=packageName%>.repository")
<%_ } _%>
@Profile(Constants.SPRING_PROFILE_CLOUD)
public class CloudDatabaseConfiguration extends AbstractCloudConfig {

private final Logger log = LoggerFactory.getLogger(CloudDatabaseConfiguration.class);<% if (databaseType == 'sql') { %>
private final Logger log = LoggerFactory.getLogger(CloudDatabaseConfiguration.class);
<%_ if (databaseType == 'sql') { _%>

@Bean
public DataSource dataSource(<% if (hibernateCache == 'hazelcast') { %>CacheManager cacheManager<% } %>) {
log.info("Configuring JDBC datasource from a cloud provider");
return connectionFactory().dataSource();
}<% } %><% if (databaseType == 'mongodb') { %>
}
<%_ } _%>
<%_ if (databaseType == 'mongodb') { _%>

@Bean
public MongoDbFactory mongoDbFactory() {
log.info("Configuring MongoDB datasource from a cloud provider");
public MongoDbFactory mongoFactory() {
return connectionFactory().mongoDbFactory();
}<% } %>
}

@Bean
public LocalValidatorFactoryBean validator() {
return new LocalValidatorFactoryBean();
}

@Bean
public ValidatingMongoEventListener validatingMongoEventListener() {
return new ValidatingMongoEventListener(validator());
}

@Bean
public CustomConversions customConversions() {
List<Converter<?, ?>> converterList = new ArrayList<>();
<%_ if (authenticationType == 'oauth2') { _%>
converterList.add(new OAuth2AuthenticationReadConverter());
<%_ } _%>
converterList.add(DateToZonedDateTimeConverter.INSTANCE);
converterList.add(ZonedDateTimeToDateConverter.INSTANCE);
converterList.add(DateToLocalDateConverter.INSTANCE);
converterList.add(LocalDateToDateConverter.INSTANCE);
converterList.add(DateToLocalDateTimeConverter.INSTANCE);
converterList.add(LocalDateTimeToDateConverter.INSTANCE);
return new CustomConversions(converterList);
}

@Bean
public Mongobee mongobee(MongoDbFactory mongoDbFactory) throws Exception {
log.debug("Configuring Mongobee");
Mongobee mongobee = new Mongobee(mongoDbFactory.getDb().getMongo());
mongobee.setDbName(mongoDbFactory.getDb().getName());
// package to scan for migrations
mongobee.setChangeLogsScanPackage("<%=packageName%>.config.dbmigrations");
mongobee.setEnabled(true);
return mongobee;
}
<%_ } _%>
}

This file was deleted.

@@ -1,13 +1,21 @@
package <%=packageName%>.config;
<% if (databaseType == 'sql') { %>
<%_ if (databaseType == 'sql') { _%>

import <%=packageName%>.config.liquibase.AsyncSpringLiquibase;

import com.fasterxml.jackson.datatype.hibernate4.Hibernate4Module;
import liquibase.integration.spring.SpringLiquibase;<% } %><% if (databaseType == 'mongodb' && authenticationType == 'oauth2') { %>
import <%=packageName%>.config.oauth2.OAuth2AuthenticationReadConverter;<% } %><% if (databaseType == 'mongodb') { %>
import liquibase.integration.spring.SpringLiquibase;
<%_ } _%>
<%_ if (databaseType == 'mongodb' && authenticationType == 'oauth2') { _%>

import <%=packageName%>.config.oauth2.OAuth2AuthenticationReadConverter;
<%_ } _%>
<%_ if (databaseType == 'mongodb') { _%>

import <%=packageName%>.domain.util.JSR310DateConverters.*;
import com.mongodb.Mongo;
import com.github.mongobee.Mongobee;<% } %>
import com.github.mongobee.Mongobee;
<%_ } _%>
<%_ if (devDatabaseType == 'h2Disk' || devDatabaseType == 'h2Memory') { _%>
import org.h2.tools.Server;
<%_ } _%>
Expand All @@ -21,7 +29,6 @@
import org.springframework.context.annotation.Profile;<% if (databaseType == 'mongodb') { %>
import org.springframework.context.annotation.Import;<% } %><% if (databaseType == 'sql') { %>
import org.springframework.core.env.Environment;<% } %><% if (databaseType == 'mongodb') { %>
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.convert.converter.Converter;<% } %><% if (searchEngine == 'elasticsearch') { %>
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;<% } %><% if (databaseType == 'mongodb') { %>
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
Expand Down

0 comments on commit b1680a8

Please sign in to comment.