Skip to content
This repository has been archived by the owner on Jul 6, 2023. It is now read-only.

Commit

Permalink
Merge pull request #22 from vidakovic/master
Browse files Browse the repository at this point in the history
API cleanups and dependency updates
  • Loading branch information
lvca committed Jan 22, 2015
2 parents 7fcfb8f + c945693 commit 955c281
Show file tree
Hide file tree
Showing 30 changed files with 1,161 additions and 933 deletions.
10 changes: 5 additions & 5 deletions pom.xml
Expand Up @@ -60,17 +60,17 @@
<osgi.private/>
<sonatypeOssDistMgmtSnapshotsUrl>https://oss.sonatype.org/content/repositories/snapshots/</sonatypeOssDistMgmtSnapshotsUrl>
<!-- dependency versions -->
<slf4j.version>1.7.9</slf4j.version>
<slf4j.version>1.7.10</slf4j.version>
<logback.version>1.1.2</logback.version>
<orientdb.version>2.0-rc1</orientdb.version>
<aspectj.version>1.8.4</aspectj.version>
<spring.version>4.1.3.RELEASE</spring.version>
<spring.version>4.1.4.RELEASE</spring.version>
<spring.data.version>1.9.1.RELEASE</spring.data.version>
<spring.boot.version>1.2.0.RELEASE</spring.boot.version>
<jooq.version>3.5.0</jooq.version>
<jmh.version>1.3.4</jmh.version>
<jooq.version>3.5.1</jooq.version>
<jmh.version>1.4.1</jmh.version>
<junit.version>4.12</junit.version>
<testng.version>6.8.8</testng.version>
<testng.version>6.8.13</testng.version>
<rest.assured.version>2.4.0</rest.assured.version>
</properties>

Expand Down
@@ -1,5 +1,6 @@
package org.springframework.boot.autoconfigure.orient;

import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx;
import com.orientechnologies.orient.object.db.OObjectDatabaseTx;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
Expand All @@ -10,8 +11,11 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.orient.commons.core.OrientDatabaseFactory;
import org.springframework.data.orient.commons.core.OrientOperations;
import org.springframework.data.orient.commons.core.OrientTransactionManager;
import org.springframework.data.orient.document.OrientDocumentDatabaseFactory;
import org.springframework.data.orient.document.OrientDocumentOperations;
import org.springframework.data.orient.document.OrientDocumentTemplate;
import org.springframework.data.orient.object.OrientObjectDatabaseFactory;
import org.springframework.data.orient.object.OrientObjectOperations;
import org.springframework.data.orient.object.OrientObjectTemplate;
Expand Down Expand Up @@ -61,6 +65,13 @@ public OrientObjectTemplate objectTemplate(OrientObjectDatabaseFactory factory)
return new OrientObjectTemplate(factory);
}

@Bean
@ConditionalOnClass(ODatabaseDocumentTx.class)
@ConditionalOnMissingBean(OrientDocumentOperations.class)
public OrientDocumentTemplate documentTemplate(OrientDocumentDatabaseFactory factory) {
return new OrientDocumentTemplate(factory);
}

@Bean
@ConditionalOnWebApplication
@ConditionalOnClass(OObjectDatabaseTx.class)
Expand Down
5 changes: 0 additions & 5 deletions spring-data-orientdb-commons/pom.xml
Expand Up @@ -59,11 +59,6 @@
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-client</artifactId>
</dependency>
<!-- TODO: remove this -->
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-object</artifactId>
</dependency>

<!-- jooq -->
<dependency>
Expand Down
@@ -1,45 +1,53 @@
package org.springframework.data.orient.commons.core;

import com.orientechnologies.orient.core.db.ODatabase;
import com.orientechnologies.orient.core.db.ODatabaseInternal;
import com.orientechnologies.orient.core.db.ODatabaseRecordThreadLocal;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.Assert;

import javax.annotation.PostConstruct;

import static org.springframework.util.Assert.notNull;

/**
* A base factory for creating {@link com.orientechnologies.orient.core.db.ODatabase} objects.
*
* @author Dzmitry_Naskou
* @param <T> the type of database to handle
*/
public abstract class AbstractOrientDatabaseFactory<T extends ODatabaseInternal<?>> implements OrientDatabaseFactory<T> {
public abstract class AbstractOrientDatabaseFactory<T> implements OrientDatabaseFactory<T> {

/** The logger. */
private static Logger log = LoggerFactory.getLogger(AbstractOrientDatabaseFactory.class);

/** The username. */
protected String username;
protected String username = DEFAULT_USERNAME;

/** The password. */
protected String password;
protected String password = DEFAULT_PASSWORD;

/** The min pool size. */
protected int minPoolSize = DEFAULT_MIN_POOL_SIZE;

/** The max pool size. */
protected int maxPoolSize = DEFAULT_MAX_POOL_SIZE;

protected Boolean autoCreate;

protected String url;

@PostConstruct
public void init() {
Assert.notNull(url);
Assert.notNull(username);
Assert.notNull(password);
notNull(url);
notNull(username);
notNull(password);

ODatabaseInternal<?> db = newDatabase();
if(autoCreate==null) {
autoCreate = !getUrl().startsWith("remote:");
}

ODatabase<?> db = newDatabase();
createDatabase(db);
createPool();
}
Expand All @@ -51,25 +59,31 @@ public void init() {
*
* @return the o database complex
*/
public abstract ODatabaseInternal<?> openDatabase();
public abstract ODatabase<T> openDatabase();

protected abstract ODatabaseInternal<?> newDatabase();

public ODatabaseInternal<?> db() {
ODatabaseInternal<?> db;
public ODatabase<T> db() {
ODatabase<T> db;
if(!ODatabaseRecordThreadLocal.INSTANCE.isDefined()) {
db = openDatabase();
log.debug("acquire db from pool {}", db.hashCode());
} else {
db = ODatabaseRecordThreadLocal.INSTANCE.get().getDatabaseOwner();
log.debug("use existing db {}", db.hashCode());
db = (ODatabase<T>)ODatabaseRecordThreadLocal.INSTANCE.get().getDatabaseOwner();

if(db.isClosed()) {
db = openDatabase();
log.debug("re-opened db {}", db.hashCode());
} else {
log.debug("use existing db {}", db.hashCode());
}
}

return db;
}

protected void createDatabase(ODatabaseInternal<?> db) {
if (!getUrl().startsWith("remote:")) {
protected void createDatabase(ODatabase<?> db) {
if (autoCreate) {
if (!db.exists()) {
db.create();
db.close();
Expand Down Expand Up @@ -166,4 +180,12 @@ public int getMaxPoolSize() {
public void setMaxPoolSize(int maxPoolSize) {
this.maxPoolSize = maxPoolSize;
}

public Boolean getAutoCreate() {
return autoCreate;
}

public void setAutoCreate(Boolean autoCreate) {
this.autoCreate = autoCreate;
}
}

0 comments on commit 955c281

Please sign in to comment.