Compare commits

..
Author SHA1 Message Date
Rob Bygrave 70fd988d8c [maven-release-plugin] prepare release ebean-10.1.1 2016-12-12 02:09:55 +13:00
Rob Bygrave fe4167ed60 #920 - Update DBMigration to io.ebean 2016-12-12 02:07:52 +13:00
Rob Bygrave 0eef69a277 #920 - Change logger package to io.ebean (e.g. for logging SQL instead of org.avaje.ebean.SQL use io.ebean.SQL) 2016-12-11 23:42:38 +13:00
Rob Bygrave 76bfd805c0 #919 - io.ebean package, use ebean-annotation 2016-12-11 23:34:29 +13:00
Rob Bygrave 971e2dc91b #919 - io.ebean package initial 2016-12-11 23:23:22 +13:00
Rob Bygrave 5821dc96b9 [maven-release-plugin] prepare for next development iteration 2016-12-10 00:08:52 +13:00
Rob Bygrave e027110006 [maven-release-plugin] prepare release ebean-9.5.1 2016-12-10 00:08:42 +13:00
Rob Bygrave b5e6e9a66c Bump pom to 9.5.1-SNAPSHOT 2016-12-10 00:06:09 +13:00
Rob Bygrave 514047e680 #918 - Remove DbMigrationConfig.generateOnStart() ... migrate to offline generation 2016-12-10 00:04:41 +13:00
Rob Bygrave a727a98a21 #917 - ENH: Add findNative() ... ala automatic mapping of native SQL into object graphs / paths. 2016-12-09 23:45:57 +13:00
Rob Bygrave e75b5e8b30 #916 - Refactor internals - bump use of 31 in hashes to 92821 2016-12-08 23:28:58 +13:00
Rob Bygrave ad0e085ff5 #915 - Refactor internals - Change update plan to string key 2016-12-08 23:23:19 +13:00
Rob Bygrave 322a2f500d No effective change - move method - BeanDescriptor.merge() 2016-12-08 23:01:05 +13:00
Rob Bygrave 1c7454d249 [maven-release-plugin] prepare for next development iteration 2016-12-08 22:26:13 +13:00
2078 changed files with 9323 additions and 9022 deletions
+16 -16
View File
@@ -7,9 +7,9 @@
<version>1.1</version>
</parent>
<groupId>org.avaje.ebean</groupId>
<groupId>io.ebean</groupId>
<artifactId>ebean</artifactId>
<version>9.4.2</version>
<version>10.1.1</version>
<packaging>jar</packaging>
<name>ebean</name>
@@ -21,7 +21,7 @@
<scm>
<developerConnection>scm:git:git@github.com:ebean-orm/ebean.git</developerConnection>
<tag>ebean-9.4.2</tag>
<tag>ebean-10.1.1</tag>
</scm>
<dependencies>
@@ -39,9 +39,9 @@
</dependency>
<dependency>
<groupId>org.avaje.ebean</groupId>
<groupId>io.ebean</groupId>
<artifactId>ebean-annotation</artifactId>
<version>1.5</version>
<version>2.1</version>
</dependency>
<dependency>
@@ -65,13 +65,13 @@
<dependency>
<groupId>org.avaje</groupId>
<artifactId>avaje-classpath-scanner</artifactId>
<version>2.2.1</version>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.avaje</groupId>
<artifactId>avaje-dbmigration</artifactId>
<version>1.2.1</version>
<groupId>io.ebean</groupId>
<artifactId>ebean-dbmigration</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
@@ -162,9 +162,9 @@
</dependency>
<dependency>
<groupId>org.avaje.ebean</groupId>
<groupId>io.ebean</groupId>
<artifactId>ebean-agent</artifactId>
<version>8.1.1</version>
<version>10.1.1</version>
<scope>test</scope>
</dependency>
@@ -227,9 +227,9 @@
<plugins>
<plugin>
<groupId>org.avaje.ebean</groupId>
<groupId>io.ebean</groupId>
<artifactId>ebean-maven-plugin</artifactId>
<version>8.1.1</version>
<version>10.1.1</version>
<executions>
<execution>
<id>test</id>
@@ -283,11 +283,11 @@
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<doctitle>Ebean 9</doctitle>
<overview>src/main/java/com/avaje/ebean/overview.html</overview>
<doctitle>Ebean 10</doctitle>
<overview>src/main/java/io/ebean/overview.html</overview>
<source>1.8</source>
<doclet>org.avaje.doclet.PygmentsDoclet</doclet>
<excludePackageNames>com.avaje.ebeaninternal.*:com.avaje.ebean.util:com.avaje.ebean.dbmigration.ddlgeneration:com.avaje.ebean.dbmigration.migration:com.avaje.ebean.dbmigration.migrationreader:com.avaje.ebean.dbmigration.model</excludePackageNames>
<excludePackageNames>io.ebeaninternal.*:com.avaje.ebean.util:io.ebean.dbmigration.ddlgeneration:io.ebean.dbmigration.migration:io.ebean.dbmigration.migrationreader:io.ebean.dbmigration.model</excludePackageNames>
<docletArtifact>
<groupId>org.avaje</groupId>
<artifactId>pygments-doclet</artifactId>
@@ -1,119 +0,0 @@
package com.avaje.ebean.annotation;
import com.avaje.ebean.Query;
import com.avaje.ebean.config.Platform;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Assign to a property to be based on a SQL formula.
* <p>
* This is typically a SQL Literal value, SQL case statement, SQL function or
* similar.
* </p>
* <p>
* Any property based on a formula becomes a read only property.
* </p>
* <p>
* You may also put use the Transient annotation with the Formula annotation.
* The effect of the Transient annotation in this case is that the formula will
* <b>NOT</b> be included in queries by default - you have to explicitly include
* it via {@link Query#select(String)} or {@link Query#fetch(String, String, com.avaje.ebean.FetchConfig)}.
* You may want to do this if the Formula is relatively expensive and only want
* it included in the query when you explicitly state it.
* </p>
* <p>
* <pre>{@code
* // On the Order "master" bean
* // ... a formula using the Order details
* // ... sum(order_qty*unit_price)
* @Transient
* @Formula(select = "_b${ta}.total_amount", join = "join (select order_id, sum(order_qty*unit_price) as total_amount from o_order_detail group by order_id) as _b${ta} on _b${ta}.order_id = ${ta}.id")
* Double totalAmount;
*
* }</pre>
* <p>
* As the totalAmount formula is also Transient it is not included by default in
* queries - it needs to be explicitly included.
* </p>
* <pre>{@code
*
* // find by Id
* Order o1 = Ebean.find(Order.class)
* .select("id, totalAmount")
* .setId(1).findUnique();
*
* // find list ... using totalAmount in the where clause
* List<Order> list = Ebean.find(Order.class)
* .select("id, totalAmount")
* .where()
* .eq("status", Order.Status.NEW)
* .gt("totalAmount", 10)
* .findList();
*
* // as a join from customer
* List<Customer> l0 = Ebean.find(Customer.class)
* .select("id, name")
* .fetch("orders", "status, totalAmount")
* .where()
* .gt("id", 0)
* .gt("orders.totalAmount", 10)
* .findList();
*
* }</pre>
*/
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(Formula.List.class)
public @interface Formula {
/**
* The SQL to be used in the SELECT part of the SQL to populate a property.
*/
String select();
/**
* OPTIONAL - the SQL to be used in the JOIN part of the SQL to support the
* formula.
* <p>
* This is commonly used to join a 'dynamic view' to support aggregation such
* as count, sum etc.
* </p>
* <p>
* The join string should start with either "left join" or "join".
* </p>
* <p>
* You will almost certainly use the "${ta}" as a place holder for the table
* alias of the table you are joining back to (the "base table" of the entity
* bean).
* </p>
* <p>
* The example below is used to support a total count of topics created by a
* user.
* </p>
* <p>
* <pre>{@code
*
* join (select user_id, count(*) as topic_count from f_topic group by user_id) as _tc on _tc.user_id = ${ta}.id
*
* }</pre>
*/
String join() default "";
Platform[] platforms() default {};
/**
* Repeatable support for {@link Formula}.
*/
@Target({ ElementType.FIELD, ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@interface List {
Formula[] value() default {};
}
}
@@ -1,68 +0,0 @@
package com.avaje.ebean.annotation;
import com.avaje.ebean.config.Platform;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Add an Literal to add to the where clause when a many property (List, Set or
* Map) is loaded or refreshed.
* <pre>{@code
*
* // on a OneToMany property...
*
* @OneToMany
* @Where(clause = "deleted='y'")
* List<Topic> topics;
*
* }</pre>
* <p>
* Note that you can include "${ta}" as a place holder for the table alias if
* you need to include the table alias in the clause.
* </p>
* <pre>{@code
* // ... including the ${ta} table alias placeholder...
*
* @OneToMany
* @Where(clause = "${ta}.deleted='y'")
* List<Topic> topics;
*
* }</pre>
* <p>
* This will be added to the where clause when lazy loading the OneToMany
* property or when there is a join to that OneToMany property.
* </p>
*/
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(Where.List.class)
public @interface Where {
/**
* The clause added to the lazy load query.
* <p>
* Note that you can include "${ta}" as a place holder for the table alias if
* you need to include the table alias in the clause.
* </p>
*/
String clause();
/**
* The platform where this annotation is active. Default: any platform
*/
Platform[] platforms() default {};
/**
* Repeatable support for {@link Where}.
*/
@Target({ ElementType.FIELD, ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@interface List {
Where[] value() default {};
}
}
@@ -1 +0,0 @@
package com.avaje.ebeaninternal.api;
@@ -1,14 +0,0 @@
package com.avaje.ebeaninternal.server.autotune.service;
import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebeaninternal.api.SpiEbeanServer;
import com.avaje.ebeaninternal.server.autotune.AutoTuneService;
public class AutoTuneServiceFactory {
public static AutoTuneService create(SpiEbeanServer server, ServerConfig serverConfig) {
return new DefaultAutoTuneService(server, serverConfig);
}
}
@@ -1 +0,0 @@
package com.avaje.ebeaninternal.server.cache;
@@ -1 +0,0 @@
package com.avaje.ebeaninternal.server.el;
@@ -1 +0,0 @@
package com.avaje.ebeaninternal.server.loadcontext;
@@ -1 +0,0 @@
package com.avaje.ebeaninternal.server.query;
@@ -1 +0,0 @@
package com.avaje.ebeaninternal.server.querydefn;
@@ -1 +0,0 @@
package com.avaje.ebeaninternal.server.text.csv;
@@ -1,4 +0,0 @@
/**
* Mapping for document store integration.
*/
package com.avaje.ebeanservice.docstore.api.mapping;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Administrative control of AutoTune during runtime.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.beans.PropertyChangeListener;
import java.util.Map;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.sql.CallableStatement;
import java.sql.SQLException;
@@ -73,8 +73,8 @@ import java.sql.SQLException;
* }
* }</pre>
*
* @see com.avaje.ebean.SqlUpdate
* @see com.avaje.ebean.Ebean#execute(CallableSql)
* @see SqlUpdate
* @see Ebean#execute(CallableSql)
*/
public interface CallableSql {
@@ -1,6 +1,6 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.RawSql.ColumnMapping;
import io.ebean.RawSql.ColumnMapping;
import javax.persistence.PersistenceException;
import java.util.ArrayList;
@@ -1,7 +1,7 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.RawSql.Sql;
import com.avaje.ebeaninternal.server.querydefn.SimpleTextParser;
import io.ebean.RawSql.Sql;
import io.ebeaninternal.server.querydefn.SimpleTextParser;
/**
* Parses sql-select queries to try and determine the location where WHERE and
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Bean holding the details to update the document store.
@@ -1,6 +1,6 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebeanservice.docstore.api.DocQueryRequest;
import io.ebeanservice.docstore.api.DocQueryRequest;
import org.jetbrains.annotations.Nullable;
import java.io.IOException;
@@ -1,9 +1,9 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.cache.ServerCacheManager;
import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.text.csv.CsvReader;
import com.avaje.ebean.text.json.JsonContext;
import io.ebean.cache.ServerCacheManager;
import io.ebean.config.ServerConfig;
import io.ebean.text.csv.CsvReader;
import io.ebean.text.json.JsonContext;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1012,6 +1012,30 @@ public final class Ebean {
return serverMgr.getDefaultServer().find(beanType);
}
/**
* Create a query using native SQL.
* <p>
* The native SQL can contain named parameters or positioned parameters.
* </p>
* <pre>{@code
*
* String sql = "select c.id, c.name from customer c where c.name like ? order by c.name";
*
* Query<Customer> query = ebeanServer.findNative(Customer.class, sql);
* query.setParameter(1, "Rob%");
*
* List<Customer> customers = query.findList();
*
* }</pre>
*
* @param beanType The type of entity bean to fetch
* @param nativeSql The SQL that can contain named or positioned parameters
* @return The query to set parameters and execute
*/
public static <T> Query<T> findNative(Class<T> beanType, String nativeSql) {
return serverMgr.getDefaultServer().findNative(beanType, nativeSql);
}
/**
* Create an Update query to perform a bulk update.
* <p>
@@ -1,11 +1,11 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.cache.ServerCacheManager;
import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.meta.MetaInfoManager;
import com.avaje.ebean.plugin.SpiServer;
import com.avaje.ebean.text.csv.CsvReader;
import com.avaje.ebean.text.json.JsonContext;
import io.ebean.cache.ServerCacheManager;
import io.ebean.config.ServerConfig;
import io.ebean.meta.MetaInfoManager;
import io.ebean.plugin.SpiServer;
import io.ebean.text.csv.CsvReader;
import io.ebean.text.json.JsonContext;
import org.jetbrains.annotations.Nullable;
import javax.persistence.NonUniqueResultException;
@@ -298,6 +298,28 @@ public interface EbeanServer {
*/
<T> Query<T> find(Class<T> beanType);
/**
* Create a query using native SQL.
* <p>
* The native SQL can contain named parameters or positioned parameters.
* </p>
* <pre>{@code
*
* String sql = "select c.id, c.name from customer c where c.name like ? order by c.name";
*
* Query<Customer> query = ebeanServer.findNative(Customer.class, sql);
* query.setParameter(1, "Rob%");
*
* List<Customer> customers = query.findList();
*
* }</pre>
*
* @param beanType The type of entity bean to fetch
* @param nativeSql The SQL that can contain named or positioned parameters
* @return The query to set parameters and execute
*/
<T> Query<T> findNative(Class<T> beanType, String nativeSql);
/**
* Return the next unique identity value for a given bean type.
* <p>
@@ -885,7 +907,7 @@ public interface EbeanServer {
* @param query the query to execute the row count on
* @param transaction the transaction (can be null).
* @return a Future object for the row count query
* @see com.avaje.ebean.Query#findFutureCount()
* @see Query#findFutureCount()
*/
<T> FutureRowCount<T> findFutureCount(Query<T> query, Transaction transaction);
@@ -900,7 +922,7 @@ public interface EbeanServer {
* @param query the query to execute the fetch Id's on
* @param transaction the transaction (can be null).
* @return a Future object for the list of Id's
* @see com.avaje.ebean.Query#findFutureIds()
* @see Query#findFutureIds()
*/
<T> FutureIds<T> findFutureIds(Query<T> query, Transaction transaction);
@@ -1,9 +1,9 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.common.SpiContainer;
import com.avaje.ebean.config.ContainerConfig;
import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebeaninternal.server.lib.ShutdownManager;
import io.ebean.common.SpiContainer;
import io.ebean.config.ContainerConfig;
import io.ebean.config.ServerConfig;
import io.ebeaninternal.server.lib.ShutdownManager;
import javax.persistence.PersistenceException;
import java.lang.reflect.Constructor;
@@ -30,7 +30,7 @@ import java.util.Properties;
public class EbeanServerFactory {
private static final String DEFAULT_CONTAINER = "com.avaje.ebeaninternal.server.core.DefaultContainer";
private static final String DEFAULT_CONTAINER = "io.ebeaninternal.server.core.DefaultContainer";
private static SpiContainer container;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Query by Example expression.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.util.Collection;
import java.util.Map;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* An expression that is part of a WHERE or HAVING clause.
@@ -1,10 +1,10 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.search.Match;
import com.avaje.ebean.search.MultiMatch;
import com.avaje.ebean.search.TextCommonTerms;
import com.avaje.ebean.search.TextQueryString;
import com.avaje.ebean.search.TextSimple;
import io.ebean.search.Match;
import io.ebean.search.MultiMatch;
import io.ebean.search.TextCommonTerms;
import io.ebean.search.TextQueryString;
import io.ebean.search.TextSimple;
import java.util.Collection;
import java.util.List;
@@ -1,10 +1,10 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.search.Match;
import com.avaje.ebean.search.MultiMatch;
import com.avaje.ebean.search.TextCommonTerms;
import com.avaje.ebean.search.TextQueryString;
import com.avaje.ebean.search.TextSimple;
import io.ebean.search.Match;
import io.ebean.search.MultiMatch;
import io.ebean.search.TextCommonTerms;
import io.ebean.search.TextQueryString;
import io.ebean.search.TextSimple;
import org.jetbrains.annotations.Nullable;
import javax.persistence.NonUniqueResultException;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.io.Serializable;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.util.Set;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.util.List;
import java.util.Set;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import org.jetbrains.annotations.Nullable;
@@ -157,4 +157,10 @@ public class Finder<I, T> {
return db().find(type);
}
/**
* Creates a native sql query.
*/
public Query<T> nativeSql(String nativeSql) {
return db().findNative(type, nativeSql);
}
}
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.util.List;
import java.util.concurrent.Future;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import javax.persistence.PersistenceException;
import java.util.List;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.util.concurrent.Future;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Represents a Conjunction or a Disjunction.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Used to specify the type of like matching used.
@@ -32,4 +32,4 @@ public enum LikeType {
* </p>
*/
EQUAL_TO
}
}
@@ -1,6 +1,6 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.bean.EntityBean;
import io.ebean.bean.EntityBean;
import javax.persistence.MappedSuperclass;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.io.Serializable;
import java.util.ArrayList;
@@ -255,9 +255,9 @@ public final class OrderBy<T> implements Serializable {
@Override
public int hashCode() {
int hc = property.hashCode();
hc = hc * 31 + (ascending ? 0 : 1);
hc = hc * 31 + (nulls == null ? 0 : nulls.hashCode());
hc = hc * 31 + (highLow == null ? 0 : highLow.hashCode());
hc = hc * 92821 + (ascending ? 0 : 1);
hc = hc * 92821 + (nulls == null ? 0 : nulls.hashCode());
hc = hc * 92821 + (highLow == null ? 0 : highLow.hashCode());
return hc;
}
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.util.List;
import java.util.concurrent.Future;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Defines the scope for PersistenceContext.
@@ -6,8 +6,8 @@ package com.avaje.ebean;
* Ebean has traditionally used Transaction scope for the PersistenceContext. This is used to change the scope to
* use (by default) and explicitly set the scope to use for an individual query.
*
* @see com.avaje.ebean.config.ServerConfig#setPersistenceContextScope(PersistenceContextScope)
* @see com.avaje.ebean.Query#setPersistenceContextScope(PersistenceContextScope)
* @see io.ebean.config.ServerConfig#setPersistenceContextScope(PersistenceContextScope)
* @see Query#setPersistenceContextScope(PersistenceContextScope)
*/
public enum PersistenceContextScope {
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import javax.persistence.PersistenceException;
@@ -1,6 +1,6 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.config.PropertyMap;
import io.ebean.config.PropertyMap;
import java.util.Properties;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import org.jetbrains.annotations.Nullable;
@@ -243,7 +243,7 @@ public interface Query<T> {
/**
* Specify the PersistenceContextScope to use for this query.
* <p/>
* When this is not set the 'default' configured on {@link com.avaje.ebean.config.ServerConfig#setPersistenceContextScope(PersistenceContextScope)}
* When this is not set the 'default' configured on {@link io.ebean.config.ServerConfig#setPersistenceContextScope(PersistenceContextScope)}
* is used - this value defaults to {@link PersistenceContextScope#TRANSACTION}.
* <p/>
* Note that the same persistence Context is used for subsequent lazy loading and query join queries.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.util.Iterator;
@@ -1,6 +1,6 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.util.CamelCaseHelper;
import io.ebean.util.CamelCaseHelper;
import java.io.Serializable;
import java.sql.ResultSet;
@@ -636,9 +636,9 @@ public final class RawSql implements Serializable {
@Override
public int hashCode() {
int result = indexPos;
result = 31 * result + dbColumn.hashCode();
result = 31 * result + (dbAlias != null ? dbAlias.hashCode() : 0);
result = 31 * result + (propertyName != null ? propertyName.hashCode() : 0);
result = 92821 * result + dbColumn.hashCode();
result = 92821 * result + (dbAlias != null ? dbAlias.hashCode() : 0);
result = 92821 * result + (propertyName != null ? propertyName.hashCode() : 0);
return result;
}
@@ -724,8 +724,8 @@ public final class RawSql implements Serializable {
@Override
public int hashCode() {
int result = (parsed ? 1 : 0);
result = 31 * result + columnMapping.hashCode();
result = 31 * result + unParsedSql.hashCode();
result = 92821 * result + columnMapping.hashCode();
result = 92821 * result + unParsedSql.hashCode();
return result;
}
}
@@ -1,7 +1,7 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.RawSql.ColumnMapping;
import com.avaje.ebean.RawSql.Sql;
import io.ebean.RawSql.ColumnMapping;
import io.ebean.RawSql.Sql;
import java.sql.ResultSet;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.io.Serializable;
import java.util.List;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -165,4 +165,4 @@ public interface SqlRow extends Serializable, Map<String, Object> {
*/
Collection<Object> values();
}
}
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* A SqlUpdate for executing insert update or delete statements.
@@ -50,7 +50,7 @@ public interface SqlUpdate {
* {@link Transaction#setBatchSize(int)}.
* </p>
*
* @see com.avaje.ebean.Ebean#execute(SqlUpdate)
* @see Ebean#execute(SqlUpdate)
*/
int execute();
@@ -1,9 +1,8 @@
package com.avaje.ebean;
package io.ebean;
import com.avaje.ebean.annotation.DocStoreMode;
import com.avaje.ebean.config.DocStoreConfig;
import com.avaje.ebean.config.PersistBatch;
import com.avaje.ebean.config.ServerConfig;
import io.ebean.annotation.DocStoreMode;
import io.ebean.config.DocStoreConfig;
import io.ebean.config.ServerConfig;
import javax.persistence.PersistenceException;
import javax.persistence.RollbackException;
@@ -324,7 +323,7 @@ public interface Transaction extends Closeable {
* </p>
*
* @param persistBatchMode the batch mode to use for this transaction
* @see com.avaje.ebean.config.ServerConfig#setPersistBatch(com.avaje.ebean.config.PersistBatch)
* @see io.ebean.config.ServerConfig#setPersistBatch(PersistBatch)
*/
void setBatch(PersistBatch persistBatchMode);
@@ -345,7 +344,7 @@ public interface Transaction extends Closeable {
* </p>
*
* @param batchOnCascadeMode the batch mode to use per save(), insert(), update() or delete()
* @see com.avaje.ebean.config.ServerConfig#setPersistBatchOnCascade(com.avaje.ebean.config.PersistBatch)
* @see io.ebean.config.ServerConfig#setPersistBatchOnCascade(PersistBatch)
*/
void setBatchOnCascade(PersistBatch batchOnCascadeMode);
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Provides a callback that can be registered with a Transaction.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Adapter that can be extended for easier implementation of TransactionCallback.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Execute a TxCallable in a Transaction scope.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Execute a TxRunnable in a Transaction scope.
@@ -1,6 +1,4 @@
package com.avaje.ebean;
import com.avaje.ebean.config.PersistBatch;
package io.ebean;
import java.util.ArrayList;
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* An Insert Update or Delete statement.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* An update query typically intended to perform a bulk update of many rows that match the query.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
/**
* Holds two values as the result of a difference comparison.
@@ -1,4 +1,4 @@
package com.avaje.ebean;
package io.ebean;
import java.sql.Timestamp;
import java.util.Map;
@@ -1,8 +1,8 @@
package com.avaje.ebean.annotation;
package io.ebean.annotation;
import com.avaje.ebean.TxIsolation;
import com.avaje.ebean.TxType;
import com.avaje.ebean.config.PersistBatch;
import io.ebean.TxIsolation;
import io.ebean.TxType;
import io.ebean.PersistBatch;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -20,7 +20,7 @@ import java.lang.annotation.Target;
* <ul>
* <li>EJB's javax.ejb.TransactionAttribute</li>
* <li>Spring's org.springframework.transaction.annotation.Transactional</li>
* <li>and this one, Ebean's own com.avaje.ebean.annotation.Transactional</li>
* <li>and this one, Ebean's own Transactional</li>
* </ul>
* Spring created their one because the EJB annotation does not support features
* such as isolation level and specifying rollbackOn, noRollbackOn exceptions.
@@ -1,6 +1,6 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
import com.avaje.ebean.ExpressionList;
import io.ebean.ExpressionList;
import java.io.Serializable;
import java.util.Collection;
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
/**
* Interface to define the addition of a bean to the underlying collection.
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
/**
* Loads a entity bean collection.
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
/**
* Loads a entity bean.
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
import java.io.Serializable;
import java.util.Arrays;
@@ -35,7 +35,7 @@ public final class CallStack implements Serializable {
public int hashCode() {
int hc = 0;
for (StackTraceElement aCallStack : callStack) {
hc = 31 * hc + aCallStack.hashCode();
hc = 92821 * hc + aCallStack.hashCode();
}
return hc;
}
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
/**
* Marker interface for classes enhanced to support Transactional methods.
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
@@ -1,7 +1,7 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.ValuePair;
import io.ebean.Ebean;
import io.ebean.ValuePair;
import javax.persistence.EntityNotFoundException;
import javax.persistence.PersistenceException;
@@ -696,40 +696,42 @@ public final class EntityBeanIntercept implements Serializable {
/**
* Return a dirty property hash taking into account embedded beans.
*/
public int getDirtyPropertyHash() {
return addDirtyPropertyHash(37);
public StringBuilder getDirtyPropertyKey() {
StringBuilder sb = new StringBuilder();
addDirtyPropertyKey(sb);
return sb;
}
/**
* Add and return a dirty property hash recursing into embedded beans.
*/
public int addDirtyPropertyHash(int hash) {
private void addDirtyPropertyKey(StringBuilder sb) {
int len = getPropertyLength();
for (int i = 0; i < len; i++) {
if (changedProps != null && changedProps[i]) {
// the property has been changed on this bean
hash = hash * 31 + (i + 1);
sb.append(i).append(',');
} else if (embeddedDirty != null && embeddedDirty[i]) {
// an embedded property has been changed - recurse
EntityBean embeddedBean = (EntityBean) owner._ebean_getField(i);
hash = hash * 31 + embeddedBean._ebean_getIntercept().addDirtyPropertyHash(hash);
sb.append(i).append('[');
embeddedBean._ebean_getIntercept().addDirtyPropertyKey(sb);
sb.append(']');
}
}
return hash;
}
/**
* Return a loaded property hash.
*/
public int getLoadedPropertyHash() {
int hash = 37;
public StringBuilder getLoadedPropertyKey() {
StringBuilder sb = new StringBuilder();
int len = getPropertyLength();
for (int i = 0; i < len; i++) {
if (isLoadedProperty(i)) {
hash = hash * 31 + (i + 1);
sb.append(i).append(',');
}
}
return hash;
return sb;
}
/**
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
import java.lang.ref.WeakReference;
import java.util.LinkedHashSet;
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
/**
* Collects the profile information.
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
import java.io.Serializable;
@@ -68,8 +68,8 @@ public final class ObjectGraphNode implements Serializable {
}
public int hashCode() {
int hc = 31 * originQueryPoint.hashCode();
hc = 31 * hc + (path == null ? 0 : path.hashCode());
int hc = 92821 * originQueryPoint.hashCode();
hc = 92821 * hc + (path == null ? 0 : path.hashCode());
return hc;
}
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
import java.io.Serializable;
@@ -62,9 +62,9 @@ public final class ObjectGraphOrigin implements Serializable {
}
public int hashCode() {
int hc = 31 * callStack.hashCode();
hc = 31 * hc + beanType.hashCode();
hc = 31 * hc + queryHash;
int hc = 92821 * callStack.hashCode();
hc = 92821 * hc + beanType.hashCode();
hc = 92821 * hc + queryHash;
return hc;
}
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
/**
* Holds entity beans by there type and id.
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
import javax.persistence.Entity;
@@ -1,4 +1,4 @@
package com.avaje.ebean.bean;
package io.ebean.bean;
/**
* A callback that can be registered to fire on getter method calls.
@@ -1,4 +1,4 @@
package com.avaje.ebean.cache;
package io.ebean.cache;
/**
* Represents part of the "L2" server side cache.
@@ -1,4 +1,4 @@
package com.avaje.ebean.cache;
package io.ebean.cache;
/**
* Defines method for constructing caches for beans and queries.
@@ -1,4 +1,4 @@
package com.avaje.ebean.cache;
package io.ebean.cache;
/**
* The cache service for server side caching of beans and query results.
@@ -1,7 +1,7 @@
package com.avaje.ebean.cache;
package io.ebean.cache;
import com.avaje.ebean.annotation.CacheBeanTuning;
import com.avaje.ebean.annotation.CacheQueryTuning;
import io.ebean.annotation.CacheBeanTuning;
import io.ebean.annotation.CacheQueryTuning;
/**
* Options for controlling a cache.
@@ -1,7 +1,7 @@
package com.avaje.ebean.cache;
package io.ebean.cache;
import com.avaje.ebean.BackgroundExecutor;
import com.avaje.ebean.config.ServerConfig;
import io.ebean.BackgroundExecutor;
import io.ebean.config.ServerConfig;
/**
* The plugin interface that creates a ServerCacheFactory.
@@ -1,4 +1,4 @@
package com.avaje.ebean.cache;
package io.ebean.cache;
/**
* The statistics collected per cache.
@@ -1,4 +1,4 @@
package com.avaje.ebean.cache;
package io.ebean.cache;
/**
* The type of L2 caches.
@@ -1,10 +1,10 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.ExpressionList;
import com.avaje.ebean.bean.BeanCollection;
import com.avaje.ebean.bean.BeanCollectionLoader;
import com.avaje.ebean.bean.EntityBean;
import io.ebean.Ebean;
import io.ebean.ExpressionList;
import io.ebean.bean.BeanCollection;
import io.ebean.bean.BeanCollectionLoader;
import io.ebean.bean.EntityBean;
import javax.persistence.PersistenceException;
import java.util.Set;
@@ -1,9 +1,9 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.bean.BeanCollection;
import com.avaje.ebean.bean.BeanCollectionAdd;
import com.avaje.ebean.bean.BeanCollectionLoader;
import com.avaje.ebean.bean.EntityBean;
import io.ebean.bean.BeanCollection;
import io.ebean.bean.BeanCollectionAdd;
import io.ebean.bean.BeanCollectionLoader;
import io.ebean.bean.EntityBean;
import java.io.Serializable;
import java.util.ArrayList;
@@ -1,8 +1,8 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.bean.BeanCollection;
import com.avaje.ebean.bean.BeanCollectionLoader;
import com.avaje.ebean.bean.EntityBean;
import io.ebean.bean.BeanCollection;
import io.ebean.bean.BeanCollectionLoader;
import io.ebean.bean.EntityBean;
import java.util.Collection;
import java.util.Collections;
@@ -1,9 +1,9 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.bean.BeanCollection;
import com.avaje.ebean.bean.BeanCollectionAdd;
import com.avaje.ebean.bean.BeanCollectionLoader;
import com.avaje.ebean.bean.EntityBean;
import io.ebean.bean.BeanCollection;
import io.ebean.bean.BeanCollectionAdd;
import io.ebean.bean.BeanCollectionLoader;
import io.ebean.bean.EntityBean;
import java.io.Serializable;
import java.util.Collection;
@@ -1,6 +1,6 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.bean.BeanCollection;
import io.ebean.bean.BeanCollection;
import java.util.Collection;
import java.util.Iterator;
@@ -1,4 +1,4 @@
package com.avaje.ebean.common;
package io.ebean.common;
import java.io.Serializable;
import java.util.Collection;
@@ -1,6 +1,6 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.bean.BeanCollection;
import io.ebean.bean.BeanCollection;
import java.util.Iterator;
@@ -1,6 +1,6 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.bean.BeanCollection;
import io.ebean.bean.BeanCollection;
import java.util.Collection;
import java.util.List;
@@ -1,6 +1,6 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.bean.BeanCollection;
import io.ebean.bean.BeanCollection;
import java.util.ListIterator;
@@ -1,6 +1,6 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.bean.BeanCollection;
import io.ebean.bean.BeanCollection;
import java.util.Set;
@@ -1,7 +1,7 @@
package com.avaje.ebean.common;
package io.ebean.common;
import com.avaje.ebean.EbeanServer;
import com.avaje.ebean.config.ServerConfig;
import io.ebean.EbeanServer;
import io.ebean.config.ServerConfig;
/**
* Creates the EbeanServer implementations. This is used internally by the EbeanServerFactory and is not currently
@@ -1,6 +1,6 @@
package com.avaje.ebean.config;
package io.ebean.config;
import com.avaje.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DatabasePlatform;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Inheritance;
@@ -1,4 +1,4 @@
package com.avaje.ebean.config;
package io.ebean.config;
/**
* Defines the AutoTune behaviour for a EbeanServer.
@@ -1,6 +1,6 @@
package com.avaje.ebean.config;
package io.ebean.config;
import com.avaje.ebean.Query;
import io.ebean.Query;
/**
* The mode for determining if AutoTune will be used for a given query when
@@ -29,4 +29,4 @@ public enum AutoTuneMode {
*/
DEFAULT_ONIFEMPTY
}
}

Some files were not shown because too many files have changed in this diff Show More