// Path: src/main/java/com/lowereast/guiceymongo/guice/GuiceyMongo.java
// public final class GuiceyMongo {
// 	private GuiceyMongo() {}
// 
// 	public static Builders.Configuration configure(String configurationName) {
// 		return new BuilderImpls.Configuration(configurationName);
// 	}
// 	
// 	public static Builders.Connection configureConnection(String connectionName) {
// 		return new BuilderImpls.Connection(connectionName);
// 	}
// 	
// 	public static Module chooseConfiguration(final String configurationName) {
// 		return new Module() {
// 			public void configure(Binder binder) {
// 				GuiceyMongoUtil.setCurrentConfiguration(binder.skipSources(GuiceyMongo.class), configurationName);
// 			}
// 		};
// 	}
// 	
// 	@SuppressWarnings("unchecked")
// 	public static Module javascriptProxy(Class<?> proxyInterface, String databaseKey) {
// 		return new JavascriptProxy(proxyInterface, databaseKey);
// 	}
// }


import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.lowereast.guiceymongo.guice.GuiceyMongo;
import com.lowereast.guiceymongo.guice.annotation.GuiceyMongoDatabase;
import com.mongodb.DB;
/**
 *      Copyright (C) 2010 Lowereast Software
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */


public class RemoteDatabaseConfigurationExample {
	@Inject
	RemoteDatabaseConfigurationExample(@GuiceyMongoDatabase(Databases.Main) DB mainDatabase, @GuiceyMongoDatabase(Databases.Search) DB searchDatabase) {
		System.out.println(mainDatabase);
		System.out.println(searchDatabase);
	}
	
	public static void main(String[] args) {
		Injector injector = Guice.createInjector(
				// create a connection to localhost:13731 that can be used by databases
// Path: src/main/java/com/lowereast/guiceymongo/guice/GuiceyMongo.java
// public final class GuiceyMongo {
// 	private GuiceyMongo() {}
// 
// 	public static Builders.Configuration configure(String configurationName) {
// 		return new BuilderImpls.Configuration(configurationName);
// 	}
// 	
// 	public static Builders.Connection configureConnection(String connectionName) {
// 		return new BuilderImpls.Connection(connectionName);
// 	}
// 	
// 	public static Module chooseConfiguration(final String configurationName) {
// 		return new Module() {
// 			public void configure(Binder binder) {
// 				GuiceyMongoUtil.setCurrentConfiguration(binder.skipSources(GuiceyMongo.class), configurationName);
// 			}
// 		};
// 	}
// 	
// 	@SuppressWarnings("unchecked")
// 	public static Module javascriptProxy(Class<?> proxyInterface, String databaseKey) {
// 		return new JavascriptProxy(proxyInterface, databaseKey);
// 	}
// }


// Path: src/examples/RemoteDatabaseConfigurationExample.java
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.lowereast.guiceymongo.guice.GuiceyMongo;
import com.lowereast.guiceymongo.guice.annotation.GuiceyMongoDatabase;
import com.mongodb.DB;

/**
 *      Copyright (C) 2010 Lowereast Software
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */


public class RemoteDatabaseConfigurationExample {
	@Inject
	RemoteDatabaseConfigurationExample(@GuiceyMongoDatabase(Databases.Main) DB mainDatabase, @GuiceyMongoDatabase(Databases.Search) DB searchDatabase) {
		System.out.println(mainDatabase);
		System.out.println(searchDatabase);
	}
	
	public static void main(String[] args) {
		Injector injector = Guice.createInjector(
				// create a connection to localhost:13731 that can be used by databases
				GuiceyMongo.configureConnection(Connections.Primary)