use of org.ektorp.impl.StdCouchDbInstance in project gora by apache.
the class CouchDBStore method initialize.
/**
* Initialize the data store by reading the credentials, setting the client's properties up and
* reading the mapping file. Initialize is called when then the call to
* {@link org.apache.gora.store.DataStoreFactory#createDataStore} is made.
*
* @param keyClass
* @param persistentClass
* @param properties
*/
@Override
public void initialize(Class<K> keyClass, Class<T> persistentClass, Properties properties) {
LOG.debug("Initializing CouchDB store");
super.initialize(keyClass, persistentClass, properties);
final CouchDBParameters params = CouchDBParameters.load(properties);
try {
final String mappingFile = DataStoreFactory.getMappingFile(properties, this, DEFAULT_MAPPING_FILE);
final HttpClient httpClient = new StdHttpClient.Builder().url("http://" + params.getServer() + ":" + params.getPort()).build();
dbInstance = new StdCouchDbInstance(httpClient);
final CouchDBMappingBuilder<K, T> builder = new CouchDBMappingBuilder<>(this);
LOG.debug("Initializing CouchDB store with mapping {}.", new Object[] { mappingFile });
builder.readMapping(mappingFile);
mapping = builder.build();
final ObjectMapperFactory myObjectMapperFactory = new CouchDBObjectMapperFactory();
myObjectMapperFactory.createObjectMapper().addMixInAnnotations(persistentClass, CouchDbDocument.class);
db = new StdCouchDbConnector(mapping.getDatabaseName(), dbInstance, myObjectMapperFactory);
db.createDatabaseIfNotExists();
} catch (IOException e) {
LOG.error("Error while initializing CouchDB store: {}", new Object[] { e.getMessage() });
throw new RuntimeException(e);
}
}
use of org.ektorp.impl.StdCouchDbInstance in project pac4j by pac4j.
the class CouchServer method start.
public CouchDbConnector start() {
InMemoryCouchDb couchDbClient = new InMemoryCouchDb();
couchDbClient.createDatabase("users");
StdHttpClient stdHttpClient = new StdHttpClient(couchDbClient);
StdCouchDbInstance stdCouchDbInstance = new StdCouchDbInstance(stdHttpClient);
StdCouchDbConnector couchDbConnector = new StdCouchDbConnector("users", stdCouchDbInstance);
couchDbConnector.createDatabaseIfNotExists();
// uploading design doc:
String designDocString = "{\"_id\":\"_design/pac4j\",\"language\":\"javascript\",\"views\":{\"by_username\":{\"map\":\"" + "function(doc){if (doc.username) emit(doc.username, doc);}\"},\"by_linkedid\":{\"map\":\"function(doc) {" + "if (doc.linkedid) emit(doc.linkedid, doc);}\"}}}";
ObjectMapper objectMapper = new ObjectMapper();
try {
couchDbConnector.create(objectMapper.readTree(designDocString));
} catch (IOException e) {
e.printStackTrace();
return null;
}
return couchDbConnector;
}
use of org.ektorp.impl.StdCouchDbInstance in project sw360portal by sw360.
the class DatabaseConnectorTest method setUp.
@Before
public void setUp() throws Exception {
// Create the test object
object = new TestObject();
object.setName("Test");
object.setText("This is some nice test text.");
// Initialize the mapper factory
factory = new MapperFactory(ImmutableList.<Class<?>>of(TestObject.class), Collections.<Class<?>>emptyList(), Maps.newHashMap());
// Default connector for testing
HttpClient httpClient = new StdHttpClient.Builder().url(COUCH_DB_URL).build();
CouchDbInstance dbInstance = new StdCouchDbInstance(httpClient);
// Create database if it does not exists
if (!dbInstance.checkIfDbExists(COUCH_DB_DATABASE)) {
dbInstance.createDatabase(COUCH_DB_DATABASE);
}
CouchDbConnector db = new StdCouchDbConnector(COUCH_DB_DATABASE, dbInstance, factory);
// Add the object
db.create(object);
// Save id and rev for teardown
id = object.getId();
rev = object.getRevision();
// Now create the actual database connector
connector = new DatabaseConnector(DatabaseTestProperties.getConfiguredHttpClient(), COUCH_DB_DATABASE, factory);
}
Aggregations