You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/07/31 12:08:16 UTC
[1/5] cayenne git commit: Cleanup tests
Repository: cayenne
Updated Branches:
refs/heads/master 36e23224d -> e616dc140
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
index 1d6ae86..d74cffa 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
@@ -59,16 +59,15 @@ import java.util.Map;
import java.util.TreeMap;
/**
- * Default implementation of the AccessStack that has a single DataNode per
- * DataMap.
+ * Default implementation of the AccessStack that has a single DataNode per DataMap.
*/
public class SchemaBuilder {
- private static Logger logger = LoggerFactory.getLogger(SchemaBuilder.class);
+ private static final Logger logger = LoggerFactory.getLogger(SchemaBuilder.class);
public static final String SKIP_SCHEMA_KEY = "cayenneTestSkipSchemaCreation";
- private static String[] MAPS_REQUIRING_SCHEMA_SETUP = { "testmap.map.xml", "compound.map.xml",
+ private static final String[] MAPS_REQUIRING_SCHEMA_SETUP = { "testmap.map.xml", "compound.map.xml",
"misc-types.map.xml", "things.map.xml", "numeric-types.map.xml", "binary-pk.map.xml", "no-pk.map.xml",
"lob.map.xml", "date-time.map.xml", "enum.map.xml", "extended-type.map.xml", "generated.map.xml",
"mixed-persistence-strategy.map.xml", "people.map.xml", "primitive.map.xml", "inheritance.map.xml",
@@ -146,7 +145,7 @@ public class SchemaBuilder {
}
}
- private void initNode(DataMap map) throws Exception {
+ private void initNode(DataMap map) {
DataNode node = new DataNode(map.getName());
node.setJdbcEventLogger(jdbcEventLogger);
@@ -182,7 +181,7 @@ public class SchemaBuilder {
return;
}
- List<DbEntity> entitiesToRemove = new ArrayList<DbEntity>();
+ List<DbEntity> entitiesToRemove = new ArrayList<>();
for (DbEntity ent : map.getDbEntities()) {
for (DbAttribute attr : ent.getAttributes()) {
@@ -239,7 +238,7 @@ public class SchemaBuilder {
* Helper method that orders DbEntities to satisfy referential constraints
* and returns an ordered list.
*/
- private List<DbEntity> dbEntitiesInInsertOrder(DataNode node, DataMap map) {
+ private List<DbEntity> dbEntitiesInInsertOrder(DataMap map) {
TreeMap<String, DbEntity> dbEntityMap = new TreeMap<>(map.getDbEntityMap());
List<DbEntity> entities = new ArrayList<>(dbEntityMap.values());
@@ -260,6 +259,7 @@ public class SchemaBuilder {
return entities;
}
+ // This seems actually unused for some time now (from 2014 to 2018), and caused no trouble
private void dbEntitiesFilter(List<DbEntity> entities) {
// filter various unsupported tests...
@@ -268,7 +268,7 @@ public class SchemaBuilder {
boolean excludeBinPK = !unitDbAdapter.supportsBinaryPK();
if (excludeLOB || excludeBinPK) {
- List<DbEntity> filtered = new ArrayList<DbEntity>();
+ List<DbEntity> filtered = new ArrayList<>();
for (DbEntity ent : entities) {
@@ -320,23 +320,21 @@ public class SchemaBuilder {
private void dropSchema(DataNode node, DataMap map) throws Exception {
- List<DbEntity> list = dbEntitiesInInsertOrder(node, map);
+ List<DbEntity> list = dbEntitiesInInsertOrder(map);
- try (Connection conn = dataSourceFactory.getSharedDataSource().getConnection();) {
+ try (Connection conn = dataSourceFactory.getSharedDataSource().getConnection()) {
DatabaseMetaData md = conn.getMetaData();
List<String> allTables = new ArrayList<>();
try (ResultSet tables = md.getTables(null, null, "%", null)) {
while (tables.next()) {
- // 'toUpperCase' is needed since most databases
- // are case insensitive, and some will convert names to
- // lower
- // case
- // (PostgreSQL)
+ // 'toUpperCase' is needed since most databases are case insensitive,
+ // and some will convert names to lower case (e.g. PostgreSQL)
String name = tables.getString("TABLE_NAME");
- if (name != null)
+ if (name != null) {
allTables.add(name.toUpperCase());
+ }
}
}
@@ -368,20 +366,20 @@ public class SchemaBuilder {
}
private void dropPKSupport(DataNode node, DataMap map) throws Exception {
- List<DbEntity> filteredEntities = dbEntitiesInInsertOrder(node, map);
+ List<DbEntity> filteredEntities = dbEntitiesInInsertOrder(map);
node.getAdapter().getPkGenerator().dropAutoPk(node, filteredEntities);
}
private void createPKSupport(DataNode node, DataMap map) throws Exception {
- List<DbEntity> filteredEntities = dbEntitiesInInsertOrder(node, map);
+ List<DbEntity> filteredEntities = dbEntitiesInInsertOrder(map);
node.getAdapter().getPkGenerator().createAutoPk(node, filteredEntities);
}
private void createSchema(DataNode node, DataMap map) throws Exception {
- try (Connection conn = dataSourceFactory.getSharedDataSource().getConnection();) {
+ try (Connection conn = dataSourceFactory.getSharedDataSource().getConnection()) {
unitDbAdapter.willCreateTables(conn, map);
- try (Statement stmt = conn.createStatement();) {
+ try (Statement stmt = conn.createStatement()) {
for (String query : tableCreateQueries(node, map)) {
logger.info(query);
@@ -395,12 +393,12 @@ public class SchemaBuilder {
/**
* Returns iterator of preprocessed table create queries.
*/
- private Collection<String> tableCreateQueries(DataNode node, DataMap map) throws Exception {
+ private Collection<String> tableCreateQueries(DataNode node, DataMap map) {
DbAdapter adapter = node.getAdapter();
DbGenerator gen = new DbGenerator(adapter, map, null, domain, jdbcEventLogger);
- List<DbEntity> orderedEnts = dbEntitiesInInsertOrder(node, map);
- List<String> queries = new ArrayList<String>();
+ List<DbEntity> orderedEnts = dbEntitiesInInsertOrder(map);
+ List<String> queries = new ArrayList<>();
// table definitions
for (DbEntity ent : orderedEnts) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
index 8689bb8..32d1dcc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
@@ -42,8 +42,8 @@ import static org.junit.Assert.assertSame;
/**
* Testing qualifier translator correctness on reflexive relationships.
*/
-// TODO: this is really a qualifier translator general test... need to
-// find an appropriate place in unit tests..
+// TODO: this is really a qualifier translator general test...
+// need to find an appropriate place in unit tests..
@UseServerRuntime(CayenneProjects.RELATIONSHIPS_PROJECT)
public class CAY_194IT extends ServerCase {
@@ -78,15 +78,12 @@ public class CAY_194IT extends ServerCase {
context.commitChanges();
Expression qualifier = ExpressionFactory.matchExp("children", o2);
- List<?> parents = context.performQuery(new SelectQuery(
- ReflexiveAndToOne.class,
- qualifier));
+ List<?> parents = SelectQuery.query(ReflexiveAndToOne.class, qualifier).select(context);
assertEquals(1, parents.size());
assertSame(o1, parents.get(0));
qualifier = ExpressionFactory.matchExp("children", o1);
- parents = context
- .performQuery(new SelectQuery(ReflexiveAndToOne.class, qualifier));
+ parents = SelectQuery.query(ReflexiveAndToOne.class, qualifier).select(context);
assertEquals(0, parents.size());
}
@@ -105,9 +102,7 @@ public class CAY_194IT extends ServerCase {
context.commitChanges();
Expression qualifier = ExpressionFactory.matchExp("toParent", o1);
- List<?> children = context.performQuery(new SelectQuery(
- ReflexiveAndToOne.class,
- qualifier));
+ List<ReflexiveAndToOne> children = SelectQuery.query(ReflexiveAndToOne.class, qualifier).select(context);
assertEquals(1, children.size());
assertSame(o2, children.get(0));
[2/5] cayenne git commit: Cleanup tests
Posted by nt...@apache.org.
Cleanup tests
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/0a83ab70
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/0a83ab70
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/0a83ab70
Branch: refs/heads/master
Commit: 0a83ab70a386933a47d749f09dd52fab2d664a1b
Parents: 36e2322
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Jul 31 14:55:00 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Tue Jul 31 14:55:00 2018 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/CDOOneToManyFKIT.java | 17 +-
.../access/DataContextCompoundRelIT.java | 64 ++--
.../DataContextDisjointByIdPrefetchIT.java | 108 +++----
...ataContextDisjointByIdPrefetch_ExtrasIT.java | 228 +++++++------
.../access/DataContextEJBQLFetchJoinIT.java | 316 +++++++++----------
.../DataContextFlattenedAttributesIT.java | 43 +--
.../access/DataContextJoinAliasesIT.java | 10 +-
.../cayenne/access/DataContextOrderingIT.java | 3 +-
.../cayenne/access/DataContextOuterJoinsIT.java | 10 +-
.../DataContextSelectQuerySplitAliasesIT.java | 8 +-
.../apache/cayenne/access/DeleteObjectIT.java | 3 +-
.../cayenne/access/QuotedIdentifiersIT.java | 94 ++++--
.../cayenne/access/ReturnTypesMappingIT.java | 8 +-
.../configuration/xml/BaseHandlerTest.java | 2 +-
.../cayenne/dba/DefaultQuotingStrategyTest.java | 4 +-
.../apache/cayenne/query/SelectQueryClobIT.java | 8 +-
.../org/apache/cayenne/query/SelectQueryIT.java | 8 +-
.../cayenne/unit/di/server/SchemaBuilder.java | 44 ++-
.../org/apache/cayenne/unit/jira/CAY_194IT.java | 15 +-
19 files changed, 475 insertions(+), 518 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java
index a442452..2f02a14 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java
@@ -33,8 +33,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
-// TODO: this mapping scenario is really unsupported ... this is just an attempt at
-// partial solution
+// TODO: this mapping scenario is really unsupported ... this is just an attempt at partial solution
@UseServerRuntime(CayenneProjects.RELATIONSHIPS_TO_MANY_FK_PROJECT)
public class CDOOneToManyFKIT extends ServerCase {
@@ -42,17 +41,17 @@ public class CDOOneToManyFKIT extends ServerCase {
protected DataContext context;
@Test
- public void testReadRelationship() throws Exception {
+ public void testReadRelationship() {
ToManyRoot2 src2 = context.newObject(ToManyRoot2.class);
ToManyFkRoot src = context.newObject(ToManyFkRoot.class);
// this should go away when such mapping becomes fully supported
- src.setDepId(new Integer(1));
+ src.setDepId(1);
ToManyFkDep target = context.newObject(ToManyFkDep.class);
// this should go away when such mapping becomes fully supported
- target.setDepId(new Integer(1));
+ target.setDepId(1);
target.setRoot2(src2);
src.addToDeps(target);
@@ -60,17 +59,15 @@ public class CDOOneToManyFKIT extends ServerCase {
context.invalidateObjects(src, target, src2);
- ToManyFkRoot src1 = (ToManyFkRoot) Cayenne
- .objectForPK(context, src.getObjectId());
+ ToManyFkRoot src1 = (ToManyFkRoot) Cayenne.objectForPK(context, src.getObjectId());
assertNotNull(src1.getDeps());
assertEquals(1, src1.getDeps().size());
// resolve HOLLOW
- assertSame(src1, ((ToManyFkDep) src1.getDeps().get(0)).getRoot());
+ assertSame(src1, src1.getDeps().get(0).getRoot());
context.invalidateObjects(src1, src1.getDeps().get(0));
- ToManyFkDep target2 = (ToManyFkDep) Cayenne.objectForPK(context, target
- .getObjectId());
+ ToManyFkDep target2 = (ToManyFkDep) Cayenne.objectForPK(context, target.getObjectId());
assertNotNull(target2.getRoot());
// resolve HOLLOW
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
index be2041f..c7eaa20 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
@@ -48,9 +48,9 @@ public class DataContextCompoundRelIT extends ServerCase {
@Test
public void testInsert() {
-
CompoundPkTestEntity master = context.newObject(CompoundPkTestEntity.class);
CompoundFkTestEntity detail = context.newObject(CompoundFkTestEntity.class);
+
master.addToCompoundFkArray(detail);
master.setName("m1");
master.setKey1("key11");
@@ -60,30 +60,24 @@ public class DataContextCompoundRelIT extends ServerCase {
context.commitChanges();
context.invalidateObjects(master, detail);
- SelectQuery q = new SelectQuery(CompoundPkTestEntity.class);
- List<?> objs = context1.performQuery(q);
- assertEquals(1, objs.size());
+ SelectQuery<CompoundPkTestEntity> q = SelectQuery.query(CompoundPkTestEntity.class);
+ List<CompoundPkTestEntity> objs = q.select(context1);
- master = (CompoundPkTestEntity) objs.get(0);
- assertEquals("m1", master.getName());
+ assertEquals(1, objs.size());
+ assertEquals("m1", objs.get(0).getName());
- List<?> details = master.getCompoundFkArray();
+ List<CompoundFkTestEntity> details = objs.get(0).getCompoundFkArray();
assertEquals(1, details.size());
- detail = (CompoundFkTestEntity) details.get(0);
-
- assertEquals("d1", detail.getName());
+ assertEquals("d1", details.get(0).getName());
}
@Test
public void testFetchQualifyingToOne() {
- CompoundPkTestEntity master = (CompoundPkTestEntity) context
- .newObject("CompoundPkTestEntity");
- CompoundPkTestEntity master1 = (CompoundPkTestEntity) context
- .newObject("CompoundPkTestEntity");
- CompoundFkTestEntity detail = (CompoundFkTestEntity) context
- .newObject("CompoundFkTestEntity");
- CompoundFkTestEntity detail1 = (CompoundFkTestEntity) context
- .newObject("CompoundFkTestEntity");
+ CompoundPkTestEntity master = context.newObject(CompoundPkTestEntity.class);
+ CompoundPkTestEntity master1 = context.newObject(CompoundPkTestEntity.class);
+ CompoundFkTestEntity detail = context.newObject(CompoundFkTestEntity.class);
+ CompoundFkTestEntity detail1 = context.newObject(CompoundFkTestEntity.class);
+
master.addToCompoundFkArray(detail);
master1.addToCompoundFkArray(detail1);
@@ -96,31 +90,26 @@ public class DataContextCompoundRelIT extends ServerCase {
master1.setKey2("key22");
detail.setName("d1");
-
detail1.setName("d2");
context.commitChanges();
context.invalidateObjects(master, master1, detail, detail1);
Expression qual = ExpressionFactory.matchExp("toCompoundPk", master);
- SelectQuery q = new SelectQuery(CompoundFkTestEntity.class, qual);
- List<?> objs = context1.performQuery(q);
- assertEquals(1, objs.size());
+ SelectQuery<CompoundFkTestEntity> q = SelectQuery.query(CompoundFkTestEntity.class, qual);
+ List<CompoundFkTestEntity> objs = q.select(context1);
- detail = (CompoundFkTestEntity) objs.get(0);
- assertEquals("d1", detail.getName());
+ assertEquals(1, objs.size());
+ assertEquals("d1", objs.get(0).getName());
}
@Test
- public void testFetchQualifyingToMany() throws Exception {
- CompoundPkTestEntity master = (CompoundPkTestEntity) context
- .newObject("CompoundPkTestEntity");
- CompoundPkTestEntity master1 = (CompoundPkTestEntity) context
- .newObject("CompoundPkTestEntity");
- CompoundFkTestEntity detail = (CompoundFkTestEntity) context
- .newObject("CompoundFkTestEntity");
- CompoundFkTestEntity detail1 = (CompoundFkTestEntity) context
- .newObject("CompoundFkTestEntity");
+ public void testFetchQualifyingToMany() {
+ CompoundPkTestEntity master = context.newObject(CompoundPkTestEntity.class);
+ CompoundPkTestEntity master1 = context.newObject(CompoundPkTestEntity.class);
+ CompoundFkTestEntity detail = context.newObject(CompoundFkTestEntity.class);
+ CompoundFkTestEntity detail1 = context.newObject(CompoundFkTestEntity.class);
+
master.addToCompoundFkArray(detail);
master1.addToCompoundFkArray(detail1);
@@ -140,11 +129,10 @@ public class DataContextCompoundRelIT extends ServerCase {
context.invalidateObjects(master, master1, detail, detail1);
Expression qual = ExpressionFactory.matchExp("compoundFkArray", detail1);
- SelectQuery q = new SelectQuery(CompoundPkTestEntity.class, qual);
- List<?> objs = context1.performQuery(q);
- assertEquals(1, objs.size());
+ SelectQuery<CompoundPkTestEntity> q = SelectQuery.query(CompoundPkTestEntity.class, qual);
+ List<CompoundPkTestEntity> objs = q.select(context1);
- master = (CompoundPkTestEntity) objs.get(0);
- assertEquals("m2", master.getName());
+ assertEquals(1, objs.size());
+ assertEquals("m2", objs.get(0).getName());
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
index 57831f5..2dd4c15 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
@@ -29,7 +29,6 @@ import org.apache.cayenne.testdo.testmap.Artist;
import org.apache.cayenne.testdo.testmap.Painting;
import org.apache.cayenne.testdo.testmap.PaintingInfo;
import org.apache.cayenne.unit.di.DataChannelInterceptor;
-import org.apache.cayenne.unit.di.UnitTestClosure;
import org.apache.cayenne.unit.di.server.CayenneProjects;
import org.apache.cayenne.unit.di.server.ServerCase;
import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -115,29 +114,27 @@ public class DataContextDisjointByIdPrefetchIT extends ServerCase {
public void testOneToMany() throws Exception {
createArtistWithTwoPaintingsDataSet();
- SelectQuery query = new SelectQuery(Artist.class);
+ SelectQuery<Artist> query = SelectQuery.query(Artist.class);
query.addPrefetch(Artist.PAINTING_ARRAY.disjointById());
-
- final List<Artist> result = context.performQuery(query);
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
- assertFalse(result.isEmpty());
- Artist b1 = result.get(0);
- List<Painting> toMany = (List<Painting>) b1.readPropertyDirectly(Artist.PAINTING_ARRAY.getName());
- assertNotNull(toMany);
- assertFalse(((ValueHolder) toMany).isFault());
- assertEquals(2, toMany.size());
-
- List<String> names = new ArrayList<String>();
- for (Painting b : toMany) {
- assertEquals(PersistenceState.COMMITTED, b.getPersistenceState());
- names.add(b.getPaintingTitle());
- }
-
- assertTrue(names.contains("Y1"));
- assertTrue(names.contains("Y2"));
+ List<Artist> result = query.select(context);
+
+ queryInterceptor.runWithQueriesBlocked(() -> {
+ assertFalse(result.isEmpty());
+ Artist b1 = result.get(0);
+ @SuppressWarnings("unchecked")
+ List<Painting> toMany = (List<Painting>) b1.readPropertyDirectly(Artist.PAINTING_ARRAY.getName());
+ assertNotNull(toMany);
+ assertFalse(((ValueHolder) toMany).isFault());
+ assertEquals(2, toMany.size());
+
+ List<String> names = new ArrayList<>();
+ for (Painting b : toMany) {
+ assertEquals(PersistenceState.COMMITTED, b.getPersistenceState());
+ names.add(b.getPaintingTitle());
}
+
+ assertTrue(names.contains("Y1"));
+ assertTrue(names.contains("Y2"));
});
}
@@ -145,19 +142,16 @@ public class DataContextDisjointByIdPrefetchIT extends ServerCase {
public void testManyToOne() throws Exception {
createArtistWithTwoPaintingsDataSet();
- SelectQuery query = new SelectQuery(Painting.class);
+ SelectQuery<Painting> query = SelectQuery.query(Painting.class);
query.addPrefetch(Painting.TO_ARTIST.disjointById());
- final List<Painting> result = context.performQuery(query);
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
- assertFalse(result.isEmpty());
- Painting b1 = result.get(0);
- assertNotNull(b1.getToArtist());
- assertEquals(PersistenceState.COMMITTED, b1.getToArtist().getPersistenceState());
- assertEquals("X", b1.getToArtist().getArtistName());
- }
+ final List<Painting> result = query.select(context);
+ queryInterceptor.runWithQueriesBlocked(() -> {
+ assertFalse(result.isEmpty());
+ Painting b1 = result.get(0);
+ assertNotNull(b1.getToArtist());
+ assertEquals(PersistenceState.COMMITTED, b1.getToArtist().getPersistenceState());
+ assertEquals("X", b1.getToArtist().getArtistName());
});
}
@@ -165,7 +159,7 @@ public class DataContextDisjointByIdPrefetchIT extends ServerCase {
public void testFetchLimit() throws Exception {
createThreeArtistsWithPlentyOfPaintingsDataSet();
- final SelectQuery query = new SelectQuery(Artist.class);
+ SelectQuery<Artist> query = SelectQuery.query(Artist.class);
query.addPrefetch(Artist.PAINTING_ARRAY.disjointById());
query.addOrdering("db:" + Artist.ARTIST_ID_PK_COLUMN, SortOrder.ASCENDING);
@@ -174,22 +168,19 @@ public class DataContextDisjointByIdPrefetchIT extends ServerCase {
// There will be only 2 bags in a result. The first bag has 5 boxes and
// the second has 2. So we are expecting exactly 9 snapshots in the data
// row store after performing the query.
- final List<Artist> bags = context.performQuery(query);
+ final List<Artist> bags = query.select(context);
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
+ queryInterceptor.runWithQueriesBlocked(() -> {
- public void execute() {
+ assertEquals(2, bags.size());
- assertEquals(2, bags.size());
+ assertEquals(5, bags.get(0).getPaintingArray().size());
+ assertEquals(2, bags.get(1).getPaintingArray().size());
- assertEquals(5, bags.get(0).getPaintingArray().size());
- assertEquals(2, bags.get(1).getPaintingArray().size());
-
- for (Artist b : bags) {
- b.getArtistName();
- for (Painting bx : b.getPaintingArray()) {
- bx.getPaintingTitle();
- }
+ for (Artist b : bags) {
+ b.getArtistName();
+ for (Painting bx : b.getPaintingArray()) {
+ bx.getPaintingTitle();
}
}
});
@@ -199,22 +190,19 @@ public class DataContextDisjointByIdPrefetchIT extends ServerCase {
public void testOneToOneRelationship() throws Exception {
createTwoPaintingsWithInfosDataSet();
- SelectQuery query = new SelectQuery(Painting.class);
+ SelectQuery<Painting> query = SelectQuery.query(Painting.class);
query.addPrefetch(Painting.TO_PAINTING_INFO.disjointById());
- final List<Painting> result = context.performQuery(query);
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
- assertFalse(result.isEmpty());
- List<String> boxColors = new ArrayList<String>();
- for (Painting box : result) {
- PaintingInfo info = (PaintingInfo) box.readPropertyDirectly(Painting.TO_PAINTING_INFO.getName());
- assertNotNull(info);
- boxColors.add(info.getTextReview());
- assertEquals(PersistenceState.COMMITTED, info.getPersistenceState());
- }
- assertTrue(boxColors.containsAll(Arrays.asList("red", "green")));
+ final List<Painting> result = query.select(context);
+ queryInterceptor.runWithQueriesBlocked(() -> {
+ assertFalse(result.isEmpty());
+ List<String> boxColors = new ArrayList<>();
+ for (Painting box : result) {
+ PaintingInfo info = (PaintingInfo) box.readPropertyDirectly(Painting.TO_PAINTING_INFO.getName());
+ assertNotNull(info);
+ boxColors.add(info.getTextReview());
+ assertEquals(PersistenceState.COMMITTED, info.getPersistenceState());
}
+ assertTrue(boxColors.containsAll(Arrays.asList("red", "green")));
});
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
index 44b2060..1ec7722 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
@@ -30,7 +30,6 @@ import org.apache.cayenne.testdo.things.Ball;
import org.apache.cayenne.testdo.things.Box;
import org.apache.cayenne.testdo.things.Thing;
import org.apache.cayenne.unit.di.DataChannelInterceptor;
-import org.apache.cayenne.unit.di.UnitTestClosure;
import org.apache.cayenne.unit.di.server.CayenneProjects;
import org.apache.cayenne.unit.di.server.ServerCase;
import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -41,6 +40,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import static org.hamcrest.CoreMatchers.hasItems;
import static org.junit.Assert.*;
@UseServerRuntime(CayenneProjects.THINGS_PROJECT)
@@ -123,27 +123,26 @@ public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
public void testFlattenedRelationship() throws Exception {
createBagWithTwoBoxesAndPlentyOfBallsDataSet();
- SelectQuery query = new SelectQuery(Bag.class);
+ SelectQuery<Bag> query = SelectQuery.query(Bag.class);
query.addPrefetch(Bag.BALLS.disjointById());
- final List<Bag> result = context.performQuery(query);
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
- assertFalse(result.isEmpty());
- Bag b1 = result.get(0);
- List<Ball> balls = (List<Ball>) b1.readPropertyDirectly(Bag.BALLS.getName());
- assertNotNull(balls);
- assertFalse(((ValueHolder) balls).isFault());
- assertEquals(6, balls.size());
-
- List<Integer> volumes = new ArrayList<Integer>();
- for (Ball b : balls) {
- assertEquals(PersistenceState.COMMITTED, b.getPersistenceState());
- volumes.add(b.getThingVolume());
- }
- assertTrue(volumes.containsAll(Arrays.asList(10, 20, 30, 40, 20, 40)));
+ final List<Bag> result = query.select(context);
+
+ queryInterceptor.runWithQueriesBlocked(() -> {
+ assertFalse(result.isEmpty());
+ Bag b1 = result.get(0);
+ @SuppressWarnings("unchecked")
+ List<Ball> balls = (List<Ball>) b1.readPropertyDirectly(Bag.BALLS.getName());
+ assertNotNull(balls);
+ assertFalse(((ValueHolder) balls).isFault());
+ assertEquals(6, balls.size());
+
+ List<Integer> volumes = new ArrayList<>();
+ for (Ball b : balls) {
+ assertEquals(PersistenceState.COMMITTED, b.getPersistenceState());
+ volumes.add(b.getThingVolume());
}
+ assertThat(volumes, hasItems(10, 20, 30, 40, 20, 40));
});
}
@@ -151,27 +150,25 @@ public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
public void testFlattenedMultiColumnRelationship() throws Exception {
createBagWithTwoBoxesAndPlentyOfBallsDataSet();
- SelectQuery query = new SelectQuery(Box.class);
+ SelectQuery<Box> query = new SelectQuery<>(Box.class);
query.addPrefetch(Box.THINGS.disjointById());
- final List<Box> result = context.performQuery(query);
-
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
- assertFalse(result.isEmpty());
- List<Integer> volumes = new ArrayList<Integer>();
- for (Box box : result) {
- List<Thing> things = (List<Thing>) box.readPropertyDirectly(Box.THINGS.getName());
- assertNotNull(things);
- assertFalse(((ValueHolder) things).isFault());
- for (Thing t : things) {
- assertEquals(PersistenceState.COMMITTED, t.getPersistenceState());
- volumes.add(t.getVolume());
- }
+ final List<Box> result = query.select(context);
+
+ queryInterceptor.runWithQueriesBlocked(() -> {
+ assertFalse(result.isEmpty());
+ List<Integer> volumes = new ArrayList<>();
+ for (Box box : result) {
+ @SuppressWarnings("unchecked")
+ List<Thing> things = (List<Thing>) box.readPropertyDirectly(Box.THINGS.getName());
+ assertNotNull(things);
+ assertFalse(((ValueHolder) things).isFault());
+ for (Thing t : things) {
+ assertEquals(PersistenceState.COMMITTED, t.getPersistenceState());
+ volumes.add(t.getVolume());
}
- assertEquals(6, volumes.size());
- assertTrue(volumes.containsAll(Arrays.asList(10, 20, 30, 40)));
}
+ assertEquals(6, volumes.size());
+ assertTrue(volumes.containsAll(Arrays.asList(10, 20, 30, 40)));
});
}
@@ -179,27 +176,25 @@ public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
public void testLongFlattenedRelationship() throws Exception {
createBagWithTwoBoxesAndPlentyOfBallsDataSet();
- SelectQuery query = new SelectQuery(Bag.class);
+ SelectQuery<Bag> query = new SelectQuery<>(Bag.class);
query.addPrefetch(Bag.THINGS.disjointById());
- final List<Bag> result = context.performQuery(query);
-
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
- assertFalse(result.isEmpty());
- Bag b1 = result.get(0);
- List<Thing> things = (List<Thing>) b1.readPropertyDirectly(Bag.THINGS.getName());
- assertNotNull(things);
- assertFalse(((ValueHolder) things).isFault());
- assertEquals(6, things.size());
-
- List<Integer> volumes = new ArrayList<Integer>();
- for (Thing t : things) {
- assertEquals(PersistenceState.COMMITTED, t.getPersistenceState());
- volumes.add(t.getVolume());
- }
- assertTrue(volumes.containsAll(Arrays.asList(10, 20, 20, 30, 40, 40)));
+ final List<Bag> result = query.select(context);
+
+ queryInterceptor.runWithQueriesBlocked(() -> {
+ assertFalse(result.isEmpty());
+ Bag b1 = result.get(0);
+ @SuppressWarnings("unchecked")
+ List<Thing> things = (List<Thing>) b1.readPropertyDirectly(Bag.THINGS.getName());
+ assertNotNull(things);
+ assertFalse(((ValueHolder) things).isFault());
+ assertEquals(6, things.size());
+
+ List<Integer> volumes = new ArrayList<>();
+ for (Thing t : things) {
+ assertEquals(PersistenceState.COMMITTED, t.getPersistenceState());
+ volumes.add(t.getVolume());
}
+ assertTrue(volumes.containsAll(Arrays.asList(10, 20, 20, 30, 40, 40)));
});
}
@@ -207,22 +202,19 @@ public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
public void testMultiColumnRelationship() throws Exception {
createBagWithTwoBoxesAndPlentyOfBallsDataSet();
- SelectQuery query = new SelectQuery(Ball.class);
+ SelectQuery<Ball> query = SelectQuery.query(Ball.class);
query.orQualifier(Ball.THING_VOLUME.eq(40).andExp(Ball.THING_WEIGHT.eq(30)));
query.orQualifier(Ball.THING_VOLUME.eq(20).andExp(Ball.THING_WEIGHT.eq(10)));
query.addPrefetch(Ball.THING.disjointById());
- final List<Ball> balls = context.performQuery(query);
-
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
+ final List<Ball> balls = query.select(context);
- public void execute() {
-
- assertEquals(2, balls.size());
-
- balls.get(0).getThing().getVolume();
- balls.get(1).getThing().getVolume();
+ queryInterceptor.runWithQueriesBlocked(() -> {
+ assertEquals(2, balls.size());
+ for(Ball next : balls) {
+ assertNotNull(balls.get(0).getThing());
+ next.getThing().getVolume();
}
});
}
@@ -231,30 +223,28 @@ public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
public void testJointPrefetchInParent() throws Exception {
createBagWithTwoBoxesAndPlentyOfBallsDataSet();
- SelectQuery query = new SelectQuery(Box.class);
+ SelectQuery<Box> query = new SelectQuery<>(Box.class);
query.addPrefetch(Box.BALLS.disjointById());
query.addPrefetch(Box.BALLS.dot(Ball.THING).disjointById());
- final List<Box> result = context.performQuery(query);
-
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
- assertFalse(result.isEmpty());
- List<Integer> volumes = new ArrayList<Integer>();
- for (Box box : result) {
- List<Ball> balls = (List<Ball>) box.readPropertyDirectly(Box.BALLS.getName());
- assertNotNull(balls);
- assertFalse(((ValueHolder) balls).isFault());
- for (Ball ball : balls) {
- Thing thing = (Thing) ball.readPropertyDirectly(Ball.THING.getName());
- assertNotNull(thing);
- assertEquals(PersistenceState.COMMITTED, thing.getPersistenceState());
- volumes.add(thing.getVolume());
- }
+ final List<Box> result = query.select(context);
+
+ queryInterceptor.runWithQueriesBlocked(() -> {
+ assertFalse(result.isEmpty());
+ List<Integer> volumes = new ArrayList<>();
+ for (Box box : result) {
+ @SuppressWarnings("unchecked")
+ List<Ball> balls = (List<Ball>) box.readPropertyDirectly(Box.BALLS.getName());
+ assertNotNull(balls);
+ assertFalse(((ValueHolder) balls).isFault());
+ for (Ball ball : balls) {
+ Thing thing = (Thing) ball.readPropertyDirectly(Ball.THING.getName());
+ assertNotNull(thing);
+ assertEquals(PersistenceState.COMMITTED, thing.getPersistenceState());
+ volumes.add(thing.getVolume());
}
- assertEquals(6, volumes.size());
- assertTrue(volumes.containsAll(Arrays.asList(10, 20, 30, 40)));
}
+ assertEquals(6, volumes.size());
+ assertTrue(volumes.containsAll(Arrays.asList(10, 20, 30, 40)));
});
}
@@ -262,46 +252,44 @@ public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
public void testJointPrefetchInChild() throws Exception {
createBagWithTwoBoxesAndPlentyOfBallsDataSet();
- SelectQuery<Bag> query = new SelectQuery<Bag>(Bag.class);
+ SelectQuery<Bag> query = new SelectQuery<>(Bag.class);
query.addPrefetch(Bag.BOXES.disjointById());
query.addPrefetch(Bag.BOXES.dot(Box.BALLS).joint());
final List<Bag> result = context.select(query);
- queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
-
- @Override
- public void execute() {
- assertFalse(result.isEmpty());
-
- Bag bag = result.get(0);
- List<Box> boxes = (List<Box>) bag.readPropertyDirectly(Bag.BOXES.getName());
- assertNotNull(boxes);
- assertFalse(((ValueHolder) boxes).isFault());
- assertEquals(2, boxes.size());
-
- Box big = null;
- List<String> names = new ArrayList<String>();
- for (Box box : boxes) {
- assertEquals(PersistenceState.COMMITTED, box.getPersistenceState());
- names.add(box.getName());
- if (box.getName().equals("big")) {
- big = box;
- }
+ queryInterceptor.runWithQueriesBlocked(() -> {
+ assertFalse(result.isEmpty());
+
+ Bag bag = result.get(0);
+ @SuppressWarnings("unchecked")
+ List<Box> boxes = (List<Box>) bag.readPropertyDirectly(Bag.BOXES.getName());
+ assertNotNull(boxes);
+ assertFalse(((ValueHolder) boxes).isFault());
+ assertEquals(2, boxes.size());
+
+ Box big = null;
+ List<String> names = new ArrayList<>();
+ for (Box box : boxes) {
+ assertEquals(PersistenceState.COMMITTED, box.getPersistenceState());
+ names.add(box.getName());
+ if (box.getName().equals("big")) {
+ big = box;
}
- assertTrue(names.contains("big"));
- assertTrue(names.contains("small"));
-
- List<Ball> balls = (List<Ball>) big.readPropertyDirectly(Box.BALLS.getName());
- assertNotNull(balls);
- assertFalse(((ValueHolder) balls).isFault());
- assertEquals(2, balls.size());
- List<Integer> volumes = new ArrayList<Integer>();
- for (Ball ball : balls) {
- assertEquals(PersistenceState.COMMITTED, ball.getPersistenceState());
- volumes.add(ball.getThingVolume());
- }
- assertTrue(volumes.containsAll(Arrays.asList(10, 20)));
}
+ assertTrue(names.contains("big"));
+ assertTrue(names.contains("small"));
+
+ @SuppressWarnings("unchecked")
+ List<Ball> balls = (List<Ball>) big.readPropertyDirectly(Box.BALLS.getName());
+ assertNotNull(balls);
+ assertFalse(((ValueHolder) balls).isFault());
+ assertEquals(2, balls.size());
+ List<Integer> volumes = new ArrayList<>();
+ for (Ball ball : balls) {
+ assertEquals(PersistenceState.COMMITTED, ball.getPersistenceState());
+ volumes.add(ball.getThingVolume());
+ }
+ assertTrue(volumes.containsAll(Arrays.asList(10, 20)));
});
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
index f802a6d..e55a54a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
@@ -128,25 +128,21 @@ public class DataContextEJBQLFetchJoinIT extends ServerCase {
final List<?> objects = context.performQuery(query);
- queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
+ queryBlocker.runWithQueriesBlocked(() -> {
- public void execute() {
+ assertEquals(2, objects.size());
- assertEquals(2, objects.size());
+ for (Object object : objects) {
+ Artist a = (Artist) object;
+ List<Painting> list = a.getPaintingArray();
- Iterator<?> it = objects.iterator();
- while (it.hasNext()) {
- Artist a = (Artist) it.next();
- List<Painting> list = a.getPaintingArray();
+ assertNotNull(list);
+ assertFalse(((ValueHolder) list).isFault());
- assertNotNull(list);
- assertFalse(((ValueHolder) list).isFault());
-
- for (Painting p : list) {
- assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
- // make sure properties are not null..
- assertNotNull(p.getPaintingTitle());
- }
+ for (Painting p : list) {
+ assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+ // make sure properties are not null..
+ assertNotNull(p.getPaintingTitle());
}
}
});
@@ -164,46 +160,38 @@ public class DataContextEJBQLFetchJoinIT extends ServerCase {
final List<?> objects = context.performQuery(query);
- queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
-
- assertEquals(1, objects.size());
+ queryBlocker.runWithQueriesBlocked(() -> {
- Artist a = (Artist) objects.get(0);
- assertEquals("A1", a.getArtistName());
+ assertEquals(1, objects.size());
- List<Painting> paintings = a.getPaintingArray();
+ Artist a = (Artist) objects.get(0);
+ assertEquals("A1", a.getArtistName());
- assertNotNull(paintings);
- assertFalse(((ValueHolder) paintings).isFault());
- assertEquals(2, paintings.size());
+ List<Painting> paintings = a.getPaintingArray();
- List<String> expectedPaintingsNames = new ArrayList<String>();
- expectedPaintingsNames.add("P11");
- expectedPaintingsNames.add("P12");
+ assertNotNull(paintings);
+ assertFalse(((ValueHolder) paintings).isFault());
+ assertEquals(2, paintings.size());
- Iterator<Painting> paintingsIterator = paintings.iterator();
- while (paintingsIterator.hasNext()) {
- Painting p = paintingsIterator.next();
- assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
- assertNotNull(p.getPaintingTitle());
- assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
- }
+ List<String> expectedPaintingsNames = new ArrayList<>();
+ expectedPaintingsNames.add("P11");
+ expectedPaintingsNames.add("P12");
- List<ArtistExhibit> exibits = a.getArtistExhibitArray();
+ for (Painting p : paintings) {
+ assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+ assertNotNull(p.getPaintingTitle());
+ assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
+ }
- assertNotNull(exibits);
- assertFalse(((ValueHolder) exibits).isFault());
- assertEquals(2, exibits.size());
+ List<ArtistExhibit> exibits = a.getArtistExhibitArray();
- Iterator<ArtistExhibit> exibitsIterator = exibits.iterator();
- while (exibitsIterator.hasNext()) {
- ArtistExhibit ae = exibitsIterator.next();
- assertEquals(PersistenceState.COMMITTED, ae.getPersistenceState());
- assertNotNull(ae.getObjectId());
+ assertNotNull(exibits);
+ assertFalse(((ValueHolder) exibits).isFault());
+ assertEquals(2, exibits.size());
- }
+ for (ArtistExhibit ae : exibits) {
+ assertEquals(PersistenceState.COMMITTED, ae.getPersistenceState());
+ assertNotNull(ae.getObjectId());
}
});
}
@@ -220,14 +208,10 @@ public class DataContextEJBQLFetchJoinIT extends ServerCase {
final List<?> objects = context.performQuery(query);
- queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
-
- assertNotNull(objects);
- assertFalse(objects.isEmpty());
- assertEquals(1, objects.size());
- }
+ queryBlocker.runWithQueriesBlocked(() -> {
+ assertNotNull(objects);
+ assertFalse(objects.isEmpty());
+ assertEquals(1, objects.size());
});
}
@@ -243,71 +227,68 @@ public class DataContextEJBQLFetchJoinIT extends ServerCase {
final List<?> objects = context.performQuery(query);
- queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
+ queryBlocker.runWithQueriesBlocked(() -> {
- public void execute() {
+ assertEquals(2, objects.size());
- assertEquals(2, objects.size());
+ Object[] firstRow = (Object[]) objects.get(0);
+ Artist a = (Artist) firstRow[0];
+ assertEquals("A1", a.getArtistName());
- Object[] firstRow = (Object[]) objects.get(0);
- Artist a = (Artist) firstRow[0];
- assertEquals("A1", a.getArtistName());
+ List<Painting> paintings = a.getPaintingArray();
- List<Painting> paintings = a.getPaintingArray();
+ assertNotNull(paintings);
+ assertFalse(((ValueHolder) paintings).isFault());
+ assertEquals(2, paintings.size());
- assertNotNull(paintings);
- assertFalse(((ValueHolder) paintings).isFault());
- assertEquals(2, paintings.size());
-
- List<String> expectedPaintingsNames = new ArrayList<String>();
- expectedPaintingsNames.add("P11");
- expectedPaintingsNames.add("P12");
-
- Iterator<Painting> paintingsIterator = paintings.iterator();
- while (paintingsIterator.hasNext()) {
- Painting p = paintingsIterator.next();
- assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
- assertNotNull(p.getPaintingTitle());
- assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
- }
- String artistName = (String) firstRow[1];
- assertEquals("A1", artistName);
+ List<String> expectedPaintingsNames = new ArrayList<>();
+ expectedPaintingsNames.add("P11");
+ expectedPaintingsNames.add("P12");
- Gallery g1 = (Gallery) firstRow[2];
- assertEquals("gallery1", g1.getGalleryName());
+ Iterator<Painting> paintingsIterator = paintings.iterator();
+ while (paintingsIterator.hasNext()) {
+ Painting p = paintingsIterator.next();
+ assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+ assertNotNull(p.getPaintingTitle());
+ assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
+ }
+ String artistName = (String) firstRow[1];
+ assertEquals("A1", artistName);
- List<Exhibit> exibits = g1.getExhibitArray();
+ Gallery g1 = (Gallery) firstRow[2];
+ assertEquals("gallery1", g1.getGalleryName());
- assertNotNull(exibits);
- assertFalse(((ValueHolder) exibits).isFault());
- assertEquals(2, exibits.size());
+ List<Exhibit> exibits = g1.getExhibitArray();
- Object[] secondRow = (Object[]) objects.get(1);
- a = (Artist) secondRow[0];
- assertEquals("A2", a.getArtistName());
+ assertNotNull(exibits);
+ assertFalse(((ValueHolder) exibits).isFault());
+ assertEquals(2, exibits.size());
- paintings = a.getPaintingArray();
+ Object[] secondRow = (Object[]) objects.get(1);
+ a = (Artist) secondRow[0];
+ assertEquals("A2", a.getArtistName());
- assertNotNull(paintings);
- assertFalse(((ValueHolder) paintings).isFault());
- assertEquals(1, paintings.size());
+ paintings = a.getPaintingArray();
- expectedPaintingsNames = new ArrayList<String>();
- expectedPaintingsNames.add("P2");
+ assertNotNull(paintings);
+ assertFalse(((ValueHolder) paintings).isFault());
+ assertEquals(1, paintings.size());
- paintingsIterator = paintings.iterator();
- while (paintingsIterator.hasNext()) {
- Painting p = paintingsIterator.next();
- assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
- assertNotNull(p.getPaintingTitle());
- assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
- }
- artistName = (String) secondRow[1];
- assertEquals("A2", artistName);
+ expectedPaintingsNames = new ArrayList<>();
+ expectedPaintingsNames.add("P2");
- Gallery g2 = (Gallery) secondRow[2];
- assertEquals(g1, g2);
+ paintingsIterator = paintings.iterator();
+ while (paintingsIterator.hasNext()) {
+ Painting p = paintingsIterator.next();
+ assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+ assertNotNull(p.getPaintingTitle());
+ assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
}
+ artistName = (String) secondRow[1];
+ assertEquals("A2", artistName);
+
+ Gallery g2 = (Gallery) secondRow[2];
+ assertEquals(g1, g2);
});
}
@@ -322,101 +303,96 @@ public class DataContextEJBQLFetchJoinIT extends ServerCase {
EJBQLQuery query = new EJBQLQuery(ejbql);
final List<?> objects = context.performQuery(query);
- queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
-
- public void execute() {
+ queryBlocker.runWithQueriesBlocked(() -> {
- assertEquals(6, objects.size());
+ assertEquals(6, objects.size());
- Object[] row = (Object[]) objects.get(0);
- Artist a1 = (Artist) row[0];
- assertEquals("A1", a1.getArtistName());
+ Object[] row = (Object[]) objects.get(0);
+ Artist a1 = (Artist) row[0];
+ assertEquals("A1", a1.getArtistName());
- List<Painting> paintings = a1.getPaintingArray();
+ List<Painting> paintings = a1.getPaintingArray();
- assertNotNull(paintings);
- assertFalse(((ValueHolder) paintings).isFault());
- assertEquals(2, paintings.size());
+ assertNotNull(paintings);
+ assertFalse(((ValueHolder) paintings).isFault());
+ assertEquals(2, paintings.size());
- List<String> expectedPaintingsNames = new ArrayList<String>();
- expectedPaintingsNames.add("P11");
- expectedPaintingsNames.add("P12");
+ List<String> expectedPaintingsNames = new ArrayList<>();
+ expectedPaintingsNames.add("P11");
+ expectedPaintingsNames.add("P12");
- Iterator<Painting> paintingsIterator = paintings.iterator();
- while (paintingsIterator.hasNext()) {
- Painting p = paintingsIterator.next();
- assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
- assertNotNull(p.getPaintingTitle());
- assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
- }
- String artistName1 = (String) row[1];
- assertEquals("A1", artistName1);
+ for (Painting p : paintings) {
+ assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+ assertNotNull(p.getPaintingTitle());
+ assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
+ }
+ String artistName1 = (String) row[1];
+ assertEquals("A1", artistName1);
- Gallery g1 = (Gallery) row[2];
- assertEquals("gallery1", g1.getGalleryName());
+ Gallery g1 = (Gallery) row[2];
+ assertEquals("gallery1", g1.getGalleryName());
- List<?> exibits = g1.getExhibitArray();
+ List<?> exibits = g1.getExhibitArray();
- assertNotNull(exibits);
- assertFalse(((ValueHolder) exibits).isFault());
- assertEquals(2, exibits.size());
+ assertNotNull(exibits);
+ assertFalse(((ValueHolder) exibits).isFault());
+ assertEquals(2, exibits.size());
- row = (Object[]) objects.get(1);
+ row = (Object[]) objects.get(1);
- assertEquals(a1, row[0]);
- assertEquals(artistName1, row[1]);
+ assertEquals(a1, row[0]);
+ assertEquals(artistName1, row[1]);
- Gallery g2 = (Gallery) row[2];
- assertEquals("gallery2", g2.getGalleryName());
+ Gallery g2 = (Gallery) row[2];
+ assertEquals("gallery2", g2.getGalleryName());
- exibits = g2.getExhibitArray();
+ exibits = g2.getExhibitArray();
- assertTrue(exibits.isEmpty());
+ assertTrue(exibits.isEmpty());
- row = (Object[]) objects.get(2);
+ row = (Object[]) objects.get(2);
- Artist a2 = (Artist) row[0];
- assertEquals("A2", a2.getArtistName());
+ Artist a2 = (Artist) row[0];
+ assertEquals("A2", a2.getArtistName());
- paintings = a2.getPaintingArray();
+ paintings = a2.getPaintingArray();
- assertNotNull(paintings);
- assertEquals(1, paintings.size());
+ assertNotNull(paintings);
+ assertEquals(1, paintings.size());
- Painting p = paintings.get(0);
- assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
- assertNotNull(p.getPaintingTitle());
- assertEquals("P2", p.getPaintingTitle());
+ Painting p = paintings.get(0);
+ assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+ assertNotNull(p.getPaintingTitle());
+ assertEquals("P2", p.getPaintingTitle());
- String artistName2 = (String) row[1];
- assertEquals("A2", artistName2);
- assertEquals(g1, row[2]);
+ String artistName2 = (String) row[1];
+ assertEquals("A2", artistName2);
+ assertEquals(g1, row[2]);
- row = (Object[]) objects.get(3);
+ row = (Object[]) objects.get(3);
- assertEquals(a2, row[0]);
- assertEquals(artistName2, row[1]);
- assertEquals(g2, row[2]);
+ assertEquals(a2, row[0]);
+ assertEquals(artistName2, row[1]);
+ assertEquals(g2, row[2]);
- row = (Object[]) objects.get(4);
+ row = (Object[]) objects.get(4);
- Artist a3 = (Artist) row[0];
- assertEquals("A3", a3.getArtistName());
+ Artist a3 = (Artist) row[0];
+ assertEquals("A3", a3.getArtistName());
- paintings = a3.getPaintingArray();
+ paintings = a3.getPaintingArray();
- assertTrue(paintings.isEmpty());
+ assertTrue(paintings.isEmpty());
- String artistName3 = (String) row[1];
- assertEquals("A3", artistName3);
- assertEquals(g1, row[2]);
+ String artistName3 = (String) row[1];
+ assertEquals("A3", artistName3);
+ assertEquals(g1, row[2]);
- row = (Object[]) objects.get(5);
+ row = (Object[]) objects.get(5);
- assertEquals(a3, row[0]);
- assertEquals(artistName3, row[1]);
- assertEquals(g2, row[2]);
- }
+ assertEquals(a3, row[0]);
+ assertEquals(artistName3, row[1]);
+ assertEquals(g2, row[2]);
});
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
index 4d7f4b7..fb8f7a5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
@@ -111,29 +111,22 @@ public class DataContextFlattenedAttributesIT extends ServerCase {
@Test
public void testSelectCompound1() throws Exception {
createTestDataSet();
- SelectQuery query = new SelectQuery(CompoundPainting.class);
- List<?> objects = context.performQuery(query);
+ SelectQuery<CompoundPainting> query = SelectQuery.query(CompoundPainting.class);
+ List<CompoundPainting> objects = query.select(context);
assertNotNull(objects);
assertEquals(8, objects.size());
- assertTrue(
- "CompoundPainting expected, got " + objects.get(0).getClass(),
- objects.get(0) instanceof CompoundPainting);
+ assertTrue("CompoundPainting expected, got null", objects.get(0) != null);
- for (Iterator<?> i = objects.iterator(); i.hasNext();) {
- CompoundPainting painting = (CompoundPainting) i.next();
- Number id = (Number) painting
- .getObjectId()
- .getIdSnapshot()
- .get("PAINTING_ID");
+ for (CompoundPainting painting : objects) {
+ Number id = (Number) painting.getObjectId().getIdSnapshot().get("PAINTING_ID");
assertEquals(
"CompoundPainting.getPaintingTitle(): " + painting.getPaintingTitle(),
"painting" + id,
painting.getPaintingTitle());
if (painting.getToPaintingInfo() == null) {
assertNull(painting.getTextReview());
- }
- else {
+ } else {
assertEquals(
"CompoundPainting.getTextReview(): " + painting.getTextReview(),
"painting review" + id,
@@ -145,8 +138,7 @@ public class DataContextFlattenedAttributesIT extends ServerCase {
painting.getArtistName());
if (painting.getToGallery() == null) {
assertNull(painting.getGalleryName());
- }
- else {
+ } else {
assertEquals(
"CompoundPainting.getGalleryName(): " + painting.getGalleryName(),
painting.getToGallery().getGalleryName(),
@@ -156,25 +148,21 @@ public class DataContextFlattenedAttributesIT extends ServerCase {
}
// TODO: andrus 1/5/2007 - CAY-952: SelectQuery uses INNER JOIN for flattened
- // attributes, while
- // EJBQLQuery does an OUTER JOIN... which seems like a better idea...
+ // attributes, while EJBQLQuery does an OUTER JOIN... which seems like a better idea...
// 14/01/2010 now it uses LEFT JOIN
@Test
public void testSelectCompound2() throws Exception {
createTestDataSet();
- SelectQuery query = new SelectQuery(
+ SelectQuery<CompoundPainting> query = SelectQuery.query(
CompoundPainting.class,
ExpressionFactory.matchExp("artistName", "artist2"));
- List<?> objects = context.performQuery(query);
+ List<CompoundPainting> objects = query.select(context);
assertNotNull(objects);
assertEquals(2, objects.size());
- assertTrue(
- "CompoundPainting expected, got " + objects.get(0).getClass(),
- objects.get(0) instanceof CompoundPainting);
+ assertTrue("CompoundPainting expected, got null", objects.get(0) != null);
- for (Iterator<?> i = objects.iterator(); i.hasNext();) {
- CompoundPainting painting = (CompoundPainting) i.next();
+ for (CompoundPainting painting : objects) {
assertEquals(PersistenceState.COMMITTED, painting.getPersistenceState());
assertEquals(
@@ -197,7 +185,7 @@ public class DataContextFlattenedAttributesIT extends ServerCase {
@Test
public void testSelectCompoundLongNames() throws Exception {
createTestDataSet();
- SelectQuery query = new SelectQuery(CompoundPaintingLongNames.class);
+ SelectQuery<CompoundPaintingLongNames> query = SelectQuery.query(CompoundPaintingLongNames.class);
// the error was thrown on query execution
List<?> objects = context.performQuery(query);
assertNotNull(objects);
@@ -215,9 +203,8 @@ public class DataContextFlattenedAttributesIT extends ServerCase {
assertTrue(
"CompoundPainting expected, got " + objects.get(0).getClass(),
objects.get(0) instanceof CompoundPainting);
- Iterator<?> i = objects.iterator();
- while (i.hasNext()) {
- CompoundPainting painting = (CompoundPainting) i.next();
+ for (Object object : objects) {
+ CompoundPainting painting = (CompoundPainting) object;
assertEquals(PersistenceState.COMMITTED, painting.getPersistenceState());
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
index d99055c..1de1417 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
@@ -101,16 +101,14 @@ public class DataContextJoinAliasesIT extends ServerCase {
Artist picasso = Cayenne.objectForPK(context, Artist.class, 1);
Artist dali = Cayenne.objectForPK(context, Artist.class, 2);
- SelectQuery query = new SelectQuery(Gallery.class);
- query.andQualifier(ExpressionFactory.matchAllExp(
- "|exhibitArray.artistExhibitArray.toArtist",
- picasso,
- dali));
+ SelectQuery<Gallery> query = SelectQuery.query(Gallery.class);
+ query.andQualifier(ExpressionFactory.matchAllExp("|exhibitArray.artistExhibitArray.toArtist", picasso, dali));
- List<Gallery> galleries = context.performQuery(query);
+ List<Gallery> galleries = query.select(context);
assertEquals(1, galleries.size());
assertEquals("G1", galleries.get(0).getGalleryName());
+
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java
index 68506d2..974d641 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java
@@ -18,7 +18,6 @@
****************************************************************/
package org.apache.cayenne.access;
-import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.FunctionExpressionFactory;
@@ -45,7 +44,7 @@ public class DataContextOrderingIT extends ServerCase {
private DataContext context;
@Test
- public void testMultipleOrdering() throws Exception {
+ public void testMultipleOrdering() {
Calendar c = Calendar.getInstance();
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
index 3842a5f..eb998fb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
@@ -86,7 +86,7 @@ public class DataContextOuterJoinsIT extends ServerCase {
missingToManyQuery.andQualifier(Artist.GROUP_ARRAY.outer().isNull());
missingToManyQuery.addOrdering(Artist.ARTIST_NAME.asc());
- List<Artist> artists = context.performQuery(missingToManyQuery);
+ List<Artist> artists = missingToManyQuery.select(context);
assertEquals(1, artists.size());
assertEquals("BB1", artists.get(0).getArtistName());
}
@@ -102,20 +102,20 @@ public class DataContextOuterJoinsIT extends ServerCase {
paintingHelper.insert(33001, 33001, "P1");
paintingHelper.insert(33002, 33002, "P2");
- SelectQuery missingToManyQuery = new SelectQuery(Artist.class);
+ SelectQuery<Artist> missingToManyQuery = SelectQuery.query(Artist.class);
missingToManyQuery.andQualifier(Artist.PAINTING_ARRAY.outer().isNull());
missingToManyQuery.addOrdering(Artist.ARTIST_NAME.asc());
- List<Artist> artists = context.performQuery(missingToManyQuery);
+ List<Artist> artists = missingToManyQuery.select(context);
assertEquals(2, artists.size());
assertEquals("BB1", artists.get(0).getArtistName());
- SelectQuery<Artist> mixedConditionQuery = new SelectQuery<>(Artist.class);
+ SelectQuery<Artist> mixedConditionQuery = SelectQuery.query(Artist.class);
mixedConditionQuery.andQualifier(Artist.PAINTING_ARRAY.outer().isNull());
mixedConditionQuery.orQualifier(Artist.ARTIST_NAME.eq("AA1"));
mixedConditionQuery.addOrdering(Artist.ARTIST_NAME.asc());
- artists = context.performQuery(mixedConditionQuery);
+ artists = mixedConditionQuery.select(context);
assertEquals(3, artists.size());
assertEquals("AA1", artists.get(0).getArtistName());
assertEquals("BB1", artists.get(1).getArtistName());
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
index 46f7a80..adbd1ba 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
@@ -74,12 +74,12 @@ public class DataContextSelectQuerySplitAliasesIT extends ServerCase {
public void testAliasPathSplits_SinglePath() throws Exception {
createTwoArtistsTwoPaintingsDataSet();
- SelectQuery query = new SelectQuery(Artist.class);
+ SelectQuery<Artist> query = SelectQuery.query(Artist.class);
query.andQualifier(ExpressionFactory.matchExp("p.paintingTitle", "X"));
query.aliasPathSplits("paintingArray", "p");
- List<Artist> artists = context.performQuery(query);
+ List<Artist> artists = query.select(context);
assertEquals(1, artists.size());
assertEquals("AA", artists.get(0).getArtistName());
}
@@ -88,13 +88,13 @@ public class DataContextSelectQuerySplitAliasesIT extends ServerCase {
public void testAliasPathSplits_SplitJoin() throws Exception {
createTwoArtistsThreePaintingsDataSet();
- SelectQuery query = new SelectQuery(Artist.class);
+ SelectQuery<Artist> query = SelectQuery.query(Artist.class);
query.andQualifier(ExpressionFactory.matchExp("p1.paintingTitle", "X"));
query.andQualifier(ExpressionFactory.matchExp("p2.paintingTitle", "Y"));
query.aliasPathSplits("paintingArray", "p1", "p2");
- List<Artist> artists = context.performQuery(query);
+ List<Artist> artists = query.select(context);
assertEquals(1, artists.size());
assertEquals("BB", artists.get(0).getArtistName());
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
index 68e1944..65f57e4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
@@ -24,6 +24,7 @@ import org.apache.cayenne.PersistenceState;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.map.DeleteRule;
import org.apache.cayenne.map.ObjRelationship;
+import org.apache.cayenne.query.ObjectSelect;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.test.jdbc.DBHelper;
import org.apache.cayenne.test.jdbc.TableHelper;
@@ -207,7 +208,7 @@ public class DeleteObjectIT extends ServerCase {
public void testDeleteHollow() throws Exception {
createHollowDataSet();
- List<Painting> paintings = context.performQuery(new SelectQuery(Painting.class));
+ List<Painting> paintings = ObjectSelect.query(Painting.class).select(context);
Painting p = paintings.get(0);
Artist a = p.getToArtist();
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
index b9174c9..98f8b44 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
@@ -22,12 +22,14 @@ import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.query.EJBQLQuery;
import org.apache.cayenne.query.ObjectIdQuery;
import org.apache.cayenne.query.RelationshipQuery;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.query.UpdateBatchQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
import org.apache.cayenne.testdo.quotemap.QuoteAdress;
import org.apache.cayenne.testdo.quotemap.Quote_Person;
import org.apache.cayenne.unit.di.server.CayenneProjects;
@@ -48,9 +50,11 @@ public class QuotedIdentifiersIT extends ServerCase {
@Inject
private ObjectContext context;
+ @Inject
+ protected DBHelper dbHelper;
+
@Before
public void setUp() throws Exception {
-
QuoteAdress quoteAdress = context.newObject(QuoteAdress.class);
quoteAdress.setCity("city");
quoteAdress.setGroup("324");
@@ -63,13 +67,43 @@ public class QuotedIdentifiersIT extends ServerCase {
context.commitChanges();
- SelectQuery q = new SelectQuery(QuoteAdress.class);
- List objects = context.performQuery(q);
- assertEquals(1, objects.size());
+ QuoteAdress quoteAdress2 = context.newObject(QuoteAdress.class);
+ quoteAdress2.setCity("city2");
+
+ Quote_Person quote_Person2 = context.newObject(Quote_Person.class);
+ quote_Person2.setSalary(100);
+ quote_Person2.setName("Name");
+ quote_Person2.setGroup("1111");
+ quote_Person2.setDAte(new Date());
+ quote_Person2.setAddress_Rel(quoteAdress2);
+
+ context.commitChanges();
+ }
+
+ @Test
+ public void testDataSetup() {
+ SelectQuery<QuoteAdress> q = SelectQuery.query(QuoteAdress.class);
+ List<QuoteAdress> objects = q.select(context);
+ assertEquals(2, objects.size());
+
+ SelectQuery<Quote_Person> qQuote_Person = SelectQuery.query(Quote_Person.class);
+ List<Quote_Person> objects2 = qQuote_Person.select(context);
+ assertEquals(2, objects2.size());
+ }
+
+ @Test
+ public void testInsert() {
+ QuoteAdress quoteAdress = context.newObject(QuoteAdress.class);
+ quoteAdress.setCity("city");
+ quoteAdress.setGroup("324");
+
+ Quote_Person quote_Person = context.newObject(Quote_Person.class);
+ quote_Person.setSalary(10000);
+ quote_Person.setName("Arcadi");
+ quote_Person.setGroup("107324");
+ quote_Person.setAddress_Rel(quoteAdress);
- SelectQuery qQuote_Person = new SelectQuery(Quote_Person.class);
- List objects2 = context.performQuery(qQuote_Person);
- assertEquals(1, objects2.size());
+ context.commitChanges();
QuoteAdress quoteAdress2 = context.newObject(QuoteAdress.class);
quoteAdress2.setCity("city2");
@@ -82,34 +116,41 @@ public class QuotedIdentifiersIT extends ServerCase {
quote_Person2.setAddress_Rel(quoteAdress2);
context.commitChanges();
+
+ SelectQuery<QuoteAdress> q = SelectQuery.query(QuoteAdress.class);
+ List<QuoteAdress> objects = q.select(context);
+ assertEquals(4, objects.size());
+
+ SelectQuery<Quote_Person> qQuote_Person = SelectQuery.query(Quote_Person.class);
+ List<Quote_Person> objects2 = qQuote_Person.select(context);
+ assertEquals(4, objects2.size());
}
@Test
- public void testPrefetchQuote() throws Exception {
+ public void testPrefetchQuote() {
DbEntity entity = context.getEntityResolver().getObjEntity(QuoteAdress.class).getDbEntity();
- List idAttributes = Collections.singletonList(entity.getAttribute("City"));
- List updatedAttributes = Collections.singletonList(entity.getAttribute("City"));
+ List<DbAttribute> idAttributes = Collections.singletonList(entity.getAttribute("City"));
+ List<DbAttribute> updatedAttributes = Collections.singletonList(entity.getAttribute("City"));
- UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes,
- Collections.<String> emptySet(), 1);
+ UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes, Collections.emptySet(), 1);
List objects3 = context.performQuery(updateQuery);
assertEquals(0, objects3.size());
- SelectQuery qQuote_Person2 = new SelectQuery(Quote_Person.class);
- List objects4 = context.performQuery(qQuote_Person2);
+ SelectQuery<Quote_Person> qQuote_Person2 = SelectQuery.query(Quote_Person.class);
+ List<Quote_Person> objects4 = qQuote_Person2.select(context);
assertEquals(2, objects4.size());
- SelectQuery qQuote_Person3 = new SelectQuery(Quote_Person.class, ExpressionFactory.matchExp("salary", 100));
- List objects5 = context.performQuery(qQuote_Person3);
+ SelectQuery<Quote_Person> qQuote_Person3 = SelectQuery.query(Quote_Person.class, ExpressionFactory.matchExp("salary", 100));
+ List<Quote_Person> objects5 = qQuote_Person3.select(context);
assertEquals(1, objects5.size());
- SelectQuery qQuote_Person4 = new SelectQuery(Quote_Person.class, ExpressionFactory.matchExp("group", "107324"));
- List objects6 = context.performQuery(qQuote_Person4);
+ SelectQuery<Quote_Person> qQuote_Person4 = SelectQuery.query(Quote_Person.class, ExpressionFactory.matchExp("group", "107324"));
+ List<Quote_Person> objects6 = qQuote_Person4.select(context);
assertEquals(1, objects6.size());
- SelectQuery quoteAdress1 = new SelectQuery(QuoteAdress.class, ExpressionFactory.matchExp("group", "324"));
- List objects7 = context.performQuery(quoteAdress1);
+ SelectQuery<QuoteAdress> quoteAdress1 = SelectQuery.query(QuoteAdress.class, ExpressionFactory.matchExp("group", "324"));
+ List<QuoteAdress> objects7 = quoteAdress1.select(context);
assertEquals(1, objects7.size());
ObjectIdQuery queryObjectId = new ObjectIdQuery(new ObjectId("QuoteAdress", QuoteAdress.GROUP.getName(), "324"));
@@ -121,8 +162,8 @@ public class QuotedIdentifiersIT extends ServerCase {
List objects9 = context.performQuery(queryObjectId2);
assertEquals(1, objects9.size());
- SelectQuery person2Query = new SelectQuery(Quote_Person.class, ExpressionFactory.matchExp("name", "Name"));
- Quote_Person quote_Person2 = (Quote_Person) context.performQuery(person2Query).get(0);
+ SelectQuery<Quote_Person> person2Query = SelectQuery.query(Quote_Person.class, ExpressionFactory.matchExp("name", "Name"));
+ Quote_Person quote_Person2 = person2Query.select(context).get(0);
RelationshipQuery relationshipQuery = new RelationshipQuery(quote_Person2.getObjectId(), "address_Rel");
List objects10 = context.performQuery(relationshipQuery);
@@ -130,7 +171,7 @@ public class QuotedIdentifiersIT extends ServerCase {
}
@Test
- public void testQuotedEJBQLQuery() throws Exception {
+ public void testQuotedEJBQLQuery() {
String ejbql = "select a from QuoteAdress a where a.group = '324'";
EJBQLQuery queryEJBQL = new EJBQLQuery(ejbql);
List objects11 = context.performQuery(queryEJBQL);
@@ -138,7 +179,7 @@ public class QuotedIdentifiersIT extends ServerCase {
}
@Test
- public void testQuotedEJBQLQueryWithJoin() throws Exception {
+ public void testQuotedEJBQLQueryWithJoin() {
String ejbql = "select p from Quote_Person p join p.address_Rel a where p.name = 'Arcadi'";
EJBQLQuery queryEJBQL = new EJBQLQuery(ejbql);
List resultList = context.performQuery(queryEJBQL);
@@ -146,9 +187,10 @@ public class QuotedIdentifiersIT extends ServerCase {
}
@Test
- public void testQuotedEJBQLQueryWithOrderBy() throws Exception {
+ public void testQuotedEJBQLQueryWithOrderBy() {
EJBQLQuery query = new EJBQLQuery("select p from Quote_Person p order by p.name");
+ @SuppressWarnings("unchecked")
List<Quote_Person> resultList = (List<Quote_Person>) context.performQuery(query);
assertEquals(2, resultList.size());
@@ -157,7 +199,7 @@ public class QuotedIdentifiersIT extends ServerCase {
}
@Test
- public void testQuotedEJBQLCountQuery() throws Exception {
+ public void testQuotedEJBQLCountQuery() {
EJBQLQuery query = new EJBQLQuery("select count(p) from Quote_Person p");
assertEquals(Collections.singletonList(2L), context.performQuery(query));
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
index 4dabb68..198a28f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
@@ -764,7 +764,7 @@ public class ReturnTypesMappingIT extends ServerCase {
Calendar cal = Calendar.getInstance();
cal.clear();
- cal.set(2003, 1, 1, 1, 20, 30);
+ cal.set(2003, Calendar.FEBRUARY, 1, 1, 20, 30);
Date timeValue = new Time(cal.getTime().getTime());
test.setTimeColumn(timeValue);
context.commitChanges();
@@ -783,13 +783,13 @@ public class ReturnTypesMappingIT extends ServerCase {
Calendar cal = Calendar.getInstance();
cal.clear();
- cal.set(2003, 1, 1, 1, 20, 30);
+ cal.set(2003, Calendar.FEBRUARY, 1, 1, 20, 30);
Date timeValue = new Time(cal.getTime().getTime());
test.setTimeColumn(timeValue);
context.commitChanges();
- SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
- ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ SelectQuery<ReturnTypesMap1> q = new SelectQuery<>(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = q.selectOne(context);
Date columnValue = testRead.getTimeColumn();
assertNotNull(columnValue);
assertEquals(Date.class, columnValue.getClass());
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/configuration/xml/BaseHandlerTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/xml/BaseHandlerTest.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/xml/BaseHandlerTest.java
index 4cefbff..f73f11a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/xml/BaseHandlerTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/xml/BaseHandlerTest.java
@@ -35,7 +35,7 @@ import org.xml.sax.helpers.DefaultHandler;
public abstract class BaseHandlerTest {
protected void parse(String tag, HandlerFactory factory) throws Exception {
- try(InputStream in = DbKeyGeneratorHandlerTest.class.getResource(getClass().getSimpleName() + ".xml").openStream()) {
+ try(InputStream in = BaseHandlerTest.class.getResource(getClass().getSimpleName() + ".xml").openStream()) {
XMLReader parser = Util.createXmlReader();
DefaultHandler handler = new TestRootHandler(parser, tag, factory);
parser.setContentHandler(handler);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/dba/DefaultQuotingStrategyTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/DefaultQuotingStrategyTest.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/DefaultQuotingStrategyTest.java
index 27d725e..e5b5bcb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/DefaultQuotingStrategyTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/DefaultQuotingStrategyTest.java
@@ -27,7 +27,7 @@ import static org.junit.Assert.assertEquals;
public class DefaultQuotingStrategyTest {
@Test
- public void testQuotedIdentifer() {
+ public void testQuotedIdentifier() {
DataMap dm = new DataMap();
dm.setQuotingSQLIdentifiers(true);
@@ -41,7 +41,7 @@ public class DefaultQuotingStrategyTest {
}
@Test
- public void testUnQuotedIdentifer() {
+ public void testUnQuotedIdentifier() {
DataMap dm = new DataMap();
dm.setQuotingSQLIdentifiers(false);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
index 232378f..3ebbe1c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
@@ -81,13 +81,13 @@ public class SelectQueryClobIT extends ServerCase {
// see CAY-1539... CLOB column causes suppression of DISTINCT in
// SQL, and hence the offset processing is done in memory
- SelectQuery<ClobTestEntity> query = new SelectQuery<ClobTestEntity>(ClobTestEntity.class);
+ SelectQuery<ClobTestEntity> query = new SelectQuery<>(ClobTestEntity.class);
query.addOrdering("db:" + ClobTestEntity.CLOB_TEST_ID_PK_COLUMN, SortOrder.ASCENDING);
query.setFetchLimit(1);
query.setFetchOffset(1);
query.setDistinct(true);
- List<ClobTestEntity> objects = context.performQuery(query);
+ List<ClobTestEntity> objects = query.select(context);
assertEquals(1, objects.size());
assertEquals(2, Cayenne.intPKForObject(objects.get(0)));
}
@@ -97,7 +97,7 @@ public class SelectQueryClobIT extends ServerCase {
public void testSelectEqualsClob() throws Exception {
if (accessStackAdapter.supportsLobComparisons()) {
createClobDataSet();
- SelectQuery<ClobTestEntity> query = new SelectQuery<ClobTestEntity>(ClobTestEntity.class);
+ SelectQuery<ClobTestEntity> query = new SelectQuery<>(ClobTestEntity.class);
Expression qual = ExpressionFactory.matchExp("clobCol", "clob1");
query.setQualifier(qual);
List<?> objects = context.performQuery(query);
@@ -109,7 +109,7 @@ public class SelectQueryClobIT extends ServerCase {
public void testSelectNotEqualsClob() throws Exception {
if (accessStackAdapter.supportsLobComparisons()) {
createClobDataSet();
- SelectQuery query = new SelectQuery(ClobTestEntity.class);
+ SelectQuery query = new SelectQuery<>(ClobTestEntity.class);
Expression qual = ExpressionFactory.noMatchExp("clobCol", "clob1");
query.setQualifier(qual);
List<?> objects = context.performQuery(query);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0a83ab70/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
index 59b8a56..1bd6d1b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
+import java.sql.ResultSet;
import java.sql.Types;
import java.util.Arrays;
import java.util.Collections;
@@ -127,7 +128,7 @@ public class SelectQueryIT extends ServerCase {
createArtistsDataSet();
- int totalRows = new SelectQuery<>(Artist.class).select(context).size();
+ long totalRows = ObjectSelect.query(Artist.class).selectCount(context);
SelectQuery<Artist> query = new SelectQuery<>(Artist.class);
query.addOrdering("db:" + Artist.ARTIST_ID_PK_COLUMN, SortOrder.ASCENDING);
@@ -319,8 +320,7 @@ public class SelectQueryIT extends ServerCase {
createArtistsWildcardDataSet();
- // CAY-1978 - combining LIKE..ESCAPE with another clause generated bad
- // SQL
+ // CAY-1978 - combining LIKE..ESCAPE with another clause generated bad SQL
SelectQuery<Artist> query = new SelectQuery<>(Artist.class);
query.andQualifier(ExpressionFactory.likeIgnoreCaseExp("artistName", "=_%", '='));
query.andQualifier(Artist.ARTIST_NAME.eq("_X"));
@@ -506,7 +506,7 @@ public class SelectQueryIT extends ServerCase {
Expression qual = ExpressionFactory.matchExp("artistName", "artist1");
query.setQualifier(qual);
- Artist artist = (Artist) query.selectOne(context);
+ Artist artist = query.selectOne(context);
assertEquals("artist1", artist.getArtistName());
}
[4/5] cayenne git commit: Cleanup tests
Posted by nt...@apache.org.
Cleanup tests
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/d7acbe82
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/d7acbe82
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/d7acbe82
Branch: refs/heads/master
Commit: d7acbe82926ca4b01aed2b331fcedfb20817c116
Parents: 06ab9ed
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Jul 31 15:06:11 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Tue Jul 31 15:06:11 2018 +0300
----------------------------------------------------------------------
.../src/main/java/org/apache/cayenne/test/jdbc/DBHelper.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/d7acbe82/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/DBHelper.java
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/DBHelper.java b/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/DBHelper.java
index ec080c0..319c75f 100644
--- a/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/DBHelper.java
+++ b/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/DBHelper.java
@@ -141,13 +141,13 @@ public class DBHelper {
}
sql.append(")");
- try (Connection c = getConnection();) {
+ try (Connection c = getConnection()) {
String sqlString = sql.toString();
UtilityLogger.log(sqlString);
ParameterMetaData parameters = null;
- try (PreparedStatement st = c.prepareStatement(sqlString);) {
+ try (PreparedStatement st = c.prepareStatement(sqlString)) {
for (int i = 0; i < values.length; i++) {
if (values[i] == null) {
[5/5] cayenne git commit: Cleanup code
Posted by nt...@apache.org.
Cleanup code
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/e616dc14
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/e616dc14
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/e616dc14
Branch: refs/heads/master
Commit: e616dc140150e016c486cb671998e35e632ab606
Parents: d7acbe8
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Jul 31 15:08:02 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Tue Jul 31 15:08:02 2018 +0300
----------------------------------------------------------------------
.../cayenne/access/DataDomainQueryAction.java | 6 +-
.../access/PrefetchProcessorJointNode.java | 3 +-
.../cayenne/access/jdbc/SelectAction.java | 5 +-
.../translator/ejbql/EJBQLFromTranslator.java | 10 +-
.../apache/cayenne/ejbql/parser/Compiler.java | 23 ++--
.../java/org/apache/cayenne/map/DbEntity.java | 24 +---
.../java/org/apache/cayenne/map/ObjEntity.java | 7 +-
.../cayenne/map/PathComponentIterator.java | 122 +++++++++----------
8 files changed, 83 insertions(+), 117 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e616dc14/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
index 13b1961..57458a9 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
@@ -743,9 +743,9 @@ class DataDomainQueryAction implements QueryRouter, OperationObserver {
// with resolved objects
List<PrefetchProcessorNode> segmentNodes = new ArrayList<>(width);
for (int i = 0; i < width; i++) {
-
- if (rsMapping.get(i) instanceof EntityResultSegment) {
- EntityResultSegment entitySegment = (EntityResultSegment) rsMapping.get(i);
+ Object mapping = rsMapping.get(i);
+ if (mapping instanceof EntityResultSegment) {
+ EntityResultSegment entitySegment = (EntityResultSegment) mapping;
PrefetchProcessorNode nextResult = toResultsTree(entitySegment.getClassDescriptor(),
metadata.getPrefetchTree(), mainRows, i);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e616dc14/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java b/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
index 784453a..dc7003a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
@@ -171,8 +171,7 @@ class PrefetchProcessorJointNode extends PrefetchProcessorNode {
// make sure we do not include "db:" prefix
prefix = translated.getOperand(0) + ".";
- }
- else {
+ } else {
prefix = "";
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e616dc14/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
index 0cb1ea7..51f373b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
@@ -168,8 +168,9 @@ public class SelectAction extends BaseSQLAction {
// number of objects returned from Cayenne.
int fetchLimit = query.getFetchLimit();
- int offset = translator.isSuppressingDistinct() ? query.getFetchOffset() : getInMemoryOffset(query
- .getFetchOffset());
+ int offset = translator.isSuppressingDistinct()
+ ? query.getFetchOffset()
+ : getInMemoryOffset(query.getFetchOffset());
if (fetchLimit > 0 || offset > 0) {
return new LimitResultIterator<>(iterator, offset, fetchLimit);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e616dc14/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLFromTranslator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLFromTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLFromTranslator.java
index e1f3740..f1fc202 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLFromTranslator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLFromTranslator.java
@@ -21,9 +21,7 @@ package org.apache.cayenne.access.translator.ejbql;
import org.apache.cayenne.ejbql.EJBQLBaseVisitor;
import org.apache.cayenne.ejbql.EJBQLExpression;
import org.apache.cayenne.ejbql.parser.EJBQLFromItem;
-import org.apache.cayenne.ejbql.parser.EJBQLInnerFetchJoin;
import org.apache.cayenne.ejbql.parser.EJBQLJoin;
-import org.apache.cayenne.ejbql.parser.EJBQLOuterFetchJoin;
/**
* @since 3.0
@@ -71,10 +69,10 @@ public class EJBQLFromTranslator extends EJBQLBaseVisitor {
joinAppender.appendInnerJoin(
null,
new EJBQLTableId(join.getLeftHandSideId()),
- new EJBQLTableId(((EJBQLInnerFetchJoin) join).getRightHandSideId()));
+ new EJBQLTableId(join.getRightHandSideId()));
context.markCurrentPosition(EJBQLJoinAppender
- .makeJoinTailMarker(((EJBQLInnerFetchJoin) join).getRightHandSideId()));
+ .makeJoinTailMarker(join.getRightHandSideId()));
return false;
}
@@ -95,10 +93,10 @@ public class EJBQLFromTranslator extends EJBQLBaseVisitor {
joinAppender.appendOuterJoin(
null,
new EJBQLTableId(join.getLeftHandSideId()),
- new EJBQLTableId(((EJBQLOuterFetchJoin) join).getRightHandSideId()));
+ new EJBQLTableId(join.getRightHandSideId()));
context.markCurrentPosition(EJBQLJoinAppender
- .makeJoinTailMarker(((EJBQLOuterFetchJoin) join).getRightHandSideId()));
+ .makeJoinTailMarker(join.getRightHandSideId()));
return false;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e616dc14/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java b/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java
index 3908ff3..47eef55 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java
@@ -233,26 +233,21 @@ class Compiler {
return compiled;
}
- private EntityResult compileEntityResultWithPrefetch(
- EntityResult compiledResult,
- EJBQLExpression prefetchExpression) {
- final EntityResult result = compiledResult;
+ private EntityResult compileEntityResultWithPrefetch(EntityResult compiledResult, EJBQLExpression prefetchExpression) {
String id = prefetchExpression.getText().toLowerCase();
ClassDescriptor descriptor = descriptorsById.get(id);
if (descriptor == null) {
descriptor = descriptorsById.get(prefetchExpression.getText());
}
- final String prefix = prefetchExpression.getText().substring(
- prefetchExpression.getText().indexOf(".") + 1);
-
- final Set<String> visited = new HashSet<String>();
+ String prefix = prefetchExpression.getText().substring(prefetchExpression.getText().indexOf(".") + 1);
+ Set<String> visited = new HashSet<>();
PropertyVisitor visitor = new PropertyVisitor() {
public boolean visitAttribute(AttributeProperty property) {
ObjAttribute oa = property.getAttribute();
if (visited.add(oa.getDbAttributePath())) {
- result.addObjectField(oa.getEntity().getName(), "fetch."
+ compiledResult.addObjectField(oa.getEntity().getName(), "fetch."
+ prefix
+ "."
+ oa.getName(), prefix + "." + oa.getDbAttributeName());
@@ -271,7 +266,7 @@ class Compiler {
for (DbJoin join : dbRel.getJoins()) {
DbAttribute src = join.getSource();
if (src.isForeignKey() && visited.add(src.getName())) {
- result.addDbField("fetch." + prefix + "." + src.getName(), prefix
+ compiledResult.addDbField("fetch." + prefix + "." + src.getName(), prefix
+ "."
+ src.getName());
}
@@ -286,7 +281,7 @@ class Compiler {
// append id columns ... (some may have been appended already via relationships)
for (String pkName : descriptor.getEntity().getPrimaryKeyNames()) {
if (visited.add(pkName)) {
- result
+ compiledResult
.addDbField("fetch." + prefix + "." + pkName, prefix
+ "."
+ pkName);
@@ -297,13 +292,13 @@ class Compiler {
for (ObjAttribute column : descriptor.getDiscriminatorColumns()) {
if (visited.add(column.getName())) {
- result.addDbField(
+ compiledResult.addDbField(
"fetch." + prefix + "." + column.getDbAttributePath(),
prefix + "." + column.getDbAttributePath());
}
}
- return result;
+ return compiledResult;
}
private EntityResult compileEntityResult(EJBQLExpression expression, int position) {
@@ -321,7 +316,7 @@ class Compiler {
0
};
- final Set<String> visited = new HashSet<String>();
+ final Set<String> visited = new HashSet<>();
PropertyVisitor visitor = new PropertyVisitor() {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e616dc14/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
index 51fefa4..0626655 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
@@ -34,6 +34,7 @@ import org.apache.cayenne.map.event.EntityEvent;
import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.map.event.RelationshipEvent;
import org.apache.cayenne.util.CayenneMapEntry;
+import org.apache.cayenne.util.Util;
import org.apache.cayenne.util.XMLEncoder;
import java.util.ArrayList;
@@ -669,7 +670,7 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
}
private PathComponentIterator createPathIterator(String path) {
- return new PathComponentIterator(DbEntity.this, path, new HashMap<>());
+ return new PathComponentIterator(DbEntity.this, path, Collections.emptyMap());
// TODO: do we need aliases here?
}
@@ -713,7 +714,7 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
appendPath(finalPath, component);
}
- return convertToPath(finalPath);
+ return Util.join(finalPath, Entity.PATH_SEPARATOR);
}
// case (1)
if (path.equals(relationshipPath)) {
@@ -736,7 +737,7 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
appendPath(finalPath, lastDBR);
}
- return convertToPath(finalPath);
+ return Util.join(finalPath, Entity.PATH_SEPARATOR);
}
// case (2)
@@ -751,7 +752,6 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
// for inserts from the both ends use LinkedList
LinkedList<String> finalPath = new LinkedList<>();
-
while (relationshipIt.hasNext() && pathIt.hasNext()) {
// relationship path components must be DbRelationships
DbRelationship nextDBR = (DbRelationship) relationshipIt.next();
@@ -783,21 +783,7 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
appendPath(finalPath, component);
}
- return convertToPath(finalPath);
- }
-
- private String convertToPath(List<String> path) {
- StringBuilder converted = new StringBuilder();
- int len = path.size();
- for (int i = 0; i < len; i++) {
- if (i > 0) {
- converted.append(Entity.PATH_SEPARATOR);
- }
-
- converted.append(path.get(i));
- }
-
- return converted.toString();
+ return Util.join(finalPath, Entity.PATH_SEPARATOR);
}
private void prependReversedPath(LinkedList<String> finalPath, DbRelationship relationship) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e616dc14/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
index 02eb43e..74e793d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
@@ -1010,7 +1010,7 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
}
private PathComponentIterator createPathIterator(String path) {
- return new PathComponentIterator(ObjEntity.this, path, new HashMap<String, String>());
+ return new PathComponentIterator(ObjEntity.this, path, Collections.emptyMap());
// TODO: do we need aliases here?
}
@@ -1077,11 +1077,8 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
}
// convert obj_path to db_path
-
String converted = toDbPath(createPathIterator((String) expression.getOperand(0)));
- Expression exp = ExpressionFactory.expressionOfType(Expression.DB_PATH);
- exp.setOperand(0, converted);
- return exp;
+ return ExpressionFactory.dbPathExp(converted);
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e616dc14/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
index e631156..a23a281 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
@@ -25,6 +25,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
+import java.util.Objects;
import java.util.StringTokenizer;
/**
@@ -32,16 +33,17 @@ import java.util.StringTokenizer;
*/
class PathComponentIterator implements Iterator<PathComponent<Attribute, Relationship>> {
- private StringTokenizer toks;
+ private final StringTokenizer toks;
+ private final String path;
+ private final Map<String, String> aliasMap;
+
private Entity currentEntity;
- private String path;
- private Map<String, String> aliasMap;
PathComponentIterator(Entity root, String path, Map<String, String> aliasMap) {
- currentEntity = root;
- toks = new StringTokenizer(path, Entity.PATH_SEPARATOR);
- this.path = path;
- this.aliasMap = aliasMap;
+ this.currentEntity = Objects.requireNonNull(root);
+ this.path = Objects.requireNonNull(path);
+ this.aliasMap = Objects.requireNonNull(aliasMap);
+ this.toks = new StringTokenizer(path, Entity.PATH_SEPARATOR);
}
public boolean hasNext() {
@@ -56,8 +58,7 @@ class PathComponentIterator implements Iterator<PathComponent<Attribute, Relatio
// we only support LEFT JOINS for now...
if (pathComp.endsWith(Entity.OUTER_JOIN_INDICATOR)) {
relationshipJoinType = JoinType.LEFT_OUTER;
- pathComp = pathComp.substring(0, pathComp.length()
- - Entity.OUTER_JOIN_INDICATOR.length());
+ pathComp = pathComp.substring(0, pathComp.length() - Entity.OUTER_JOIN_INDICATOR.length());
}
// see if this is an attribute
@@ -66,79 +67,68 @@ class PathComponentIterator implements Iterator<PathComponent<Attribute, Relatio
// do a sanity check...
if (toks.hasMoreTokens()) {
throw new ExpressionException(
- "Attribute must be the last component of the path: '"
- + pathComp
- + "'.",
- path,
- null);
+ "Attribute must be the last component of the path: '" + pathComp + "'.", path, null);
}
- return new AttributePathComponent<Attribute, Relationship>(attr);
+ return new AttributePathComponent<>(attr);
}
Relationship rel = currentEntity.getRelationship(pathComp);
if (rel != null) {
currentEntity = rel.getTargetEntity();
- return new RelationshipPathComponent<Attribute, Relationship>(
- rel,
- relationshipJoinType,
- !hasNext());
+ return new RelationshipPathComponent<>(rel, relationshipJoinType, !hasNext());
+ }
+
+ PathComponent<Attribute, Relationship> aliasedPathComponent = getAliasedPathComponent(pathComp);
+ if (aliasedPathComponent != null) {
+ return aliasedPathComponent;
+ }
+
+ throw invalidPathException("Can't resolve path component", pathComp);
+ }
+
+ private PathComponent<Attribute, Relationship> getAliasedPathComponent(String pathComp) {
+ String aliasedPath = aliasMap.get(pathComp);
+ if(aliasedPath == null) {
+ return null;
}
- String aliasedPath = (aliasMap != null) ? aliasMap.get(pathComp) : null;
- if (aliasedPath != null) {
-
- // a few fairly arbitrary assumptions.... if we find that they restrict valid
- // and useful cases, we can change this behavior:
- //
- // 1. No nested aliases. Aliased path must contain only unaliased component
- // names.
- // 2. Subpath must be relationship-only. Aliasing attributes doesn't seem
- // useful, so we don't handle this case for simplicity...
-
- // fully resolve subpath here... since we need to know the target entity of
- // the subpath, we have to fully traverse it, hence instead of lazy iterator
- // we might as well reuse obtained information in the AliasPathComponent
-
- Iterator<PathComponent<Attribute, Relationship>> subpathIt = new PathComponentIterator(
- currentEntity,
- aliasedPath,
- Collections.<String, String>emptyMap());
-
- Collection<PathComponent<Attribute, Relationship>> parsedSubpath = new ArrayList<>(4);
-
- while (subpathIt.hasNext()) {
- PathComponent<Attribute, Relationship> subpathComponent = subpathIt.next();
-
- Relationship subpathRelationship = subpathComponent.getRelationship();
- if (subpathRelationship == null) {
- throw invalidPathException(
- "Expected a relationship in the aliased subpath. Alias ["
- + pathComp
- + "]",
- subpathComponent.getName());
- }
-
- currentEntity = subpathRelationship.getTargetEntity();
- parsedSubpath.add(subpathComponent);
+ // a few fairly arbitrary assumptions.... if we find that they restrict valid
+ // and useful cases, we can change this behavior:
+ //
+ // 1. No nested aliases. Aliased path must contain only unaliased component names.
+ // 2. Subpath must be relationship-only. Aliasing attributes doesn't seem
+ // useful, so we don't handle this case for simplicity...
+
+ // fully resolve subpath here... since we need to know the target entity of
+ // the subpath, we have to fully traverse it, hence instead of lazy iterator
+ // we might as well reuse obtained information in the AliasPathComponent
+
+ Iterator<PathComponent<Attribute, Relationship>> subpathIt =
+ new PathComponentIterator(currentEntity, aliasedPath, Collections.emptyMap());
+
+ Collection<PathComponent<Attribute, Relationship>> parsedSubpath = new ArrayList<>(4);
+
+ while (subpathIt.hasNext()) {
+ PathComponent<Attribute, Relationship> subpathComponent = subpathIt.next();
+
+ Relationship subpathRelationship = subpathComponent.getRelationship();
+ if (subpathRelationship == null) {
+ throw invalidPathException(
+ "Expected a relationship in the aliased subpath. Alias [" + pathComp + "]",
+ subpathComponent.getName());
}
- return new AliasPathComponent<>(pathComp, parsedSubpath, !hasNext());
+ currentEntity = subpathRelationship.getTargetEntity();
+ parsedSubpath.add(subpathComponent);
}
- throw invalidPathException("Can't resolve path component", pathComp);
+ return new AliasPathComponent<>(pathComp, parsedSubpath, !hasNext());
}
private ExpressionException invalidPathException(String message, String pathComponent) {
- StringBuilder buffer = new StringBuilder();
- buffer
- .append(message)
- .append(": [")
- .append(currentEntity.getName())
- .append('.')
- .append(pathComponent)
- .append("].");
- return new ExpressionException(buffer.toString(), path, null);
+ String buffer = message + ": [" + currentEntity.getName() + '.' + pathComponent + "].";
+ return new ExpressionException(buffer, path, null);
}
public void remove() {
[3/5] cayenne git commit: Update Firebird driver version
Posted by nt...@apache.org.
Update Firebird driver version
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/06ab9ed5
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/06ab9ed5
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/06ab9ed5
Branch: refs/heads/master
Commit: 06ab9ed58ee30ad2b89684aa7794e2e391f5f331
Parents: 0a83ab7
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Jul 31 14:55:26 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Tue Jul 31 14:55:26 2018 +0300
----------------------------------------------------------------------
pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/06ab9ed5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2c469fe..40cda97 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1240,8 +1240,8 @@
<dependencies>
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
- <artifactId>jaybird-jdk17</artifactId>
- <version>2.2.12</version>
+ <artifactId>jaybird-jdk18</artifactId>
+ <version>3.0.3</version>
<scope>test</scope>
</dependency>
</dependencies>