Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,17 @@
*/
package org.seedstack.mongodb.morphia.internal;

import com.google.common.collect.Lists;
import com.google.inject.AbstractModule;
import io.nuun.kernel.api.Plugin;
import io.nuun.kernel.api.plugin.InitState;
import io.nuun.kernel.api.plugin.PluginException;
import io.nuun.kernel.api.plugin.context.InitContext;
import io.nuun.kernel.core.AbstractPlugin;
import org.apache.commons.configuration.Configuration;
import org.seedstack.seed.Application;
import org.seedstack.seed.SeedException;
import org.seedstack.seed.core.internal.application.ApplicationPlugin;
import org.seedstack.seed.core.spi.configuration.ConfigurationProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
Expand Down Expand Up @@ -49,19 +46,8 @@ public String name() {
@Override
@SuppressWarnings("unchecked")
public InitState init(InitContext initContext) {
Application application = null;
Configuration mongoConfiguration = null;

for (Plugin plugin : initContext.pluginsRequired()) {
if (plugin instanceof ApplicationPlugin) {
application = ((ApplicationPlugin) plugin).getApplication();
mongoConfiguration = application.getConfiguration().subset(MongoDbPlugin.CONFIGURATION_PREFIX);
}
}

if (application == null) {
throw new PluginException("Unable to find application plugin");
}
Configuration mongoConfiguration = initContext.dependency(ConfigurationProvider.class)
.getConfiguration().subset(MongoDbPlugin.CONFIGURATION_PREFIX);

String[] clientNames = mongoConfiguration.getStringArray("clients");
Set<String> allDbNames = new HashSet<String>();
Expand Down Expand Up @@ -121,10 +107,8 @@ public void stop() {
}

@Override
public Collection<Class<? extends Plugin>> requiredPlugins() {
Collection<Class<? extends Plugin>> plugins = new ArrayList<Class<? extends Plugin>>();
plugins.add(ApplicationPlugin.class);
return plugins;
public Collection<Class<?>> requiredPlugins() {
return Lists.<Class<?>>newArrayList(ConfigurationProvider.class);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@
*/
package org.seedstack.mongodb.morphia.internal;

import io.nuun.kernel.api.Plugin;
import com.google.common.collect.Lists;
import io.nuun.kernel.api.plugin.InitState;
import io.nuun.kernel.api.plugin.PluginException;
import io.nuun.kernel.api.plugin.context.InitContext;
import io.nuun.kernel.api.plugin.request.ClasspathScanRequest;
import io.nuun.kernel.core.AbstractPlugin;
Expand All @@ -24,7 +23,6 @@
import org.seedstack.seed.core.internal.application.ApplicationPlugin;
import org.seedstack.seed.core.utils.BaseClassSpecifications;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
Expand All @@ -46,21 +44,12 @@ public class MorphiaPlugin extends AbstractPlugin {

@Override
public String name() {
return "seed-persistence-morphia-plugin";
return "morphia";
}

@Override
public InitState init(InitContext initContext) {
Application application = null;
for (Plugin plugin : initContext.pluginsRequired()) {
if (plugin instanceof ApplicationPlugin) {
application = ((ApplicationPlugin) plugin).getApplication();
}
}

if (application == null) {
throw new PluginException("Unable to find application plugin");
}
Application application = initContext.dependency(ApplicationPlugin.class).getApplication();

if (MORPHIA_MAPPED_CLASSES_SPECS != null) {
Collection<Class<?>> morphiaScannedClasses = initContext.scannedTypesBySpecification().get(MORPHIA_MAPPED_CLASSES_SPECS);
Expand Down Expand Up @@ -101,13 +90,13 @@ public static MorphiaDatastore getMongoDatastore(Application application, Class<
throw SeedException.createNew(MorphiaErrorCodes.UNKNOW_DATASTORE_DATABASE)
.put("aggregate", morphiaClass.getName()).put("clientName", clientName).put("dbName", dbName);
}
checkMongoClient(application, morphiaClass, clientName, dbName);
checkMongoClient(application.getConfiguration(), morphiaClass, clientName, dbName);
MorphiaDatastore morphiaDatastore = new MorphiaDatastoreImpl(clientName, dbName);
return morphiaDatastore;
}

private static void checkMongoClient(Application application, Class<?> mappedClass, String clientName, String dbName) {
Configuration configurationClientMongodb = application.getConfiguration().subset(MongoDbPlugin.CONFIGURATION_PREFIX + ".client." + clientName);
private static void checkMongoClient(Configuration configuration, Class<?> mappedClass, String clientName, String dbName) {
Configuration configurationClientMongodb = configuration.subset(MongoDbPlugin.CONFIGURATION_PREFIX + ".client." + clientName);
if (configurationClientMongodb.isEmpty()) {
throw SeedException.createNew(MongoDbErrorCodes.UNKNOWN_CLIENT_SPECIFIED)
.put("aggregate", mappedClass.getName()).put("clientName", clientName).put("dbName", dbName);
Expand All @@ -125,11 +114,8 @@ private static void checkMongoClient(Application application, Class<?> mappedCla
}

@Override
public Collection<Class<? extends Plugin>> requiredPlugins() {
Collection<Class<? extends Plugin>> plugins = new ArrayList<Class<? extends Plugin>>();
plugins.add(ApplicationPlugin.class);
plugins.add(MongoDbPlugin.class);
return plugins;
public Collection<Class<?>> requiredPlugins() {
return Lists.<Class<?>>newArrayList(ApplicationPlugin.class, MongoDbPlugin.class);
}

@Override
Expand Down