From 24553d636fedfa90140928722fd9c69e9fa9c4f0 Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Mon, 19 Jun 2023 11:01:36 +0200 Subject: [PATCH 01/29] Bump version to 3.0.3-SNAPSHOT --- analytics/pom.xml | 2 +- announcer/pom.xml | 2 +- appinfo/pom.xml | 2 +- application/pom.xml | 2 +- autoclose/pom.xml | 2 +- builder/pom.xml | 2 +- core/pom.xml | 2 +- criteria/pom.xml | 2 +- docs/antora.yml | 2 +- exception/pom.xml | 2 +- field/pom.xml | 2 +- fieldgenerator/fieldgenerator-component/pom.xml | 2 +- fieldgenerator/fieldgenerator-standard/pom.xml | 2 +- fieldgenerator/fieldgenerator-test-package/pom.xml | 2 +- fieldgenerator/fieldgenerator-test/pom.xml | 2 +- fieldgenerator/pom.xml | 2 +- integration/cdi/cdi-jpastreamer/pom.xml | 2 +- integration/cdi/pom.xml | 2 +- integration/pom.xml | 2 +- integration/spring/pom.xml | 2 +- .../spring/spring-boot-jpastreamer-autoconfigure/pom.xml | 2 +- interopoptimizer/pom.xml | 2 +- javanine/pom.xml | 2 +- merger/pom.xml | 2 +- pipeline/pom.xml | 2 +- pom.xml | 2 +- projection/pom.xml | 2 +- provider/analytics-standard/pom.xml | 2 +- provider/appinfo-standard/pom.xml | 2 +- provider/application-standard/pom.xml | 2 +- provider/autoclose-standard/pom.xml | 2 +- provider/builder-standard/pom.xml | 2 +- provider/criteria-standard/pom.xml | 2 +- provider/interopoptimizer-standard/pom.xml | 2 +- provider/merger-standard/pom.xml | 2 +- provider/pipeline-standard/pom.xml | 2 +- provider/pom.xml | 2 +- provider/renderer-standard/pom.xml | 2 +- provider/streamconfiguration-standard/pom.xml | 2 +- provider/termopmodifier-standard/pom.xml | 2 +- provider/termopoptimizer-standard/pom.xml | 2 +- renderer/pom.xml | 2 +- rootfactory/pom.xml | 2 +- streamconfiguration/pom.xml | 2 +- termopmodifier/pom.xml | 2 +- termopoptimizer/pom.xml | 2 +- 46 files changed, 46 insertions(+), 46 deletions(-) diff --git a/analytics/pom.xml b/analytics/pom.xml index 57da02d9..c8bb8b5c 100644 --- a/analytics/pom.xml +++ b/analytics/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/announcer/pom.xml b/announcer/pom.xml index d6e0e818..cfc7b4ce 100644 --- a/announcer/pom.xml +++ b/announcer/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/appinfo/pom.xml b/appinfo/pom.xml index b84fb0e3..8a52e5e5 100644 --- a/appinfo/pom.xml +++ b/appinfo/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/application/pom.xml b/application/pom.xml index df4206f9..609f9cee 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/autoclose/pom.xml b/autoclose/pom.xml index f0b6af7b..b25d1444 100644 --- a/autoclose/pom.xml +++ b/autoclose/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/builder/pom.xml b/builder/pom.xml index db7c2fe1..3a259071 100644 --- a/builder/pom.xml +++ b/builder/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/core/pom.xml b/core/pom.xml index fb3b5b1e..4a70a0b3 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/criteria/pom.xml b/criteria/pom.xml index ec03a265..391a4693 100644 --- a/criteria/pom.xml +++ b/criteria/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/docs/antora.yml b/docs/antora.yml index eeb8ebc5..28b00806 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -13,7 +13,7 @@ name: jpa-streamer title: JPAStreamer Docs -version: 3.0.2 +version: 3.0.3-SNAPSHOT start_page: introduction:introduction.adoc nav: - modules/ROOT/nav.adoc diff --git a/exception/pom.xml b/exception/pom.xml index cc450d2d..68b64db4 100644 --- a/exception/pom.xml +++ b/exception/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/field/pom.xml b/field/pom.xml index 030b6571..8cd1ce97 100644 --- a/field/pom.xml +++ b/field/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/fieldgenerator/fieldgenerator-component/pom.xml b/fieldgenerator/fieldgenerator-component/pom.xml index 5ab318d1..71be4fbc 100644 --- a/fieldgenerator/fieldgenerator-component/pom.xml +++ b/fieldgenerator/fieldgenerator-component/pom.xml @@ -19,7 +19,7 @@ fieldgenerator com.speedment.jpastreamer - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/fieldgenerator/fieldgenerator-standard/pom.xml b/fieldgenerator/fieldgenerator-standard/pom.xml index a1381e67..0fe371b5 100644 --- a/fieldgenerator/fieldgenerator-standard/pom.xml +++ b/fieldgenerator/fieldgenerator-standard/pom.xml @@ -19,7 +19,7 @@ fieldgenerator com.speedment.jpastreamer - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/fieldgenerator/fieldgenerator-test-package/pom.xml b/fieldgenerator/fieldgenerator-test-package/pom.xml index f393a8f5..8d389b51 100644 --- a/fieldgenerator/fieldgenerator-test-package/pom.xml +++ b/fieldgenerator/fieldgenerator-test-package/pom.xml @@ -19,7 +19,7 @@ fieldgenerator com.speedment.jpastreamer - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/fieldgenerator/fieldgenerator-test/pom.xml b/fieldgenerator/fieldgenerator-test/pom.xml index cb955d17..189f32a3 100644 --- a/fieldgenerator/fieldgenerator-test/pom.xml +++ b/fieldgenerator/fieldgenerator-test/pom.xml @@ -19,7 +19,7 @@ fieldgenerator com.speedment.jpastreamer - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/fieldgenerator/pom.xml b/fieldgenerator/pom.xml index 538d9447..08d22a6a 100644 --- a/fieldgenerator/pom.xml +++ b/fieldgenerator/pom.xml @@ -19,7 +19,7 @@ jpastreamer-parent com.speedment.jpastreamer - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/integration/cdi/cdi-jpastreamer/pom.xml b/integration/cdi/cdi-jpastreamer/pom.xml index 65fc7244..8fcf4bb2 100644 --- a/integration/cdi/cdi-jpastreamer/pom.xml +++ b/integration/cdi/cdi-jpastreamer/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer.integration.cdi cdi-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/integration/cdi/pom.xml b/integration/cdi/pom.xml index ded9849a..a1b14c49 100644 --- a/integration/cdi/pom.xml +++ b/integration/cdi/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer.integration integration-parent - 3.0.2 + 3.0.3-SNAPSHOT diff --git a/integration/pom.xml b/integration/pom.xml index 473f7709..cac98f69 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/integration/spring/pom.xml b/integration/spring/pom.xml index a7e5f5ee..102a6eb9 100644 --- a/integration/spring/pom.xml +++ b/integration/spring/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer.integration integration-parent - 3.0.2 + 3.0.3-SNAPSHOT diff --git a/integration/spring/spring-boot-jpastreamer-autoconfigure/pom.xml b/integration/spring/spring-boot-jpastreamer-autoconfigure/pom.xml index bcb30877..23e58e83 100644 --- a/integration/spring/spring-boot-jpastreamer-autoconfigure/pom.xml +++ b/integration/spring/spring-boot-jpastreamer-autoconfigure/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer.integration.spring spring-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/interopoptimizer/pom.xml b/interopoptimizer/pom.xml index ad92778a..94b149f8 100644 --- a/interopoptimizer/pom.xml +++ b/interopoptimizer/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/javanine/pom.xml b/javanine/pom.xml index aee4a903..3d1253c5 100644 --- a/javanine/pom.xml +++ b/javanine/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/merger/pom.xml b/merger/pom.xml index 9c7631f9..35ecf14a 100644 --- a/merger/pom.xml +++ b/merger/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/pipeline/pom.xml b/pipeline/pom.xml index a81e0e7a..9911a8b1 100644 --- a/pipeline/pom.xml +++ b/pipeline/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index be37699f..2f43f011 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT pom diff --git a/projection/pom.xml b/projection/pom.xml index 9267310d..884af60b 100644 --- a/projection/pom.xml +++ b/projection/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/analytics-standard/pom.xml b/provider/analytics-standard/pom.xml index a094c65b..01faa754 100644 --- a/provider/analytics-standard/pom.xml +++ b/provider/analytics-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/appinfo-standard/pom.xml b/provider/appinfo-standard/pom.xml index 4fa140c7..32fc6ca2 100644 --- a/provider/appinfo-standard/pom.xml +++ b/provider/appinfo-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/application-standard/pom.xml b/provider/application-standard/pom.xml index b6eff6e8..4ed4b6d4 100644 --- a/provider/application-standard/pom.xml +++ b/provider/application-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/autoclose-standard/pom.xml b/provider/autoclose-standard/pom.xml index bb7cb452..219ab9f3 100644 --- a/provider/autoclose-standard/pom.xml +++ b/provider/autoclose-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/builder-standard/pom.xml b/provider/builder-standard/pom.xml index 45d6c092..b8f4c44b 100644 --- a/provider/builder-standard/pom.xml +++ b/provider/builder-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/criteria-standard/pom.xml b/provider/criteria-standard/pom.xml index 820570f8..620e36fb 100644 --- a/provider/criteria-standard/pom.xml +++ b/provider/criteria-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/interopoptimizer-standard/pom.xml b/provider/interopoptimizer-standard/pom.xml index 83c0b984..8cd7e81d 100644 --- a/provider/interopoptimizer-standard/pom.xml +++ b/provider/interopoptimizer-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/merger-standard/pom.xml b/provider/merger-standard/pom.xml index 7fda88aa..2c9d63c1 100644 --- a/provider/merger-standard/pom.xml +++ b/provider/merger-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/pipeline-standard/pom.xml b/provider/pipeline-standard/pom.xml index f769feab..970146a5 100644 --- a/provider/pipeline-standard/pom.xml +++ b/provider/pipeline-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/pom.xml b/provider/pom.xml index 02def3ad..b7671e42 100644 --- a/provider/pom.xml +++ b/provider/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/renderer-standard/pom.xml b/provider/renderer-standard/pom.xml index 02923409..2ae14815 100644 --- a/provider/renderer-standard/pom.xml +++ b/provider/renderer-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/streamconfiguration-standard/pom.xml b/provider/streamconfiguration-standard/pom.xml index e149650a..423de8b5 100644 --- a/provider/streamconfiguration-standard/pom.xml +++ b/provider/streamconfiguration-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/termopmodifier-standard/pom.xml b/provider/termopmodifier-standard/pom.xml index 912563ba..d03c7cbd 100644 --- a/provider/termopmodifier-standard/pom.xml +++ b/provider/termopmodifier-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/provider/termopoptimizer-standard/pom.xml b/provider/termopoptimizer-standard/pom.xml index 0de448a2..19952d9f 100644 --- a/provider/termopoptimizer-standard/pom.xml +++ b/provider/termopoptimizer-standard/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer provider - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/renderer/pom.xml b/renderer/pom.xml index 48a38859..28ebd891 100644 --- a/renderer/pom.xml +++ b/renderer/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/rootfactory/pom.xml b/rootfactory/pom.xml index eee721b6..02230c88 100644 --- a/rootfactory/pom.xml +++ b/rootfactory/pom.xml @@ -19,7 +19,7 @@ jpastreamer-parent com.speedment.jpastreamer - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/streamconfiguration/pom.xml b/streamconfiguration/pom.xml index 02b339b8..1db72cf3 100644 --- a/streamconfiguration/pom.xml +++ b/streamconfiguration/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/termopmodifier/pom.xml b/termopmodifier/pom.xml index 8d2063fd..56a8d3eb 100644 --- a/termopmodifier/pom.xml +++ b/termopmodifier/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 diff --git a/termopoptimizer/pom.xml b/termopoptimizer/pom.xml index 55466caa..0102cb91 100644 --- a/termopoptimizer/pom.xml +++ b/termopoptimizer/pom.xml @@ -19,7 +19,7 @@ com.speedment.jpastreamer jpastreamer-parent - 3.0.2 + 3.0.3-SNAPSHOT 4.0.0 From 31361ff4d9be8e0ab6fab96db984a3ff3ff43481 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 05:56:47 +0000 Subject: [PATCH 02/29] Bump maven-shade-plugin from 3.4.1 to 3.5.0 Bumps [maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.4.1 to 3.5.0. - [Release notes](https://github.com/apache/maven-shade-plugin/releases) - [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.4.1...maven-shade-plugin-3.5.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-shade-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2f43f011..eee0efb2 100644 --- a/pom.xml +++ b/pom.xml @@ -85,7 +85,7 @@ 3.5.0 3.2.1 3.6.0 - 3.4.1 + 3.5.0 0.8.8 From ccca880d7e5c6646b7fbf4bf852ae337d324b367 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 05:56:53 +0000 Subject: [PATCH 03/29] Bump maven-source-plugin from 3.2.1 to 3.3.0 Bumps [maven-source-plugin](https://github.com/apache/maven-source-plugin) from 3.2.1 to 3.3.0. - [Commits](https://github.com/apache/maven-source-plugin/compare/maven-source-plugin-3.2.1...maven-source-plugin-3.3.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-source-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2f43f011..b652cc6d 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,7 @@ 3.1.0 3.5.0 - 3.2.1 + 3.3.0 3.6.0 3.4.1 0.8.8 From 786576f81a1376a34207ae47c09bc96a8fc422f4 Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Tue, 20 Jun 2023 09:13:54 +0200 Subject: [PATCH 04/29] Fix metadata in troubleshooting chapter --- docs/modules/troubleshooting/pages/troubleshooting.adoc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/modules/troubleshooting/pages/troubleshooting.adoc b/docs/modules/troubleshooting/pages/troubleshooting.adoc index b95511ae..b2e25c6b 100644 --- a/docs/modules/troubleshooting/pages/troubleshooting.adoc +++ b/docs/modules/troubleshooting/pages/troubleshooting.adoc @@ -3,9 +3,8 @@ keywords: stream, jpastreamer, java, transactions, JPA, troubleshooting author: Julia Gustafsson :reftext: Troubleshooting :navtitle: Troubleshooting -:toclevels:3 -:source-highlighter: highlight.js - +:toclevels: 3 +This section explores pitfalls that users may encounter while working with JPAStreamer and provides practical solutions to address them. This section explores pitfalls that users may encounter while working with JPAStreamer and provides practical solutions to address them. == Metamodel Generation From 329c2f1bed73c218f05e67fcbeb20f793005d949 Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Tue, 20 Jun 2023 09:14:26 +0200 Subject: [PATCH 05/29] Instruct Antora to clear cache between builds --- docs/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/package.json b/docs/package.json index 07897413..a631afa3 100644 --- a/docs/package.json +++ b/docs/package.json @@ -3,8 +3,8 @@ "version": "1.0.0", "description": "Documentation for JPAStreamer built with Antora", "scripts": { - "build-local": "antora site-local.yml", - "build": "antora site.yml" + "build-local": "antora --fetch site-local.yml", + "build": "antora --fetch site.yml" }, "author": "JPAStreamer", "license": "UNLICENSED", From b7114100caddbe7b7800547c309e51c7b9223f04 Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Tue, 20 Jun 2023 10:28:05 +0200 Subject: [PATCH 06/29] Check access levels for all getters, fix #348 --- .../internal/InternalFieldGeneratorProcessor.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java b/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java index 89fd62e8..672ca35c 100644 --- a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java +++ b/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java @@ -98,7 +98,7 @@ public boolean process(Set annotations, RoundEnvironment Set entities = roundEnv.getElementsAnnotatedWith(Entity.class); if (entities.isEmpty()) { - System.out.format("[JPAStreamer Field Generator Processor] Found no classes annotated with jakarta.persistence.Entity.\n"); + messager.printMessage(Diagnostic.Kind.WARNING, "[JPAStreamer Field Generator Processor] Found no classes annotated with jakarta.persistence.Entity.\n"); return true; } @@ -107,7 +107,7 @@ public boolean process(Set annotations, RoundEnvironment .forEach(ae -> { try { final String entityName = ae.asType().toString(); - System.out.format("[JPAStreamer Field Generator Processor] Generating class for: %s\n", entityName); + messager.printMessage(Diagnostic.Kind.NOTE, "[JPAStreamer Field Generator Processor] Generating class for: " + entityName + "\n"); final String shortEntityName = shortName(entityName); final String prefix = processingEnv.getOptions().getOrDefault("jpaStreamerPrefix", ""); @@ -189,8 +189,9 @@ private String findGetter(final Element field, final String standardJavaName = javaNameFromExternal(fieldName); final String standardGetterName = getterPrefix + standardJavaName; - - if (getters.get(standardGetterName) != null || isGetters.contains(standardGetterName)) { + final boolean disallowedAccessLevel = DISALLOWED_ACCESS_LEVELS.contains(getterAccessLevel(field).orElse("No access level defined")); + + if (!disallowedAccessLevel && (getters.get(standardGetterName) != null || isGetters.contains(standardGetterName))) { // We got lucky because the user elected to conform // to the standard JavaBean notation. return entityName + "::" + standardGetterName; @@ -217,7 +218,6 @@ private String findGetter(final Element field, // Todo: This should be an error in the future messager.printMessage(Diagnostic.Kind.WARNING, "Class " + entityName + " is not a proper JavaBean because " + field.getSimpleName().toString() + " has no standard getter. Fix the issue to ensure stability."); return lambdaName + " -> {throw new " + IllegalJavaBeanException.class.getSimpleName() + "(" + entityName + ".class, \"" + fieldName + "\");}"; - } private File generatedEntity(final Map enclosedFields, final String entityName, final String genEntityName, final String packageName) { From 8d384de7a42b0b791c5924fea4d61d1b067c73b3 Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Tue, 20 Jun 2023 14:40:30 +0200 Subject: [PATCH 07/29] Improve trimming of annotations, fix #345 --- .../InternalFieldGeneratorProcessor.java | 17 +++++++++++++++-- .../jpastreamer/fieldgenerator/test/Film.java | 11 ++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java b/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java index 672ca35c..0253d4e4 100644 --- a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java +++ b/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java @@ -343,8 +343,21 @@ private Type fieldType(Element field) { private String trimAnnotations(Element field) { final String fieldType = field.asType().toString(); - final int index = fieldType.lastIndexOf(' '); - return index < 0 ? fieldType : fieldType.substring(index + 1); + final List annotations = field.getAnnotationMirrors().stream() + .map(Object::toString) + .filter(s -> !(s.contains("jakarta"))) + .collect(Collectors.toList()); + if (annotations.isEmpty() && !fieldType.contains("@")) { + final int index = fieldType.lastIndexOf(' '); + return index < 0 ? fieldType : fieldType.substring(index + 1); + } + String result = fieldType; + for (String annotation : annotations) { + result = result.replace(annotation, ""); + } + result = result.replace(" ", ""); + result = result.replace(",", ""); + return result; } private Type primitiveFieldType(Type fieldType, Type entityType) { diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Film.java b/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Film.java index 73d269e8..1fc7ef21 100644 --- a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Film.java +++ b/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Film.java @@ -13,6 +13,9 @@ package com.speedment.jpastreamer.fieldgenerator.test; import jakarta.persistence.*; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; import java.sql.Time; import java.time.LocalDateTime; import java.util.*; @@ -76,9 +79,13 @@ public class Film { private Integer rentalDuration; @Column(name = "rental_rate", columnDefinition = "decimal(4,2)") + @NotNull + @NotEmpty private Float rentalRate; @Column(name = "length", columnDefinition = "smallint(5)") + @NotNull + @NotEmpty private Integer length; @Column(name = "replacement_cost", columnDefinition = "decimal(5,2)") @@ -87,7 +94,9 @@ public class Film { @Column(name = "rating", columnDefinition = "enum('G','PG','PG-13','R','NC-17')") private String rating; - @Column(name = "special_features", columnDefinition = "set('Trailers','Commentaries','Deleted Scenes','Behind the Scenes')") + @Column(name = "special_features", columnDefinition = "set('Trailers','Commentaries','Deleted Scenes','Behind the Scenes')") + @NotNull + @NotEmpty private Set specialFeatures; // Should be Set @Column(name = "last_update", nullable = false, columnDefinition = "timestamp") From 2495e6a06c2c92d544eb3e53f2d9ac288281cf70 Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Wed, 21 Jun 2023 15:26:56 +0200 Subject: [PATCH 08/29] Align module names --- .gitignore | 1 + {analytics => jpastreamer.analytics}/pom.xml | 0 .../analytics/AnalyticsReporter.java | 0 .../analytics/AnalyticsReporterFactory.java | 0 .../src/main/java/module-info.java | 0 .../README.adoc | 0 {announcer => jpastreamer.announcer}/pom.xml | 0 .../jpastreamer/announcer/Announcer.java | 0 .../src/main/java/module-info.java | 0 {appinfo => jpastreamer.appinfo}/pom.xml | 0 .../appinfo/ApplicationInformation.java | 0 .../src/main/java/module-info.java | 0 .../pom.xml | 0 .../jpastreamer/application/JPAStreamer.java | 0 .../application/JPAStreamerBuilder.java | 0 .../JPAStreamerBuilderFactory.java | 0 .../application/StreamSupplier.java | 4 +- .../src/main/java/module-info.java | 0 {autoclose => jpastreamer.autoclose}/pom.xml | 0 .../autoclose/AutoCloseFactory.java | 0 .../src/main/java/module-info.java | 0 {builder => jpastreamer.builder}/pom.xml | 0 .../jpastreamer/builder/BuilderFactory.java | 0 .../src/main/java/module-info.java | 0 {core => jpastreamer.core}/pom.xml | 0 .../com/speedment/jpastreamer/core/Foo.java | 0 .../src/main/java/module-info.java | 0 {criteria => jpastreamer.criteria}/pom.xml | 0 .../jpastreamer/criteria/Criteria.java | 0 .../jpastreamer/criteria/CriteriaFactory.java | 0 .../jpastreamer/criteria/OrderFactory.java | 0 .../criteria/PredicateFactory.java | 0 .../jpastreamer/criteria/QueryParameter.java | 0 .../src/main/java/module-info.java | 0 {exception => jpastreamer.exception}/pom.xml | 0 .../exception/JPAStreamerException.java | 0 .../src/main/java/module-info.java | 0 {field => jpastreamer.field}/pom.xml | 0 .../jpastreamer/field/BooleanField.java | 0 .../jpastreamer/field/ByteField.java | 0 .../jpastreamer/field/CharField.java | 0 .../jpastreamer/field/ComparableField.java | 0 .../jpastreamer/field/DoubleField.java | 0 .../jpastreamer/field/EnumField.java | 0 .../speedment/jpastreamer/field/Field.java | 0 .../jpastreamer/field/FloatField.java | 0 .../speedment/jpastreamer/field/IntField.java | 0 .../jpastreamer/field/LongField.java | 0 .../jpastreamer/field/ReferenceField.java | 0 .../jpastreamer/field/ShortField.java | 0 .../jpastreamer/field/StringField.java | 0 .../field/collector/FieldCollector.java | 0 .../field/collector/FieldCollectors.java | 0 .../field/collector/package-info.java | 0 .../comparator/BooleanFieldComparator.java | 0 .../field/comparator/ByteFieldComparator.java | 0 .../field/comparator/CharFieldComparator.java | 0 .../field/comparator/CombinedComparator.java | 0 .../comparator/DoubleFieldComparator.java | 0 .../field/comparator/FieldComparator.java | 0 .../comparator/FloatFieldComparator.java | 0 .../field/comparator/IntFieldComparator.java | 0 .../field/comparator/LongFieldComparator.java | 0 .../field/comparator/NullOrder.java | 0 .../comparator/ReferenceFieldComparator.java | 0 .../comparator/ShortFieldComparator.java | 0 .../field/comparator/package-info.java | 0 .../exception/IllegalJavaBeanException.java | 0 .../exception/SpeedmentFieldException.java | 0 .../field/exception/package-info.java | 0 .../field/expression/FieldMapper.java | 0 .../field/expression/FieldToBigDecimal.java | 0 .../field/expression/FieldToBoolean.java | 0 .../field/expression/FieldToByte.java | 0 .../field/expression/FieldToChar.java | 0 .../field/expression/FieldToDouble.java | 0 .../field/expression/FieldToEnum.java | 0 .../field/expression/FieldToFloat.java | 0 .../field/expression/FieldToInt.java | 0 .../field/expression/FieldToLong.java | 0 .../field/expression/FieldToShort.java | 0 .../field/expression/FieldToString.java | 0 .../field/expression/package-info.java | 0 .../field/internal/BooleanFieldImpl.java | 0 .../field/internal/ByteFieldImpl.java | 0 .../field/internal/CharFieldImpl.java | 0 .../field/internal/ComparableFieldImpl.java | 0 .../field/internal/DoubleFieldImpl.java | 0 .../field/internal/EnumFieldImpl.java | 0 .../field/internal/FloatFieldImpl.java | 0 .../field/internal/IntFieldImpl.java | 0 .../field/internal/LongFieldImpl.java | 0 .../field/internal/ReferenceFieldImpl.java | 0 .../field/internal/ShortFieldImpl.java | 0 .../field/internal/StringFieldImpl.java | 0 .../collector/FieldCollectorImpl.java | 0 .../internal/collector/package-info.java | 0 .../comparator/AbstractFieldComparator.java | 0 .../BooleanFieldComparatorImpl.java | 0 .../comparator/ByteFieldComparatorImpl.java | 0 .../comparator/CharFieldComparatorImpl.java | 0 .../comparator/CombinedComparatorImpl.java | 0 .../comparator/DoubleFieldComparatorImpl.java | 0 .../comparator/FloatFieldComparatorImpl.java | 0 .../comparator/IntFieldComparatorImpl.java | 0 .../comparator/LongFieldComparatorImpl.java | 0 .../ReferenceFieldComparatorImpl.java | 0 .../comparator/ShortFieldComparatorImpl.java | 0 .../internal/comparator/package-info.java | 0 .../expression/AbstractFieldMapper.java | 0 .../expression/FieldToBigDecimalImpl.java | 0 .../expression/FieldToBooleanImpl.java | 0 .../internal/expression/FieldToByteImpl.java | 0 .../internal/expression/FieldToCharImpl.java | 0 .../expression/FieldToDoubleImpl.java | 0 .../internal/expression/FieldToEnumImpl.java | 0 .../internal/expression/FieldToFloatImpl.java | 0 .../internal/expression/FieldToIntImpl.java | 0 .../internal/expression/FieldToLongImpl.java | 0 .../internal/expression/FieldToShortImpl.java | 0 .../expression/FieldToStringImpl.java | 0 .../internal/expression/package-info.java | 0 .../field/internal/method/GetBooleanImpl.java | 0 .../field/internal/method/GetByteImpl.java | 0 .../field/internal/method/GetCharImpl.java | 0 .../field/internal/method/GetDoubleImpl.java | 0 .../field/internal/method/GetFloatImpl.java | 0 .../field/internal/method/GetIntImpl.java | 0 .../field/internal/method/GetLongImpl.java | 0 .../internal/method/GetReferenceImpl.java | 0 .../field/internal/method/GetShortImpl.java | 0 .../field/internal/method/package-info.java | 0 .../field/internal/package-info.java | 0 .../predicate/AbstractCombinedPredicate.java | 0 .../predicate/AbstractFieldPredicate.java | 0 .../internal/predicate/AbstractPredicate.java | 0 .../predicate/AlwaysFalsePredicate.java | 0 .../predicate/AlwaysTruePredicate.java | 0 .../predicate/ComposedPredicateImpl.java | 0 .../booleans/BooleanEqualPredicate.java | 0 .../booleans/BooleanNotEqualPredicate.java | 0 .../predicate/bytes/ByteBetweenPredicate.java | 0 .../predicate/bytes/ByteEqualPredicate.java | 0 .../bytes/ByteGreaterOrEqualPredicate.java | 0 .../bytes/ByteGreaterThanPredicate.java | 0 .../predicate/bytes/ByteInPredicate.java | 0 .../bytes/ByteLessOrEqualPredicate.java | 0 .../bytes/ByteLessThanPredicate.java | 0 .../bytes/ByteNotBetweenPredicate.java | 0 .../bytes/ByteNotEqualPredicate.java | 0 .../predicate/bytes/ByteNotInPredicate.java | 0 .../predicate/chars/CharBetweenPredicate.java | 0 .../predicate/chars/CharEqualPredicate.java | 0 .../chars/CharGreaterOrEqualPredicate.java | 0 .../chars/CharGreaterThanPredicate.java | 0 .../predicate/chars/CharInPredicate.java | 0 .../chars/CharLessOrEqualPredicate.java | 0 .../chars/CharLessThanPredicate.java | 0 .../chars/CharNotBetweenPredicate.java | 0 .../chars/CharNotEqualPredicate.java | 0 .../predicate/chars/CharNotInPredicate.java | 0 .../doubles/DoubleBetweenPredicate.java | 0 .../doubles/DoubleEqualPredicate.java | 0 .../DoubleGreaterOrEqualPredicate.java | 0 .../doubles/DoubleGreaterThanPredicate.java | 0 .../predicate/doubles/DoubleInPredicate.java | 0 .../doubles/DoubleLessOrEqualPredicate.java | 0 .../doubles/DoubleLessThanPredicate.java | 0 .../doubles/DoubleNotBetweenPredicate.java | 0 .../doubles/DoubleNotEqualPredicate.java | 0 .../doubles/DoubleNotInPredicate.java | 0 .../enums/EnumIsNotNullPredicate.java | 0 .../predicate/enums/EnumIsNullPredicate.java | 0 .../floats/FloatBetweenPredicate.java | 0 .../predicate/floats/FloatEqualPredicate.java | 0 .../floats/FloatGreaterOrEqualPredicate.java | 0 .../floats/FloatGreaterThanPredicate.java | 0 .../predicate/floats/FloatInPredicate.java | 0 .../floats/FloatLessOrEqualPredicate.java | 0 .../floats/FloatLessThanPredicate.java | 0 .../floats/FloatNotBetweenPredicate.java | 0 .../floats/FloatNotEqualPredicate.java | 0 .../predicate/floats/FloatNotInPredicate.java | 0 .../predicate/ints/IntBetweenPredicate.java | 0 .../predicate/ints/IntEqualPredicate.java | 0 .../ints/IntGreaterOrEqualPredicate.java | 0 .../ints/IntGreaterThanPredicate.java | 0 .../predicate/ints/IntInPredicate.java | 0 .../ints/IntLessOrEqualPredicate.java | 0 .../predicate/ints/IntLessThanPredicate.java | 0 .../ints/IntNotBetweenPredicate.java | 0 .../predicate/ints/IntNotEqualPredicate.java | 0 .../predicate/ints/IntNotInPredicate.java | 0 .../predicate/longs/LongBetweenPredicate.java | 0 .../predicate/longs/LongEqualPredicate.java | 0 .../longs/LongGreaterOrEqualPredicate.java | 0 .../longs/LongGreaterThanPredicate.java | 0 .../predicate/longs/LongInPredicate.java | 0 .../longs/LongLessOrEqualPredicate.java | 0 .../longs/LongLessThanPredicate.java | 0 .../longs/LongNotBetweenPredicate.java | 0 .../longs/LongNotEqualPredicate.java | 0 .../predicate/longs/LongNotInPredicate.java | 0 .../internal/predicate/package-info.java | 0 .../reference/ReferenceBetweenPredicate.java | 0 .../reference/ReferenceEqualPredicate.java | 0 .../ReferenceGreaterOrEqualPredicate.java | 0 .../ReferenceGreaterThanPredicate.java | 0 .../reference/ReferenceInPredicate.java | 0 .../ReferenceIsNotNullPredicate.java | 0 .../reference/ReferenceIsNullPredicate.java | 0 .../ReferenceLessOrEqualPredicate.java | 0 .../reference/ReferenceLessThanPredicate.java | 0 .../ReferenceNotBetweenPredicate.java | 0 .../reference/ReferenceNotEqualPredicate.java | 0 .../reference/ReferenceNotInPredicate.java | 0 .../shorts/ShortBetweenPredicate.java | 0 .../predicate/shorts/ShortEqualPredicate.java | 0 .../shorts/ShortGreaterOrEqualPredicate.java | 0 .../shorts/ShortGreaterThanPredicate.java | 0 .../predicate/shorts/ShortInPredicate.java | 0 .../shorts/ShortLessOrEqualPredicate.java | 0 .../shorts/ShortLessThanPredicate.java | 0 .../shorts/ShortNotBetweenPredicate.java | 0 .../shorts/ShortNotEqualPredicate.java | 0 .../predicate/shorts/ShortNotInPredicate.java | 0 .../string/AbstractStringPredicate.java | 0 .../StringContainsIgnoreCasePredicate.java | 0 .../string/StringContainsPredicate.java | 0 .../StringEndsWithIgnoreCasePredicate.java | 0 .../string/StringEndsWithPredicate.java | 0 .../StringEqualIgnoreCasePredicate.java | 0 .../string/StringIsEmptyPredicate.java | 0 .../string/StringIsNotEmptyPredicate.java | 0 .../string/StringIsNotNullPredicate.java | 0 .../string/StringIsNullPredicate.java | 0 .../StringNotContainsIgnoreCasePredicate.java | 0 .../string/StringNotContainsPredicate.java | 0 .../StringNotEndsWithIgnoreCasePredicate.java | 0 .../string/StringNotEndsWithPredicate.java | 0 .../StringNotEqualIgnoreCasePredicate.java | 0 ...tringNotStartsWithIgnoreCasePredicate.java | 0 .../string/StringNotStartsWithPredicate.java | 0 .../StringStartsWithIgnoreCasePredicate.java | 0 .../string/StringStartsWithPredicate.java | 0 .../field/internal/util/CollectionUtil.java | 0 .../field/method/BooleanGetter.java | 0 .../jpastreamer/field/method/ByteGetter.java | 0 .../jpastreamer/field/method/CharGetter.java | 0 .../field/method/DoubleGetter.java | 0 .../jpastreamer/field/method/FloatGetter.java | 0 .../jpastreamer/field/method/GetBoolean.java | 0 .../jpastreamer/field/method/GetByte.java | 0 .../jpastreamer/field/method/GetChar.java | 0 .../jpastreamer/field/method/GetDouble.java | 0 .../jpastreamer/field/method/GetFloat.java | 0 .../jpastreamer/field/method/GetInt.java | 0 .../jpastreamer/field/method/GetLong.java | 0 .../field/method/GetReference.java | 0 .../jpastreamer/field/method/GetShort.java | 0 .../jpastreamer/field/method/Getter.java | 0 .../jpastreamer/field/method/IntGetter.java | 0 .../jpastreamer/field/method/LongGetter.java | 0 .../field/method/ReferenceGetter.java | 0 .../jpastreamer/field/method/ShortGetter.java | 0 .../field/method/package-info.java | 0 .../jpastreamer/field/package-info.java | 0 .../field/predicate/CombinedPredicate.java | 0 .../field/predicate/ComposedPredicate.java | 0 .../predicate/FieldIsNotNullPredicate.java | 0 .../field/predicate/FieldIsNullPredicate.java | 0 .../field/predicate/FieldPredicate.java | 0 .../field/predicate/Inclusion.java | 0 .../field/predicate/PredicateType.java | 0 .../field/predicate/SpeedmentPredicate.java | 0 .../field/predicate/package-info.java | 0 .../field/predicate/trait/HasField.java | 0 .../field/predicate/trait/HasInclusion.java | 0 .../predicate/trait/HasPredicateType.java | 0 .../field/predicate/trait/package-info.java | 0 .../jpastreamer/field/trait/HasArg0.java | 0 .../jpastreamer/field/trait/HasArg1.java | 0 .../jpastreamer/field/trait/HasArg2.java | 0 .../trait/HasAttributeConverterClass.java | 0 .../field/trait/HasBooleanOperators.java | 0 .../field/trait/HasBooleanValue.java | 0 .../jpastreamer/field/trait/HasByteValue.java | 0 .../jpastreamer/field/trait/HasCharValue.java | 0 .../field/trait/HasColumnName.java | 0 .../field/trait/HasComparableOperators.java | 0 .../field/trait/HasDoubleValue.java | 0 .../field/trait/HasFloatValue.java | 0 .../jpastreamer/field/trait/HasGetter.java | 0 .../jpastreamer/field/trait/HasIntValue.java | 0 .../jpastreamer/field/trait/HasLongValue.java | 0 .../field/trait/HasReferenceOperators.java | 0 .../field/trait/HasReferenceValue.java | 0 .../field/trait/HasShortValue.java | 0 .../field/trait/HasStringOperators.java | 0 .../jpastreamer/field/trait/HasTable.java | 0 .../jpastreamer/field/trait/package-info.java | 0 .../src/main/java/module-info.java | 0 .../pom.xml | 0 .../fieldgenerator/component/FilmRating.java | 0 .../fieldgenerator/component/FilmTitle.java | 0 .../component/FilmTitleConverter.java | 0 .../src/main/java/module-info.java | 0 .../pom.xml | 0 .../StandardFieldGeneratorProcessor.java | 0 .../FieldGeneratorProcessorException.java | 0 .../exception/TypeParserException.java | 0 .../InternalFieldGeneratorProcessor.java | 0 .../internal/typeparser/Node.java | 0 .../internal/typeparser/TypeParser.java | 0 .../src/main/java/module-info.java | 0 .../internal/typeparser/TypeParserTest.java | 0 .../pom.xml | 0 .../fieldgenerator/test/renaming/Actor.java | 0 .../fieldgenerator/test/renaming/Film.java | 0 .../test/renaming/Language.java | 0 .../fieldgenerator/test/renaming/Main.java | 0 .../fieldgenerator/test/renaming/User.java | 0 .../fieldgenerator/test/renaming/User2.java | 0 .../src/main/java/module-info.java | 0 .../jpastreamer.fieldgenerator.test}/pom.xml | 0 .../fieldgenerator/test/Actor.java | 0 .../jpastreamer/fieldgenerator/test/Film.java | 0 .../fieldgenerator/test/Language.java | 0 .../fieldgenerator/test/Lombok2Bean.java | 0 .../fieldgenerator/test/Lombok3Bean.java | 0 .../fieldgenerator/test/LombokBean.java | 0 .../jpastreamer/fieldgenerator/test/Main.java | 0 .../fieldgenerator/test/NonJavaBean.java | 0 .../jpastreamer/fieldgenerator/test/User.java | 0 .../fieldgenerator/test/User2.java | 0 .../src/main/java/module-info.java | 0 .../pom.xml | 10 ++-- .../cdi/jpastreamer.integration.cdi/pom.xml | 45 ++++++++++++++++++ .../integration/cdi/JPAStreamerProducer.java | 35 ++++++++++++++ .../src/main/java/module-info.java | 21 +++++++++ .../cdi/pom.xml | 2 +- .../pom.xml | 0 .../pom.xml | 0 .../JPAStreamerAutoConfiguration.java | 0 .../src/main/java/module-info.java | 0 .../main/resources/META-INF/spring.factories | 0 .../spring/pom.xml | 2 +- .../pom.xml | 0 .../IntermediateOperationOptimizer.java | 0 ...IntermediateOperationOptimizerFactory.java | 0 .../src/main/java/module-info.java | 0 {javanine => jpastreamer.javanine}/pom.xml | 0 .../javanine/Java9DoubleStreamAdditions.java | 0 .../javanine/Java9IntStreamAdditions.java | 0 .../javanine/Java9LongStreamAdditions.java | 0 .../javanine/Java9StreamAdditions.java | 0 .../jpastreamer/javanine/Java9StreamUtil.java | 0 .../internal/InternalJava9StreamUtil.java | 0 .../jpastreamer/javanine/package-info.java | 0 .../src/main/java/module-info.java | 0 {merger => jpastreamer.merger}/pom.xml | 0 .../jpastreamer/merger/CriteriaMerger.java | 0 .../jpastreamer/merger/MergerFactory.java | 0 .../jpastreamer/merger/QueryMerger.java | 0 .../merger/result/CriteriaMergeResult.java | 0 .../merger/result/QueryMergeResult.java | 0 .../src/main/java/module-info.java | 0 {pipeline => jpastreamer.pipeline}/pom.xml | 0 .../jpastreamer/pipeline/Pipeline.java | 0 .../jpastreamer/pipeline/PipelineFactory.java | 0 .../DoubleIntermediateOperationFactory.java | 0 .../IntIntermediateOperationFactory.java | 0 .../intermediate/IntermediateOperation.java | 0 .../IntermediateOperationFactory.java | 0 .../IntermediateOperationFunctionalType.java | 0 .../IntermediateOperationType.java | 0 .../LongIntermediateOperationFactory.java | 0 .../pipeline/intermediate/Property.java | 0 .../pipeline/intermediate/Statement.java | 0 .../pipeline/intermediate/Verb.java | 0 .../BaseStreamTerminalOperationFactory.java | 0 .../DoubleTerminalOperationFactory.java | 0 .../terminal/IntTerminalOperationFactory.java | 0 .../LongTerminalOperationFactory.java | 0 .../pipeline/terminal/OrderPreservation.java | 0 .../pipeline/terminal/TerminalOperation.java | 0 .../terminal/TerminalOperationFactory.java | 0 .../TerminalOperationFunctionalType.java | 0 .../terminal/TerminalOperationType.java | 0 .../pipeline/trait/HasArguments.java | 0 .../pipeline/trait/HasFunction.java | 0 .../pipeline/trait/HasReturnType.java | 0 .../pipeline/trait/HasStreamType.java | 0 .../jpastreamer/pipeline/trait/HasType.java | 0 .../src/main/java/module-info.java | 0 .../pom.xml | 0 .../jpastreamer/projection/Projection.java | 0 .../internal/InternalProjection.java | 0 .../internal/StandardTupleElement.java | 0 .../projection/internal/TupleContext.java | 0 .../src/main/java/module-info.java | 0 .../projection/ProjectionTest.java | 0 .../jpastreamer.analytics.standard}/pom.xml | 0 .../StandardAnalyticsReporterFactory.java | 0 .../analytics/standard/internal/Handler.java | 0 .../InternalStandardAnalyticsReporter.java | 0 .../standard/internal/google/EventType.java | 0 .../google/GoogleAnalyticsHandler.java | 0 .../standard/internal/google/HttpUtil.java | 0 .../google/InternalAnalyticsException.java | 0 .../standard/internal/google/JsonUtil.java | 0 .../src/main/java/module-info.java | 0 ...treamer.analytics.AnalyticsReporterFactory | 0 .../jpastreamer.appinfo.standard}/pom.xml | 0 .../StandardApplicationInformation.java | 0 ...nternalStandardApplicationInformation.java | 0 .../src/main/java/module-info.java | 0 ...jpastreamer.appinfo.ApplicationInformation | 0 .../jpastreamer.application.standard}/pom.xml | 0 .../StandardJPAStreamerBuilderFactory.java | 0 .../internal/StandardJPAStreamer.java | 0 .../internal/StandardJPAStreamerBuilder.java | 0 .../internal/StandardStreamSupplier.java | 0 .../src/main/java/module-info.java | 0 ...amer.application.JPAStreamerBuilderFactory | 0 .../jpastreamer.autoclose.standard}/pom.xml | 0 .../standard/StandardAutoCloseFactory.java | 0 .../AbstractAutoClosingBaseStream.java | 0 .../internal/AutoClosingDoubleStream.java | 0 .../internal/AutoClosingIntStream.java | 0 .../internal/AutoClosingLongStream.java | 0 .../standard/internal/AutoClosingStream.java | 0 .../internal/InternalAutoCloseFactory.java | 0 .../src/main/java/module-info.java | 0 ...ent.jpastreamer.autoclose.AutoCloseFactory | 0 .../AbstractAutoClosingStreamTest.java | 0 .../internal/AutoClosingDoubleStreamTest.java | 0 .../internal/AutoClosingIntStreamTest.java | 0 .../internal/AutoClosingLongStreamTest.java | 0 .../internal/AutoClosingStreamTest.java | 0 .../jpastreamer.builder.standard}/pom.xml | 0 .../standard/StandardBuilderFactory.java | 0 .../standard/internal/BaseBuilderState.java | 0 .../standard/internal/BaseStreamBuilder.java | 0 .../standard/internal/BaseStreamSupport.java | 0 .../internal/DoubleStreamBuilder.java | 0 .../builder/standard/internal/Factories.java | 0 .../standard/internal/InjectedFactories.java | 0 .../standard/internal/IntStreamBuilder.java | 0 .../internal/InternalBuilderFactory.java | 0 .../standard/internal/LongStreamBuilder.java | 0 .../internal/MockRendererFactory.java | 0 .../standard/internal/StreamBuilder.java | 0 .../standard/internal/StreamBuilderUtil.java | 0 .../src/main/java/module-info.java | 0 ...eedment.jpastreamer.builder.BuilderFactory | 0 .../internal/BaseStreamBuilderTest.java | 0 .../internal/DoubleStreamBuilderTest.java | 0 .../internal/IntStreamBuilderTest.java | 0 .../internal/LongStreamBuilderTest.java | 0 .../standard/internal/StreamBuilderTest.java | 0 .../standard/internal/TestFactories.java | 0 .../jpastreamer.criteria.standard}/pom.xml | 0 .../standard/StandardCriteriaFactory.java | 0 .../standard/StandardOrderFactory.java | 0 .../standard/StandardPredicateFactory.java | 0 .../standard/internal/InternalCriteria.java | 0 .../internal/InternalCriteriaFactory.java | 0 .../internal/InternalOrderFactory.java | 0 .../internal/InternalPredicateFactory.java | 0 .../internal/InternalQueryParameter.java | 0 .../internal/order/DefaultOrderMapper.java | 0 .../standard/internal/order/OrderMapper.java | 0 .../predicate/DefaultPredicateMapper.java | 0 .../predicate/ParameterizedPredicate.java | 0 .../internal/predicate/PredicateMapper.java | 0 .../internal/predicate/PredicateMapping.java | 0 .../criteria/standard/internal/util/Cast.java | 0 .../src/main/java/module-info.java | 0 ...dment.jpastreamer.criteria.CriteriaFactory | 0 ...peedment.jpastreamer.criteria.OrderFactory | 0 ...ment.jpastreamer.criteria.PredicateFactory | 0 .../standard/StandardCriteriaFactoryTest.java | 0 .../StandardPredicateFactoryTest.java | 0 .../internal/InternalCriteriaTest.java | 0 .../InternalPredicateFactoryTest.java | 0 .../internal/util/ReflectionUtil.java | 0 .../support/CombinedStringPredicate.java | 0 .../support/StringEqualPredicate.java | 0 .../support/StringNotEqualPredicate.java | 0 .../pom.xml | 0 ...IntermediateOperationOptimizerFactory.java | 0 ...IntermediateOperationOptimizerFactory.java | 0 .../RemoveOrderAffectingOperations.java | 0 .../internal/strategy/RemovePeek.java | 0 .../internal/strategy/SquashDistinct.java | 0 .../internal/strategy/SquashFilter.java | 0 .../internal/strategy/SquashLimit.java | 0 .../internal/strategy/SquashSkip.java | 0 .../internal/strategy/SquashSorted.java | 0 .../strategy/squash/NoValueSquash.java | 0 .../strategy/squash/SingleValueSquash.java | 0 .../internal/strategy/squash/Squash.java | 0 .../abstracts/AbstractNoValueSquash.java | 0 .../abstracts/AbstractSingleValueSquash.java | 0 .../squash/abstracts/ComparatorSquash.java | 0 .../strategy/squash/abstracts/LongSquash.java | 0 .../squash/abstracts/PredicateSquash.java | 0 .../src/main/java/module-info.java | 0 ...izer.IntermediateOperationOptimizerFactory | 0 ...rmediateOperationOptimizerFactoryTest.java | 0 .../internal/strategy/SquashDistinctTest.java | 0 .../internal/strategy/SquashFilterTest.java | 0 .../internal/strategy/SquashLimitTest.java | 0 .../internal/strategy/SquashSkipTest.java | 0 .../internal/strategy/SquashSortedTest.java | 0 .../internal/strategy/SquashTest.java | 0 .../jpastreamer.merger.standard}/pom.xml | 0 .../standard/StandardMergerFactory.java | 0 .../internal/InternalMergerFactory.java | 0 .../criteria/InternalCriteriaMerger.java | 0 .../result/InternalCriteriaMergeResult.java | 0 .../criteria/strategy/CriteriaModifier.java | 0 .../strategy/DistinctCriteriaModifier.java | 0 .../strategy/FilterCriteriaModifier.java | 0 .../strategy/SortedCriteriaModifier.java | 0 .../internal/query/InternalQueryMerger.java | 0 .../result/InternalQueryMergeResult.java | 0 .../query/strategy/QueryModifier.java | 0 .../query/strategy/SkipLimitModifier.java | 0 ...DefaultIntermediateOperationReference.java | 0 .../IntermediateOperationReference.java | 0 .../tracker/DefaultMergingTracker.java | 0 .../internal/tracker/MergingTracker.java | 0 .../src/main/java/module-info.java | 0 ...speedment.jpastreamer.merger.MergerFactory | 0 .../jpastreamer.pipeline.standard}/pom.xml | 0 ...ardDoubleIntermediateOperationFactory.java | 0 ...andardIntIntermediateOperationFactory.java | 0 .../StandardIntermediateOperationFactory.java | 0 ...ndardLongIntermediateOperationFactory.java | 0 ...nalDoubleIntermediateOperationFactory.java | 0 ...ternalIntIntermediateOperationFactory.java | 0 .../InternalIntermediateOperationFactory.java | 0 ...ernalLongIntermediateOperationFactory.java | 0 .../StandardIntermediateOperation.java | 0 .../standard/internal/TypeUtil.java | 0 .../standard/StandardPipelineFactory.java | 0 .../internal/InternalPipelineFactory.java | 0 .../standard/internal/StandardPipeline.java | 0 ...tandardDoubleTerminalOperationFactory.java | 0 .../StandardIntTerminalOperationFactory.java | 0 .../StandardLongTerminalOperationFactory.java | 0 .../StandardTerminalOperationFactory.java | 0 .../internal/AbstractTerminalOperation.java | 0 .../internal/AcceptTerminalOperation.java | 0 .../ApplyAsDoubleTerminalOperation.java | 0 .../internal/ApplyAsIntTerminalOperation.java | 0 .../ApplyAsLongTerminalOperation.java | 0 .../internal/ApplyTerminalOperation.java | 0 ...nternalDoubleTerminalOperationFactory.java | 0 .../InternalIntTerminalOperationFactory.java | 0 .../InternalLongTerminalOperationFactory.java | 0 .../InternalTerminalOperationFactory.java | 0 .../internal/TestTerminalOperation.java | 0 .../src/main/java/module-info.java | 0 ...dment.jpastreamer.pipeline.PipelineFactory | 0 ...mediate.DoubleIntermediateOperationFactory | 0 ...termediate.IntIntermediateOperationFactory | 0 ....intermediate.IntermediateOperationFactory | 0 ...ermediate.LongIntermediateOperationFactory | 0 ...ne.terminal.DoubleTerminalOperationFactory | 0 ...eline.terminal.IntTerminalOperationFactory | 0 ...line.terminal.LongTerminalOperationFactory | 0 ...pipeline.terminal.TerminalOperationFactory | 0 ...ernalIntermediateOperationFactoryTest.java | 0 .../InternalTerminalOperationFactoryTest.java | 0 .../internal/StandardPipelineTest.java | 0 .../pipeline/terminal/standard/Main.java | 0 .../jpastreamer.renderer.standard}/pom.xml | 0 .../standard/StandardRendererFactory.java | 0 .../internal/InternalRendererFactory.java | 0 .../internal/StandardRenderResult.java | 0 .../standard/internal/StandardRenderer.java | 0 .../src/main/java/module-info.java | 0 ...dment.jpastreamer.renderer.RendererFactory | 0 .../pom.xml | 0 .../StandardStreamConfigurationFactory.java | 0 .../internal/StandardJoinConfiguration.java | 0 .../internal/StandardStreamConfiguration.java | 0 .../src/main/java/module-info.java | 0 ...amconfiguration.StreamConfigurationFactory | 0 .../standard/internal/Film$.java | 0 .../standard/internal/Film.java | 0 .../StandardStreamConfigurationTest.java | 0 .../pom.xml | 0 ...andardTerminalOperatorModifierFactory.java | 0 ...ternalTerminalOperatorModifierFactory.java | 0 .../StandardTerminalOperatorModifier.java | 0 .../src/main/java/module-info.java | 0 ...pmodifier.TerminalOperationModifierFactory | 0 ...dTerminalOperationModifierFactoryTest.java | 0 .../standard/internal/AnyMatchTest.java | 0 .../standard/internal/FindAnyTest.java | 0 .../standard/internal/FindFirstTest.java | 0 .../standard/internal/NoneMatchTest.java | 0 ...StandardTerminalOperationModifierTest.java | 0 .../standard/internal/model/Film$.java | 0 .../standard/internal/model/Film.java | 0 .../pom.xml | 0 ...dardTerminalOperationOptimizerFactory.java | 0 ...rnalTerminalOperationOptimizerFactory.java | 0 .../StandardTerminalOperationOptimizer.java | 0 .../src/main/java/module-info.java | 0 ...ptimizer.TerminalOperationOptimizerFactory | 0 {provider => jpastreamer.provider}/pom.xml | 26 +++++----- {renderer => jpastreamer.renderer}/pom.xml | 0 .../jpastreamer/renderer/RenderResult.java | 0 .../jpastreamer/renderer/Renderer.java | 0 .../jpastreamer/renderer/RendererFactory.java | 0 .../src/main/java/module-info.java | 0 .../pom.xml | 0 .../jpastreamer/rootfactory/Priority.java | 0 .../jpastreamer/rootfactory/RootFactory.java | 0 .../internal/InternalRootFactory.java | 0 .../src/main/java/module-info.java | 0 .../pom.xml | 0 .../StreamConfiguration.java | 13 ++++- .../StreamConfigurationFactory.java | 0 .../src/main/java/module-info.java | 0 .../pom.xml | 0 .../TerminalOperationModifier.java | 0 .../TerminalOperationModifierFactory.java | 0 .../src/main/java/module-info.java | 0 .../pom.xml | 0 .../TerminalOperationOptimizer.java | 0 .../TerminalOperationOptimizerFactory.java | 0 .../src/main/java/module-info.java | 0 pom.xml | 47 ++++++++++--------- 639 files changed, 160 insertions(+), 46 deletions(-) rename {analytics => jpastreamer.analytics}/pom.xml (100%) rename {analytics => jpastreamer.analytics}/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporter.java (100%) rename {analytics => jpastreamer.analytics}/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporterFactory.java (100%) rename {analytics => jpastreamer.analytics}/src/main/java/module-info.java (100%) rename {announcer => jpastreamer.announcer}/README.adoc (100%) rename {announcer => jpastreamer.announcer}/pom.xml (100%) rename {announcer => jpastreamer.announcer}/src/main/java/com/speedment/jpastreamer/announcer/Announcer.java (100%) rename {announcer => jpastreamer.announcer}/src/main/java/module-info.java (100%) rename {appinfo => jpastreamer.appinfo}/pom.xml (100%) rename {appinfo => jpastreamer.appinfo}/src/main/java/com/speedment/jpastreamer/appinfo/ApplicationInformation.java (100%) rename {appinfo => jpastreamer.appinfo}/src/main/java/module-info.java (100%) rename {application => jpastreamer.application}/pom.xml (100%) rename {application => jpastreamer.application}/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java (100%) rename {application => jpastreamer.application}/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilder.java (100%) rename {application => jpastreamer.application}/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilderFactory.java (100%) rename {application => jpastreamer.application}/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java (99%) rename {application => jpastreamer.application}/src/main/java/module-info.java (100%) rename {autoclose => jpastreamer.autoclose}/pom.xml (100%) rename {autoclose => jpastreamer.autoclose}/src/main/java/com/speedment/jpastreamer/autoclose/AutoCloseFactory.java (100%) rename {autoclose => jpastreamer.autoclose}/src/main/java/module-info.java (100%) rename {builder => jpastreamer.builder}/pom.xml (100%) rename {builder => jpastreamer.builder}/src/main/java/com/speedment/jpastreamer/builder/BuilderFactory.java (100%) rename {builder => jpastreamer.builder}/src/main/java/module-info.java (100%) rename {core => jpastreamer.core}/pom.xml (100%) rename {core => jpastreamer.core}/src/main/java/com/speedment/jpastreamer/core/Foo.java (100%) rename {core => jpastreamer.core}/src/main/java/module-info.java (100%) rename {criteria => jpastreamer.criteria}/pom.xml (100%) rename {criteria => jpastreamer.criteria}/src/main/java/com/speedment/jpastreamer/criteria/Criteria.java (100%) rename {criteria => jpastreamer.criteria}/src/main/java/com/speedment/jpastreamer/criteria/CriteriaFactory.java (100%) rename {criteria => jpastreamer.criteria}/src/main/java/com/speedment/jpastreamer/criteria/OrderFactory.java (100%) rename {criteria => jpastreamer.criteria}/src/main/java/com/speedment/jpastreamer/criteria/PredicateFactory.java (100%) rename {criteria => jpastreamer.criteria}/src/main/java/com/speedment/jpastreamer/criteria/QueryParameter.java (100%) rename {criteria => jpastreamer.criteria}/src/main/java/module-info.java (100%) rename {exception => jpastreamer.exception}/pom.xml (100%) rename {exception => jpastreamer.exception}/src/main/java/com/speedment/jpastreamer/exception/JPAStreamerException.java (100%) rename {exception => jpastreamer.exception}/src/main/java/module-info.java (100%) rename {field => jpastreamer.field}/pom.xml (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/BooleanField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/ByteField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/CharField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/ComparableField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/DoubleField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/EnumField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/Field.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/FloatField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/IntField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/LongField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/ReferenceField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/ShortField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/StringField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollector.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollectors.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/collector/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/BooleanFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/ByteFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/CharFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/CombinedComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/DoubleFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/FieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/FloatFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/IntFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/LongFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/NullOrder.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/ReferenceFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/ShortFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/comparator/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/exception/IllegalJavaBeanException.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/exception/SpeedmentFieldException.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/exception/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldMapper.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBigDecimal.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBoolean.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToByte.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToChar.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToDouble.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToEnum.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToFloat.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToInt.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToLong.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToShort.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/FieldToString.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/expression/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/BooleanFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/ByteFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/CharFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/ComparableFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/DoubleFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/EnumFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/FloatFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/IntFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/LongFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/ReferenceFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/ShortFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/StringFieldImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/collector/FieldCollectorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/collector/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/AbstractFieldComparator.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/BooleanFieldComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ByteFieldComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CharFieldComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CombinedComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/DoubleFieldComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/FloatFieldComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/IntFieldComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/LongFieldComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ReferenceFieldComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ShortFieldComparatorImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/comparator/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/AbstractFieldMapper.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBigDecimalImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBooleanImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToByteImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToCharImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToDoubleImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToEnumImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToFloatImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToIntImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToLongImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToShortImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToStringImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/expression/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/GetBooleanImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/GetByteImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/GetCharImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/GetDoubleImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/GetFloatImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/GetIntImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/GetLongImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/GetReferenceImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/GetShortImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/method/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractCombinedPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractFieldPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysFalsePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysTruePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ComposedPredicateImpl.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanNotEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNotNullPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNullPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNotNullPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNullPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessOrEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessThanPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotBetweenPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotEqualPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotInPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/AbstractStringPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsIgnoreCasePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithIgnoreCasePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEqualIgnoreCasePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsEmptyPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotEmptyPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotNullPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNullPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsIgnoreCasePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithIgnoreCasePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEqualIgnoreCasePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithIgnoreCasePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithIgnoreCasePredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/internal/util/CollectionUtil.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/BooleanGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/ByteGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/CharGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/DoubleGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/FloatGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/GetBoolean.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/GetByte.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/GetChar.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/GetDouble.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/GetFloat.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/GetInt.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/GetLong.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/GetReference.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/GetShort.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/Getter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/IntGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/LongGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/ReferenceGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/ShortGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/method/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/CombinedPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/ComposedPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNotNullPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNullPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/FieldPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/Inclusion.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/PredicateType.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/SpeedmentPredicate.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasField.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasInclusion.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasPredicateType.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/predicate/trait/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasArg0.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasArg1.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasArg2.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasAttributeConverterClass.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanOperators.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanValue.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasByteValue.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasCharValue.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasColumnName.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasComparableOperators.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasDoubleValue.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasFloatValue.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasGetter.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasIntValue.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasLongValue.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceOperators.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceValue.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasShortValue.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasStringOperators.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/HasTable.java (100%) rename {field => jpastreamer.field}/src/main/java/com/speedment/jpastreamer/field/trait/package-info.java (100%) rename {field => jpastreamer.field}/src/main/java/module-info.java (100%) rename {fieldgenerator/fieldgenerator-component => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component}/pom.xml (100%) rename {fieldgenerator/fieldgenerator-component => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component}/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmRating.java (100%) rename {fieldgenerator/fieldgenerator-component => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component}/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitle.java (100%) rename {fieldgenerator/fieldgenerator-component => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component}/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitleConverter.java (100%) rename {fieldgenerator/fieldgenerator-component => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component}/src/main/java/module-info.java (100%) rename {fieldgenerator/fieldgenerator-standard => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard}/pom.xml (100%) rename {fieldgenerator/fieldgenerator-standard => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard}/src/main/java/com/speedment/jpastreamer/fieldgenerator/StandardFieldGeneratorProcessor.java (100%) rename {fieldgenerator/fieldgenerator-standard => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard}/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/FieldGeneratorProcessorException.java (100%) rename {fieldgenerator/fieldgenerator-standard => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard}/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/TypeParserException.java (100%) rename {fieldgenerator/fieldgenerator-standard => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard}/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java (100%) rename {fieldgenerator/fieldgenerator-standard => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard}/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/Node.java (100%) rename {fieldgenerator/fieldgenerator-standard => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard}/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParser.java (100%) rename {fieldgenerator/fieldgenerator-standard => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard}/src/main/java/module-info.java (100%) rename {fieldgenerator/fieldgenerator-standard => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard}/src/test/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParserTest.java (100%) rename {fieldgenerator/fieldgenerator-test-package => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package}/pom.xml (100%) rename {fieldgenerator/fieldgenerator-test-package => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Actor.java (100%) rename {fieldgenerator/fieldgenerator-test-package => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Film.java (100%) rename {fieldgenerator/fieldgenerator-test-package => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Language.java (100%) rename {fieldgenerator/fieldgenerator-test-package => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Main.java (100%) rename {fieldgenerator/fieldgenerator-test-package => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User.java (100%) rename {fieldgenerator/fieldgenerator-test-package => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User2.java (100%) rename {fieldgenerator/fieldgenerator-test-package => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package}/src/main/java/module-info.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/pom.xml (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Actor.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Film.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Language.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok2Bean.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok3Bean.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/LombokBean.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Main.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/NonJavaBean.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User2.java (100%) rename {fieldgenerator/fieldgenerator-test => jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test}/src/main/java/module-info.java (100%) rename {fieldgenerator => jpastreamer.fieldgenerator}/pom.xml (82%) create mode 100644 jpastreamer.integration/cdi/jpastreamer.integration.cdi/pom.xml create mode 100644 jpastreamer.integration/cdi/jpastreamer.integration.cdi/src/main/java/com/speedment/jpastreamer/integration/cdi/JPAStreamerProducer.java create mode 100644 jpastreamer.integration/cdi/jpastreamer.integration.cdi/src/main/java/module-info.java rename {integration => jpastreamer.integration}/cdi/pom.xml (96%) rename {integration => jpastreamer.integration}/pom.xml (100%) rename {integration/spring/spring-boot-jpastreamer-autoconfigure => jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure}/pom.xml (100%) rename {integration/spring/spring-boot-jpastreamer-autoconfigure => jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure}/src/main/java/com/speedment/jpastreamer/integration/spring/autoconfigure/JPAStreamerAutoConfiguration.java (100%) rename {integration/spring/spring-boot-jpastreamer-autoconfigure => jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure}/src/main/java/module-info.java (100%) rename {integration/spring/spring-boot-jpastreamer-autoconfigure => jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure}/src/main/resources/META-INF/spring.factories (100%) rename {integration => jpastreamer.integration}/spring/pom.xml (95%) rename {interopoptimizer => jpastreamer.interopoptimizer}/pom.xml (100%) rename {interopoptimizer => jpastreamer.interopoptimizer}/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizer.java (100%) rename {interopoptimizer => jpastreamer.interopoptimizer}/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizerFactory.java (100%) rename {interopoptimizer => jpastreamer.interopoptimizer}/src/main/java/module-info.java (100%) rename {javanine => jpastreamer.javanine}/pom.xml (100%) rename {javanine => jpastreamer.javanine}/src/main/java/com/speedment/jpastreamer/javanine/Java9DoubleStreamAdditions.java (100%) rename {javanine => jpastreamer.javanine}/src/main/java/com/speedment/jpastreamer/javanine/Java9IntStreamAdditions.java (100%) rename {javanine => jpastreamer.javanine}/src/main/java/com/speedment/jpastreamer/javanine/Java9LongStreamAdditions.java (100%) rename {javanine => jpastreamer.javanine}/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamAdditions.java (100%) rename {javanine => jpastreamer.javanine}/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamUtil.java (100%) rename {javanine => jpastreamer.javanine}/src/main/java/com/speedment/jpastreamer/javanine/internal/InternalJava9StreamUtil.java (100%) rename {javanine => jpastreamer.javanine}/src/main/java/com/speedment/jpastreamer/javanine/package-info.java (100%) rename {javanine => jpastreamer.javanine}/src/main/java/module-info.java (100%) rename {merger => jpastreamer.merger}/pom.xml (100%) rename {merger => jpastreamer.merger}/src/main/java/com/speedment/jpastreamer/merger/CriteriaMerger.java (100%) rename {merger => jpastreamer.merger}/src/main/java/com/speedment/jpastreamer/merger/MergerFactory.java (100%) rename {merger => jpastreamer.merger}/src/main/java/com/speedment/jpastreamer/merger/QueryMerger.java (100%) rename {merger => jpastreamer.merger}/src/main/java/com/speedment/jpastreamer/merger/result/CriteriaMergeResult.java (100%) rename {merger => jpastreamer.merger}/src/main/java/com/speedment/jpastreamer/merger/result/QueryMergeResult.java (100%) rename {merger => jpastreamer.merger}/src/main/java/module-info.java (100%) rename {pipeline => jpastreamer.pipeline}/pom.xml (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/Pipeline.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/PipelineFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/DoubleIntermediateOperationFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntIntermediateOperationFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperation.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFunctionalType.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationType.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/LongIntermediateOperationFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Property.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Statement.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Verb.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/BaseStreamTerminalOperationFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/DoubleTerminalOperationFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/IntTerminalOperationFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/LongTerminalOperationFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/OrderPreservation.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperation.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFactory.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFunctionalType.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationType.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasArguments.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasFunction.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasReturnType.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasStreamType.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasType.java (100%) rename {pipeline => jpastreamer.pipeline}/src/main/java/module-info.java (100%) rename {projection => jpastreamer.projection}/pom.xml (100%) rename {projection => jpastreamer.projection}/src/main/java/com/speedment/jpastreamer/projection/Projection.java (100%) rename {projection => jpastreamer.projection}/src/main/java/com/speedment/jpastreamer/projection/internal/InternalProjection.java (100%) rename {projection => jpastreamer.projection}/src/main/java/com/speedment/jpastreamer/projection/internal/StandardTupleElement.java (100%) rename {projection => jpastreamer.projection}/src/main/java/com/speedment/jpastreamer/projection/internal/TupleContext.java (100%) rename {projection => jpastreamer.projection}/src/main/java/module-info.java (100%) rename {projection => jpastreamer.projection}/src/test/java/com/speedment/jpastreamer/projection/ProjectionTest.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/pom.xml (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/java/com/speedment/jpastreamer/analytics/standard/StandardAnalyticsReporterFactory.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/Handler.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/InternalStandardAnalyticsReporter.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/EventType.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/GoogleAnalyticsHandler.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/HttpUtil.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/InternalAnalyticsException.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/JsonUtil.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/java/module-info.java (100%) rename {provider/analytics-standard => jpastreamer.provider/jpastreamer.analytics.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.analytics.AnalyticsReporterFactory (100%) rename {provider/appinfo-standard => jpastreamer.provider/jpastreamer.appinfo.standard}/pom.xml (100%) rename {provider/appinfo-standard => jpastreamer.provider/jpastreamer.appinfo.standard}/src/main/java/com/speedment/jpastreamer/appinfo/standard/StandardApplicationInformation.java (100%) rename {provider/appinfo-standard => jpastreamer.provider/jpastreamer.appinfo.standard}/src/main/java/com/speedment/jpastreamer/appinfo/standard/internal/InternalStandardApplicationInformation.java (100%) rename {provider/appinfo-standard => jpastreamer.provider/jpastreamer.appinfo.standard}/src/main/java/module-info.java (100%) rename {provider/appinfo-standard => jpastreamer.provider/jpastreamer.appinfo.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.appinfo.ApplicationInformation (100%) rename {provider/application-standard => jpastreamer.provider/jpastreamer.application.standard}/pom.xml (100%) rename {provider/application-standard => jpastreamer.provider/jpastreamer.application.standard}/src/main/java/com/speedment/jpastreamer/application/standard/StandardJPAStreamerBuilderFactory.java (100%) rename {provider/application-standard => jpastreamer.provider/jpastreamer.application.standard}/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamer.java (100%) rename {provider/application-standard => jpastreamer.provider/jpastreamer.application.standard}/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamerBuilder.java (100%) rename {provider/application-standard => jpastreamer.provider/jpastreamer.application.standard}/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardStreamSupplier.java (100%) rename {provider/application-standard => jpastreamer.provider/jpastreamer.application.standard}/src/main/java/module-info.java (100%) rename {provider/application-standard => jpastreamer.provider/jpastreamer.application.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.application.JPAStreamerBuilderFactory (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/pom.xml (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/main/java/com/speedment/jpastreamer/autoclose/standard/StandardAutoCloseFactory.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingBaseStream.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStream.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStream.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStream.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStream.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/InternalAutoCloseFactory.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/main/java/module-info.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.autoclose.AutoCloseFactory (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingStreamTest.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStreamTest.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStreamTest.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStreamTest.java (100%) rename {provider/autoclose-standard => jpastreamer.provider/jpastreamer.autoclose.standard}/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStreamTest.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/pom.xml (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/StandardBuilderFactory.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseBuilderState.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilder.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamSupport.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilder.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/Factories.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InjectedFactories.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilder.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InternalBuilderFactory.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilder.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/MockRendererFactory.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilder.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderUtil.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/java/module-info.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.builder.BuilderFactory (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/test/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilderTest.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/test/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilderTest.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/test/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilderTest.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/test/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilderTest.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/test/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderTest.java (100%) rename {provider/builder-standard => jpastreamer.provider/jpastreamer.builder.standard}/src/test/java/com/speedment/jpastreamer/builder/standard/internal/TestFactories.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/pom.xml (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactory.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardOrderFactory.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactory.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteria.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaFactory.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalOrderFactory.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactory.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalQueryParameter.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/DefaultOrderMapper.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/OrderMapper.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/DefaultPredicateMapper.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/ParameterizedPredicate.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapper.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapping.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/util/Cast.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/java/module-info.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.CriteriaFactory (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.OrderFactory (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.PredicateFactory (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactoryTest.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactoryTest.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaTest.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactoryTest.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/util/ReflectionUtil.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/test/java/com/speedment/jpastreamer/criteria/standard/support/CombinedStringPredicate.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringEqualPredicate.java (100%) rename {provider/criteria-standard => jpastreamer.provider/jpastreamer.criteria.standard}/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringNotEqualPredicate.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/pom.xml (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactory.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemoveOrderAffectingOperations.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemovePeek.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinct.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilter.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimit.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkip.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSorted.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/NoValueSquash.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/SingleValueSquash.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/Squash.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractNoValueSquash.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/ComparatorSquash.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/LongSquash.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/PredicateSquash.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/java/module-info.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.interopoptimizer.IntermediateOperationOptimizerFactory (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactoryTest.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinctTest.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilterTest.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimitTest.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkipTest.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSortedTest.java (100%) rename {provider/interopoptimizer-standard => jpastreamer.provider/jpastreamer.interopoptimizer.standard}/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashTest.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/pom.xml (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/StandardMergerFactory.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/InternalMergerFactory.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/InternalCriteriaMerger.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/result/InternalCriteriaMergeResult.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/CriteriaModifier.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/DistinctCriteriaModifier.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/FilterCriteriaModifier.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/SortedCriteriaModifier.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/InternalQueryMerger.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/result/InternalQueryMergeResult.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/QueryModifier.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/SkipLimitModifier.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/DefaultIntermediateOperationReference.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/IntermediateOperationReference.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/DefaultMergingTracker.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/MergingTracker.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/java/module-info.java (100%) rename {provider/merger-standard => jpastreamer.provider/jpastreamer.merger.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.merger.MergerFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/pom.xml (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardDoubleIntermediateOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntIntermediateOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntermediateOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardLongIntermediateOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalDoubleIntermediateOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntIntermediateOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntermediateOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalLongIntermediateOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/StandardIntermediateOperation.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/TypeUtil.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/standard/StandardPipelineFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalPipelineFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipeline.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardDoubleTerminalOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardIntTerminalOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardLongTerminalOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardTerminalOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AbstractTerminalOperation.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AcceptTerminalOperation.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsDoubleTerminalOperation.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsIntTerminalOperation.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsLongTerminalOperation.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyTerminalOperation.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalDoubleTerminalOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalIntTerminalOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalLongTerminalOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalTerminalOperationFactory.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/TestTerminalOperation.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/java/module-info.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.PipelineFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.DoubleIntermediateOperationFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntIntermediateOperationFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.LongIntermediateOperationFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.DoubleTerminalOperationFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.IntTerminalOperationFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.LongTerminalOperationFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.TerminalOperationFactory (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalIntermediateOperationFactoryTest.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalTerminalOperationFactoryTest.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipelineTest.java (100%) rename {provider/pipeline-standard => jpastreamer.provider/jpastreamer.pipeline.standard}/src/test/java/com/speedment/jpastreamer/pipeline/terminal/standard/Main.java (100%) rename {provider/renderer-standard => jpastreamer.provider/jpastreamer.renderer.standard}/pom.xml (100%) rename {provider/renderer-standard => jpastreamer.provider/jpastreamer.renderer.standard}/src/main/java/com/speedment/jpastreamer/renderer/standard/StandardRendererFactory.java (100%) rename {provider/renderer-standard => jpastreamer.provider/jpastreamer.renderer.standard}/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/InternalRendererFactory.java (100%) rename {provider/renderer-standard => jpastreamer.provider/jpastreamer.renderer.standard}/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderResult.java (100%) rename {provider/renderer-standard => jpastreamer.provider/jpastreamer.renderer.standard}/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java (100%) rename {provider/renderer-standard => jpastreamer.provider/jpastreamer.renderer.standard}/src/main/java/module-info.java (100%) rename {provider/renderer-standard => jpastreamer.provider/jpastreamer.renderer.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.renderer.RendererFactory (100%) rename {provider/streamconfiguration-standard => jpastreamer.provider/jpastreamer.streamconfiguration.standard}/pom.xml (100%) rename {provider/streamconfiguration-standard => jpastreamer.provider/jpastreamer.streamconfiguration.standard}/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/StandardStreamConfigurationFactory.java (100%) rename {provider/streamconfiguration-standard => jpastreamer.provider/jpastreamer.streamconfiguration.standard}/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardJoinConfiguration.java (100%) rename {provider/streamconfiguration-standard => jpastreamer.provider/jpastreamer.streamconfiguration.standard}/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfiguration.java (100%) rename {provider/streamconfiguration-standard => jpastreamer.provider/jpastreamer.streamconfiguration.standard}/src/main/java/module-info.java (100%) rename {provider/streamconfiguration-standard => jpastreamer.provider/jpastreamer.streamconfiguration.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.streamconfiguration.StreamConfigurationFactory (100%) rename {provider/streamconfiguration-standard => jpastreamer.provider/jpastreamer.streamconfiguration.standard}/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film$.java (100%) rename {provider/streamconfiguration-standard => jpastreamer.provider/jpastreamer.streamconfiguration.standard}/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film.java (100%) rename {provider/streamconfiguration-standard => jpastreamer.provider/jpastreamer.streamconfiguration.standard}/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfigurationTest.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/pom.xml (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperatorModifierFactory.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/InternalTerminalOperatorModifierFactory.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperatorModifier.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/main/java/module-info.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopmodifier.TerminalOperationModifierFactory (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperationModifierFactoryTest.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/AnyMatchTest.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindAnyTest.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindFirstTest.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/NoneMatchTest.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperationModifierTest.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film$.java (100%) rename {provider/termopmodifier-standard => jpastreamer.provider/jpastreamer.termopmodifier.standard}/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film.java (100%) rename {provider/termopoptimizer-standard => jpastreamer.provider/jpastreamer.termopoptimizer.standard}/pom.xml (100%) rename {provider/termopoptimizer-standard => jpastreamer.provider/jpastreamer.termopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactory.java (100%) rename {provider/termopoptimizer-standard => jpastreamer.provider/jpastreamer.termopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/InternalTerminalOperationOptimizerFactory.java (100%) rename {provider/termopoptimizer-standard => jpastreamer.provider/jpastreamer.termopoptimizer.standard}/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizer.java (100%) rename {provider/termopoptimizer-standard => jpastreamer.provider/jpastreamer.termopoptimizer.standard}/src/main/java/module-info.java (100%) rename {provider/termopoptimizer-standard => jpastreamer.provider/jpastreamer.termopoptimizer.standard}/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizerFactory (100%) rename {provider => jpastreamer.provider}/pom.xml (60%) rename {renderer => jpastreamer.renderer}/pom.xml (100%) rename {renderer => jpastreamer.renderer}/src/main/java/com/speedment/jpastreamer/renderer/RenderResult.java (100%) rename {renderer => jpastreamer.renderer}/src/main/java/com/speedment/jpastreamer/renderer/Renderer.java (100%) rename {renderer => jpastreamer.renderer}/src/main/java/com/speedment/jpastreamer/renderer/RendererFactory.java (100%) rename {renderer => jpastreamer.renderer}/src/main/java/module-info.java (100%) rename {rootfactory => jpastreamer.rootfactory}/pom.xml (100%) rename {rootfactory => jpastreamer.rootfactory}/src/main/java/com/speedment/jpastreamer/rootfactory/Priority.java (100%) rename {rootfactory => jpastreamer.rootfactory}/src/main/java/com/speedment/jpastreamer/rootfactory/RootFactory.java (100%) rename {rootfactory => jpastreamer.rootfactory}/src/main/java/com/speedment/jpastreamer/rootfactory/internal/InternalRootFactory.java (100%) rename {rootfactory => jpastreamer.rootfactory}/src/main/java/module-info.java (100%) rename {streamconfiguration => jpastreamer.streamconfiguration}/pom.xml (100%) rename {streamconfiguration => jpastreamer.streamconfiguration}/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java (95%) rename {streamconfiguration => jpastreamer.streamconfiguration}/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfigurationFactory.java (100%) rename {streamconfiguration => jpastreamer.streamconfiguration}/src/main/java/module-info.java (100%) rename {termopmodifier => jpastreamer.termopmodifier}/pom.xml (100%) rename {termopmodifier => jpastreamer.termopmodifier}/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifier.java (100%) rename {termopmodifier => jpastreamer.termopmodifier}/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifierFactory.java (100%) rename {termopmodifier => jpastreamer.termopmodifier}/src/main/java/module-info.java (100%) rename {termopoptimizer => jpastreamer.termopoptimizer}/pom.xml (100%) rename {termopoptimizer => jpastreamer.termopoptimizer}/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizer.java (100%) rename {termopoptimizer => jpastreamer.termopoptimizer}/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizerFactory.java (100%) rename {termopoptimizer => jpastreamer.termopoptimizer}/src/main/java/module-info.java (100%) diff --git a/.gitignore b/.gitignore index 3db71a0b..ae7047f6 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ /docs/package-lock.json .project +/javadoc diff --git a/analytics/pom.xml b/jpastreamer.analytics/pom.xml similarity index 100% rename from analytics/pom.xml rename to jpastreamer.analytics/pom.xml diff --git a/analytics/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporter.java b/jpastreamer.analytics/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporter.java similarity index 100% rename from analytics/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporter.java rename to jpastreamer.analytics/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporter.java diff --git a/analytics/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporterFactory.java b/jpastreamer.analytics/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporterFactory.java similarity index 100% rename from analytics/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporterFactory.java rename to jpastreamer.analytics/src/main/java/com/speedment/jpastreamer/analytics/AnalyticsReporterFactory.java diff --git a/analytics/src/main/java/module-info.java b/jpastreamer.analytics/src/main/java/module-info.java similarity index 100% rename from analytics/src/main/java/module-info.java rename to jpastreamer.analytics/src/main/java/module-info.java diff --git a/announcer/README.adoc b/jpastreamer.announcer/README.adoc similarity index 100% rename from announcer/README.adoc rename to jpastreamer.announcer/README.adoc diff --git a/announcer/pom.xml b/jpastreamer.announcer/pom.xml similarity index 100% rename from announcer/pom.xml rename to jpastreamer.announcer/pom.xml diff --git a/announcer/src/main/java/com/speedment/jpastreamer/announcer/Announcer.java b/jpastreamer.announcer/src/main/java/com/speedment/jpastreamer/announcer/Announcer.java similarity index 100% rename from announcer/src/main/java/com/speedment/jpastreamer/announcer/Announcer.java rename to jpastreamer.announcer/src/main/java/com/speedment/jpastreamer/announcer/Announcer.java diff --git a/announcer/src/main/java/module-info.java b/jpastreamer.announcer/src/main/java/module-info.java similarity index 100% rename from announcer/src/main/java/module-info.java rename to jpastreamer.announcer/src/main/java/module-info.java diff --git a/appinfo/pom.xml b/jpastreamer.appinfo/pom.xml similarity index 100% rename from appinfo/pom.xml rename to jpastreamer.appinfo/pom.xml diff --git a/appinfo/src/main/java/com/speedment/jpastreamer/appinfo/ApplicationInformation.java b/jpastreamer.appinfo/src/main/java/com/speedment/jpastreamer/appinfo/ApplicationInformation.java similarity index 100% rename from appinfo/src/main/java/com/speedment/jpastreamer/appinfo/ApplicationInformation.java rename to jpastreamer.appinfo/src/main/java/com/speedment/jpastreamer/appinfo/ApplicationInformation.java diff --git a/appinfo/src/main/java/module-info.java b/jpastreamer.appinfo/src/main/java/module-info.java similarity index 100% rename from appinfo/src/main/java/module-info.java rename to jpastreamer.appinfo/src/main/java/module-info.java diff --git a/application/pom.xml b/jpastreamer.application/pom.xml similarity index 100% rename from application/pom.xml rename to jpastreamer.application/pom.xml diff --git a/application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java similarity index 100% rename from application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java rename to jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java diff --git a/application/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilder.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilder.java similarity index 100% rename from application/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilder.java rename to jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilder.java diff --git a/application/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilderFactory.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilderFactory.java similarity index 100% rename from application/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilderFactory.java rename to jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamerBuilderFactory.java diff --git a/application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java similarity index 99% rename from application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java rename to jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java index cc4769be..c994db4e 100644 --- a/application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java +++ b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java @@ -17,9 +17,9 @@ import java.util.stream.Stream; /** - * A Stream Supplier is responsible for creating Streams from a data source + * A Stream Supplier is responsible for creating Streams from a data source. * An entity source can be RDBMSes, files or other data sources. - * + *

* A Stream Supplier must be thread safe and be able to handle several reading and * writing threads at the same time. * diff --git a/application/src/main/java/module-info.java b/jpastreamer.application/src/main/java/module-info.java similarity index 100% rename from application/src/main/java/module-info.java rename to jpastreamer.application/src/main/java/module-info.java diff --git a/autoclose/pom.xml b/jpastreamer.autoclose/pom.xml similarity index 100% rename from autoclose/pom.xml rename to jpastreamer.autoclose/pom.xml diff --git a/autoclose/src/main/java/com/speedment/jpastreamer/autoclose/AutoCloseFactory.java b/jpastreamer.autoclose/src/main/java/com/speedment/jpastreamer/autoclose/AutoCloseFactory.java similarity index 100% rename from autoclose/src/main/java/com/speedment/jpastreamer/autoclose/AutoCloseFactory.java rename to jpastreamer.autoclose/src/main/java/com/speedment/jpastreamer/autoclose/AutoCloseFactory.java diff --git a/autoclose/src/main/java/module-info.java b/jpastreamer.autoclose/src/main/java/module-info.java similarity index 100% rename from autoclose/src/main/java/module-info.java rename to jpastreamer.autoclose/src/main/java/module-info.java diff --git a/builder/pom.xml b/jpastreamer.builder/pom.xml similarity index 100% rename from builder/pom.xml rename to jpastreamer.builder/pom.xml diff --git a/builder/src/main/java/com/speedment/jpastreamer/builder/BuilderFactory.java b/jpastreamer.builder/src/main/java/com/speedment/jpastreamer/builder/BuilderFactory.java similarity index 100% rename from builder/src/main/java/com/speedment/jpastreamer/builder/BuilderFactory.java rename to jpastreamer.builder/src/main/java/com/speedment/jpastreamer/builder/BuilderFactory.java diff --git a/builder/src/main/java/module-info.java b/jpastreamer.builder/src/main/java/module-info.java similarity index 100% rename from builder/src/main/java/module-info.java rename to jpastreamer.builder/src/main/java/module-info.java diff --git a/core/pom.xml b/jpastreamer.core/pom.xml similarity index 100% rename from core/pom.xml rename to jpastreamer.core/pom.xml diff --git a/core/src/main/java/com/speedment/jpastreamer/core/Foo.java b/jpastreamer.core/src/main/java/com/speedment/jpastreamer/core/Foo.java similarity index 100% rename from core/src/main/java/com/speedment/jpastreamer/core/Foo.java rename to jpastreamer.core/src/main/java/com/speedment/jpastreamer/core/Foo.java diff --git a/core/src/main/java/module-info.java b/jpastreamer.core/src/main/java/module-info.java similarity index 100% rename from core/src/main/java/module-info.java rename to jpastreamer.core/src/main/java/module-info.java diff --git a/criteria/pom.xml b/jpastreamer.criteria/pom.xml similarity index 100% rename from criteria/pom.xml rename to jpastreamer.criteria/pom.xml diff --git a/criteria/src/main/java/com/speedment/jpastreamer/criteria/Criteria.java b/jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/Criteria.java similarity index 100% rename from criteria/src/main/java/com/speedment/jpastreamer/criteria/Criteria.java rename to jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/Criteria.java diff --git a/criteria/src/main/java/com/speedment/jpastreamer/criteria/CriteriaFactory.java b/jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/CriteriaFactory.java similarity index 100% rename from criteria/src/main/java/com/speedment/jpastreamer/criteria/CriteriaFactory.java rename to jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/CriteriaFactory.java diff --git a/criteria/src/main/java/com/speedment/jpastreamer/criteria/OrderFactory.java b/jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/OrderFactory.java similarity index 100% rename from criteria/src/main/java/com/speedment/jpastreamer/criteria/OrderFactory.java rename to jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/OrderFactory.java diff --git a/criteria/src/main/java/com/speedment/jpastreamer/criteria/PredicateFactory.java b/jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/PredicateFactory.java similarity index 100% rename from criteria/src/main/java/com/speedment/jpastreamer/criteria/PredicateFactory.java rename to jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/PredicateFactory.java diff --git a/criteria/src/main/java/com/speedment/jpastreamer/criteria/QueryParameter.java b/jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/QueryParameter.java similarity index 100% rename from criteria/src/main/java/com/speedment/jpastreamer/criteria/QueryParameter.java rename to jpastreamer.criteria/src/main/java/com/speedment/jpastreamer/criteria/QueryParameter.java diff --git a/criteria/src/main/java/module-info.java b/jpastreamer.criteria/src/main/java/module-info.java similarity index 100% rename from criteria/src/main/java/module-info.java rename to jpastreamer.criteria/src/main/java/module-info.java diff --git a/exception/pom.xml b/jpastreamer.exception/pom.xml similarity index 100% rename from exception/pom.xml rename to jpastreamer.exception/pom.xml diff --git a/exception/src/main/java/com/speedment/jpastreamer/exception/JPAStreamerException.java b/jpastreamer.exception/src/main/java/com/speedment/jpastreamer/exception/JPAStreamerException.java similarity index 100% rename from exception/src/main/java/com/speedment/jpastreamer/exception/JPAStreamerException.java rename to jpastreamer.exception/src/main/java/com/speedment/jpastreamer/exception/JPAStreamerException.java diff --git a/exception/src/main/java/module-info.java b/jpastreamer.exception/src/main/java/module-info.java similarity index 100% rename from exception/src/main/java/module-info.java rename to jpastreamer.exception/src/main/java/module-info.java diff --git a/field/pom.xml b/jpastreamer.field/pom.xml similarity index 100% rename from field/pom.xml rename to jpastreamer.field/pom.xml diff --git a/field/src/main/java/com/speedment/jpastreamer/field/BooleanField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/BooleanField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/BooleanField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/BooleanField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/ByteField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/ByteField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/ByteField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/ByteField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/CharField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/CharField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/CharField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/CharField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/ComparableField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/ComparableField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/ComparableField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/ComparableField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/DoubleField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/DoubleField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/DoubleField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/DoubleField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/EnumField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/EnumField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/EnumField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/EnumField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/Field.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/Field.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/Field.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/Field.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/FloatField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/FloatField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/FloatField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/FloatField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/IntField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/IntField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/IntField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/IntField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/LongField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/LongField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/LongField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/LongField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/ReferenceField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/ReferenceField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/ReferenceField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/ReferenceField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/ShortField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/ShortField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/ShortField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/ShortField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/StringField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/StringField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/StringField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/StringField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollector.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollector.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollector.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollector.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollectors.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollectors.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollectors.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/collector/FieldCollectors.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/collector/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/collector/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/collector/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/collector/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/BooleanFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/BooleanFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/BooleanFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/BooleanFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/ByteFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/ByteFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/ByteFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/ByteFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/CharFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/CharFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/CharFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/CharFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/CombinedComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/CombinedComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/CombinedComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/CombinedComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/DoubleFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/DoubleFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/DoubleFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/DoubleFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/FieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/FieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/FieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/FieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/FloatFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/FloatFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/FloatFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/FloatFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/IntFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/IntFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/IntFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/IntFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/LongFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/LongFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/LongFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/LongFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/NullOrder.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/NullOrder.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/NullOrder.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/NullOrder.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/ReferenceFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/ReferenceFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/ReferenceFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/ReferenceFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/ShortFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/ShortFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/ShortFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/ShortFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/comparator/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/comparator/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/comparator/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/exception/IllegalJavaBeanException.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/exception/IllegalJavaBeanException.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/exception/IllegalJavaBeanException.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/exception/IllegalJavaBeanException.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/exception/SpeedmentFieldException.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/exception/SpeedmentFieldException.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/exception/SpeedmentFieldException.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/exception/SpeedmentFieldException.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/exception/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/exception/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/exception/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/exception/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldMapper.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldMapper.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldMapper.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldMapper.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBigDecimal.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBigDecimal.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBigDecimal.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBigDecimal.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBoolean.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBoolean.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBoolean.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToBoolean.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToByte.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToByte.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToByte.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToByte.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToChar.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToChar.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToChar.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToChar.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToDouble.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToDouble.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToDouble.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToDouble.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToEnum.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToEnum.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToEnum.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToEnum.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToFloat.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToFloat.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToFloat.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToFloat.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToInt.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToInt.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToInt.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToInt.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToLong.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToLong.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToLong.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToLong.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToShort.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToShort.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToShort.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToShort.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToString.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToString.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToString.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/FieldToString.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/expression/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/expression/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/expression/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/BooleanFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/BooleanFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/BooleanFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/BooleanFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/ByteFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/ByteFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/ByteFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/ByteFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/CharFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/CharFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/CharFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/CharFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/ComparableFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/ComparableFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/ComparableFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/ComparableFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/DoubleFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/DoubleFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/DoubleFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/DoubleFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/EnumFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/EnumFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/EnumFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/EnumFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/FloatFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/FloatFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/FloatFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/FloatFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/IntFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/IntFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/IntFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/IntFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/LongFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/LongFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/LongFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/LongFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/ReferenceFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/ReferenceFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/ReferenceFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/ReferenceFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/ShortFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/ShortFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/ShortFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/ShortFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/StringFieldImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/StringFieldImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/StringFieldImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/StringFieldImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/collector/FieldCollectorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/collector/FieldCollectorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/collector/FieldCollectorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/collector/FieldCollectorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/collector/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/collector/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/collector/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/collector/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/AbstractFieldComparator.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/AbstractFieldComparator.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/AbstractFieldComparator.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/AbstractFieldComparator.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/BooleanFieldComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/BooleanFieldComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/BooleanFieldComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/BooleanFieldComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ByteFieldComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ByteFieldComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ByteFieldComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ByteFieldComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CharFieldComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CharFieldComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CharFieldComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CharFieldComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CombinedComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CombinedComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CombinedComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/CombinedComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/DoubleFieldComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/DoubleFieldComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/DoubleFieldComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/DoubleFieldComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/FloatFieldComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/FloatFieldComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/FloatFieldComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/FloatFieldComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/IntFieldComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/IntFieldComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/IntFieldComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/IntFieldComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/LongFieldComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/LongFieldComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/LongFieldComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/LongFieldComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ReferenceFieldComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ReferenceFieldComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ReferenceFieldComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ReferenceFieldComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ShortFieldComparatorImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ShortFieldComparatorImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ShortFieldComparatorImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/ShortFieldComparatorImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/comparator/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/AbstractFieldMapper.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/AbstractFieldMapper.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/AbstractFieldMapper.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/AbstractFieldMapper.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBigDecimalImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBigDecimalImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBigDecimalImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBigDecimalImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBooleanImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBooleanImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBooleanImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToBooleanImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToByteImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToByteImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToByteImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToByteImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToCharImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToCharImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToCharImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToCharImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToDoubleImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToDoubleImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToDoubleImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToDoubleImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToEnumImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToEnumImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToEnumImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToEnumImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToFloatImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToFloatImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToFloatImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToFloatImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToIntImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToIntImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToIntImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToIntImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToLongImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToLongImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToLongImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToLongImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToShortImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToShortImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToShortImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToShortImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToStringImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToStringImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToStringImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/FieldToStringImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/expression/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/expression/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/expression/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetBooleanImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetBooleanImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetBooleanImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetBooleanImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetByteImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetByteImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetByteImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetByteImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetCharImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetCharImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetCharImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetCharImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetDoubleImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetDoubleImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetDoubleImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetDoubleImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetFloatImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetFloatImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetFloatImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetFloatImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetIntImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetIntImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetIntImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetIntImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetLongImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetLongImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetLongImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetLongImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetReferenceImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetReferenceImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetReferenceImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetReferenceImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetShortImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetShortImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetShortImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/GetShortImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/method/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/method/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/method/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractCombinedPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractCombinedPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractCombinedPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractCombinedPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractFieldPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractFieldPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractFieldPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractFieldPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AbstractPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysFalsePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysFalsePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysFalsePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysFalsePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysTruePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysTruePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysTruePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/AlwaysTruePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ComposedPredicateImpl.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ComposedPredicateImpl.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ComposedPredicateImpl.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ComposedPredicateImpl.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanNotEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanNotEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanNotEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/booleans/BooleanNotEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteGreaterThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteLessThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/bytes/ByteNotInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharGreaterThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharLessThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/chars/CharNotInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleGreaterThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleLessThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/doubles/DoubleNotInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNotNullPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNotNullPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNotNullPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNotNullPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNullPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNullPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNullPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/enums/EnumIsNullPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatGreaterThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatLessThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/floats/FloatNotInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntGreaterThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntLessThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/ints/IntNotInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongGreaterThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongLessThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/longs/LongNotInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceGreaterThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNotNullPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNotNullPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNotNullPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNotNullPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNullPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNullPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNullPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceIsNullPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceLessThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/reference/ReferenceNotInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortGreaterThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessOrEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessOrEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessOrEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessOrEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessThanPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessThanPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessThanPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortLessThanPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotBetweenPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotBetweenPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotBetweenPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotBetweenPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotEqualPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotEqualPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotEqualPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotEqualPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotInPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotInPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotInPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/shorts/ShortNotInPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/AbstractStringPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/AbstractStringPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/AbstractStringPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/AbstractStringPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsIgnoreCasePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsIgnoreCasePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsIgnoreCasePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsIgnoreCasePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringContainsPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithIgnoreCasePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithIgnoreCasePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithIgnoreCasePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithIgnoreCasePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEndsWithPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEqualIgnoreCasePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEqualIgnoreCasePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEqualIgnoreCasePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringEqualIgnoreCasePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsEmptyPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsEmptyPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsEmptyPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsEmptyPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotEmptyPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotEmptyPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotEmptyPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotEmptyPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotNullPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotNullPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotNullPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNotNullPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNullPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNullPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNullPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringIsNullPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsIgnoreCasePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsIgnoreCasePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsIgnoreCasePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsIgnoreCasePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotContainsPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithIgnoreCasePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithIgnoreCasePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithIgnoreCasePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithIgnoreCasePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEndsWithPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEqualIgnoreCasePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEqualIgnoreCasePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEqualIgnoreCasePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotEqualIgnoreCasePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithIgnoreCasePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithIgnoreCasePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithIgnoreCasePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithIgnoreCasePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringNotStartsWithPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithIgnoreCasePredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithIgnoreCasePredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithIgnoreCasePredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithIgnoreCasePredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/predicate/string/StringStartsWithPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/internal/util/CollectionUtil.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/util/CollectionUtil.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/internal/util/CollectionUtil.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/internal/util/CollectionUtil.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/BooleanGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/BooleanGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/BooleanGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/BooleanGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/ByteGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/ByteGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/ByteGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/ByteGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/CharGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/CharGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/CharGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/CharGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/DoubleGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/DoubleGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/DoubleGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/DoubleGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/FloatGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/FloatGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/FloatGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/FloatGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/GetBoolean.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetBoolean.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/GetBoolean.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetBoolean.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/GetByte.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetByte.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/GetByte.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetByte.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/GetChar.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetChar.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/GetChar.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetChar.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/GetDouble.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetDouble.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/GetDouble.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetDouble.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/GetFloat.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetFloat.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/GetFloat.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetFloat.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/GetInt.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetInt.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/GetInt.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetInt.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/GetLong.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetLong.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/GetLong.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetLong.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/GetReference.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetReference.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/GetReference.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetReference.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/GetShort.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetShort.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/GetShort.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/GetShort.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/Getter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/Getter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/Getter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/Getter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/IntGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/IntGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/IntGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/IntGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/LongGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/LongGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/LongGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/LongGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/ReferenceGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/ReferenceGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/ReferenceGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/ReferenceGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/ShortGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/ShortGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/ShortGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/ShortGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/method/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/method/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/method/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/CombinedPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/CombinedPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/CombinedPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/CombinedPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/ComposedPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/ComposedPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/ComposedPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/ComposedPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNotNullPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNotNullPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNotNullPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNotNullPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNullPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNullPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNullPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldIsNullPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/FieldPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/Inclusion.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/Inclusion.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/Inclusion.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/Inclusion.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/PredicateType.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/PredicateType.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/PredicateType.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/PredicateType.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/SpeedmentPredicate.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/SpeedmentPredicate.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/SpeedmentPredicate.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/SpeedmentPredicate.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasField.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasField.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasField.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasField.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasInclusion.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasInclusion.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasInclusion.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasInclusion.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasPredicateType.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasPredicateType.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasPredicateType.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/HasPredicateType.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/predicate/trait/package-info.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg0.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg0.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg0.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg0.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg1.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg1.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg1.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg1.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg2.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg2.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg2.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasArg2.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasAttributeConverterClass.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasAttributeConverterClass.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasAttributeConverterClass.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasAttributeConverterClass.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanOperators.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanOperators.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanOperators.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanOperators.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanValue.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanValue.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanValue.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasBooleanValue.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasByteValue.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasByteValue.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasByteValue.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasByteValue.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasCharValue.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasCharValue.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasCharValue.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasCharValue.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasColumnName.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasColumnName.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasColumnName.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasColumnName.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasComparableOperators.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasComparableOperators.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasComparableOperators.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasComparableOperators.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasDoubleValue.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasDoubleValue.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasDoubleValue.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasDoubleValue.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasFloatValue.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasFloatValue.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasFloatValue.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasFloatValue.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasGetter.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasGetter.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasGetter.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasGetter.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasIntValue.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasIntValue.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasIntValue.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasIntValue.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasLongValue.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasLongValue.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasLongValue.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasLongValue.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceOperators.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceOperators.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceOperators.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceOperators.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceValue.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceValue.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceValue.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasReferenceValue.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasShortValue.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasShortValue.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasShortValue.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasShortValue.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasStringOperators.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasStringOperators.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasStringOperators.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasStringOperators.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/HasTable.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasTable.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/HasTable.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/HasTable.java diff --git a/field/src/main/java/com/speedment/jpastreamer/field/trait/package-info.java b/jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/package-info.java similarity index 100% rename from field/src/main/java/com/speedment/jpastreamer/field/trait/package-info.java rename to jpastreamer.field/src/main/java/com/speedment/jpastreamer/field/trait/package-info.java diff --git a/field/src/main/java/module-info.java b/jpastreamer.field/src/main/java/module-info.java similarity index 100% rename from field/src/main/java/module-info.java rename to jpastreamer.field/src/main/java/module-info.java diff --git a/fieldgenerator/fieldgenerator-component/pom.xml b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/pom.xml similarity index 100% rename from fieldgenerator/fieldgenerator-component/pom.xml rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/pom.xml diff --git a/fieldgenerator/fieldgenerator-component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmRating.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmRating.java similarity index 100% rename from fieldgenerator/fieldgenerator-component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmRating.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmRating.java diff --git a/fieldgenerator/fieldgenerator-component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitle.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitle.java similarity index 100% rename from fieldgenerator/fieldgenerator-component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitle.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitle.java diff --git a/fieldgenerator/fieldgenerator-component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitleConverter.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitleConverter.java similarity index 100% rename from fieldgenerator/fieldgenerator-component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitleConverter.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/src/main/java/com/speedment/jpastreamer/fieldgenerator/component/FilmTitleConverter.java diff --git a/fieldgenerator/fieldgenerator-component/src/main/java/module-info.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/src/main/java/module-info.java similarity index 100% rename from fieldgenerator/fieldgenerator-component/src/main/java/module-info.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.component/src/main/java/module-info.java diff --git a/fieldgenerator/fieldgenerator-standard/pom.xml b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/pom.xml similarity index 100% rename from fieldgenerator/fieldgenerator-standard/pom.xml rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/pom.xml diff --git a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/StandardFieldGeneratorProcessor.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/StandardFieldGeneratorProcessor.java similarity index 100% rename from fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/StandardFieldGeneratorProcessor.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/StandardFieldGeneratorProcessor.java diff --git a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/FieldGeneratorProcessorException.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/FieldGeneratorProcessorException.java similarity index 100% rename from fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/FieldGeneratorProcessorException.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/FieldGeneratorProcessorException.java diff --git a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/TypeParserException.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/TypeParserException.java similarity index 100% rename from fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/TypeParserException.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/exception/TypeParserException.java diff --git a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java similarity index 100% rename from fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/InternalFieldGeneratorProcessor.java diff --git a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/Node.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/Node.java similarity index 100% rename from fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/Node.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/Node.java diff --git a/fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParser.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParser.java similarity index 100% rename from fieldgenerator/fieldgenerator-standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParser.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParser.java diff --git a/fieldgenerator/fieldgenerator-standard/src/main/java/module-info.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/module-info.java similarity index 100% rename from fieldgenerator/fieldgenerator-standard/src/main/java/module-info.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/main/java/module-info.java diff --git a/fieldgenerator/fieldgenerator-standard/src/test/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParserTest.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/test/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParserTest.java similarity index 100% rename from fieldgenerator/fieldgenerator-standard/src/test/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParserTest.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.standard/src/test/java/com/speedment/jpastreamer/fieldgenerator/internal/typeparser/TypeParserTest.java diff --git a/fieldgenerator/fieldgenerator-test-package/pom.xml b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/pom.xml similarity index 100% rename from fieldgenerator/fieldgenerator-test-package/pom.xml rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/pom.xml diff --git a/fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Actor.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Actor.java similarity index 100% rename from fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Actor.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Actor.java diff --git a/fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Film.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Film.java similarity index 100% rename from fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Film.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Film.java diff --git a/fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Language.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Language.java similarity index 100% rename from fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Language.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Language.java diff --git a/fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Main.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Main.java similarity index 100% rename from fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Main.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/Main.java diff --git a/fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User.java similarity index 100% rename from fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User.java diff --git a/fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User2.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User2.java similarity index 100% rename from fieldgenerator/fieldgenerator-test-package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User2.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/renaming/User2.java diff --git a/fieldgenerator/fieldgenerator-test-package/src/main/java/module-info.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/module-info.java similarity index 100% rename from fieldgenerator/fieldgenerator-test-package/src/main/java/module-info.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test.package/src/main/java/module-info.java diff --git a/fieldgenerator/fieldgenerator-test/pom.xml b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/pom.xml similarity index 100% rename from fieldgenerator/fieldgenerator-test/pom.xml rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/pom.xml diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Actor.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Actor.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Actor.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Actor.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Film.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Film.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Film.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Film.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Language.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Language.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Language.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Language.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok2Bean.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok2Bean.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok2Bean.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok2Bean.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok3Bean.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok3Bean.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok3Bean.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Lombok3Bean.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/LombokBean.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/LombokBean.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/LombokBean.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/LombokBean.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Main.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Main.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Main.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/Main.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/NonJavaBean.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/NonJavaBean.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/NonJavaBean.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/NonJavaBean.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User2.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User2.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User2.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/com/speedment/jpastreamer/fieldgenerator/test/User2.java diff --git a/fieldgenerator/fieldgenerator-test/src/main/java/module-info.java b/jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/module-info.java similarity index 100% rename from fieldgenerator/fieldgenerator-test/src/main/java/module-info.java rename to jpastreamer.fieldgenerator/jpastreamer.fieldgenerator.test/src/main/java/module-info.java diff --git a/fieldgenerator/pom.xml b/jpastreamer.fieldgenerator/pom.xml similarity index 82% rename from fieldgenerator/pom.xml rename to jpastreamer.fieldgenerator/pom.xml index 08d22a6a..c6f7cefa 100644 --- a/fieldgenerator/pom.xml +++ b/jpastreamer.fieldgenerator/pom.xml @@ -34,7 +34,7 @@ release - fieldgenerator-standard + jpastreamer.fieldgenerator.standard @@ -43,10 +43,10 @@ true - fieldgenerator-standard - fieldgenerator-component - fieldgenerator-test - fieldgenerator-test-package + jpastreamer.fieldgenerator.standard + jpastreamer.fieldgenerator.component + jpastreamer.fieldgenerator.test + jpastreamer.fieldgenerator.test.package diff --git a/jpastreamer.integration/cdi/jpastreamer.integration.cdi/pom.xml b/jpastreamer.integration/cdi/jpastreamer.integration.cdi/pom.xml new file mode 100644 index 00000000..8fcf4bb2 --- /dev/null +++ b/jpastreamer.integration/cdi/jpastreamer.integration.cdi/pom.xml @@ -0,0 +1,45 @@ + + + + + com.speedment.jpastreamer.integration.cdi + cdi-parent + 3.0.3-SNAPSHOT + + 4.0.0 + + cdi-jpastreamer + + Integration - CDI + + A CDI module that adds support for JPAStreamer injection. + + + + + com.speedment.jpastreamer + application + + + + javax.enterprise + cdi-api + ${cdi.version} + + + diff --git a/jpastreamer.integration/cdi/jpastreamer.integration.cdi/src/main/java/com/speedment/jpastreamer/integration/cdi/JPAStreamerProducer.java b/jpastreamer.integration/cdi/jpastreamer.integration.cdi/src/main/java/com/speedment/jpastreamer/integration/cdi/JPAStreamerProducer.java new file mode 100644 index 00000000..fb9aa8a7 --- /dev/null +++ b/jpastreamer.integration/cdi/jpastreamer.integration.cdi/src/main/java/com/speedment/jpastreamer/integration/cdi/JPAStreamerProducer.java @@ -0,0 +1,35 @@ +/* + * JPAstreamer - Express JPA queries with Java Streams + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved. + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU Lesser General Public License for more details. + * + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE + */ +package com.speedment.jpastreamer.integration.cdi; + +import com.speedment.jpastreamer.application.JPAStreamer; +import jakarta.persistence.EntityManagerFactory; + +import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Produces; + +/** + * A CDI class that adds support for JPAStreamer injection. + * + * @author Romain PETIT + * @since 1.0.2 + */ +@ApplicationScoped +public class JPAStreamerProducer { + + @Produces + JPAStreamer jpaStreamer(EntityManagerFactory entityManagerFactory) { + return JPAStreamer.createJPAStreamerBuilder(entityManagerFactory).build(); + } + +} diff --git a/jpastreamer.integration/cdi/jpastreamer.integration.cdi/src/main/java/module-info.java b/jpastreamer.integration/cdi/jpastreamer.integration.cdi/src/main/java/module-info.java new file mode 100644 index 00000000..9073cd49 --- /dev/null +++ b/jpastreamer.integration/cdi/jpastreamer.integration.cdi/src/main/java/module-info.java @@ -0,0 +1,21 @@ +/* + * JPAstreamer - Express JPA queries with Java Streams + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved. + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU Lesser General Public License for more details. + * + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE + */ +module jpastreamer.integration.cdi { + requires transitive jpastreamer.application; + requires cdi.api; + + //requires transitive spring.boot.autoconfigure; + //requires transitive spring.context; + + exports com.speedment.jpastreamer.integration.cdi; +} diff --git a/integration/cdi/pom.xml b/jpastreamer.integration/cdi/pom.xml similarity index 96% rename from integration/cdi/pom.xml rename to jpastreamer.integration/cdi/pom.xml index a1b14c49..5a8e8f33 100644 --- a/integration/cdi/pom.xml +++ b/jpastreamer.integration/cdi/pom.xml @@ -34,6 +34,6 @@ Integration - CDI - cdi-jpastreamer + jpastreamer.integration.cdi diff --git a/integration/pom.xml b/jpastreamer.integration/pom.xml similarity index 100% rename from integration/pom.xml rename to jpastreamer.integration/pom.xml diff --git a/integration/spring/spring-boot-jpastreamer-autoconfigure/pom.xml b/jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure/pom.xml similarity index 100% rename from integration/spring/spring-boot-jpastreamer-autoconfigure/pom.xml rename to jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure/pom.xml diff --git a/integration/spring/spring-boot-jpastreamer-autoconfigure/src/main/java/com/speedment/jpastreamer/integration/spring/autoconfigure/JPAStreamerAutoConfiguration.java b/jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure/src/main/java/com/speedment/jpastreamer/integration/spring/autoconfigure/JPAStreamerAutoConfiguration.java similarity index 100% rename from integration/spring/spring-boot-jpastreamer-autoconfigure/src/main/java/com/speedment/jpastreamer/integration/spring/autoconfigure/JPAStreamerAutoConfiguration.java rename to jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure/src/main/java/com/speedment/jpastreamer/integration/spring/autoconfigure/JPAStreamerAutoConfiguration.java diff --git a/integration/spring/spring-boot-jpastreamer-autoconfigure/src/main/java/module-info.java b/jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure/src/main/java/module-info.java similarity index 100% rename from integration/spring/spring-boot-jpastreamer-autoconfigure/src/main/java/module-info.java rename to jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure/src/main/java/module-info.java diff --git a/integration/spring/spring-boot-jpastreamer-autoconfigure/src/main/resources/META-INF/spring.factories b/jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure/src/main/resources/META-INF/spring.factories similarity index 100% rename from integration/spring/spring-boot-jpastreamer-autoconfigure/src/main/resources/META-INF/spring.factories rename to jpastreamer.integration/spring/jpastreamer.integration.spring.autoconfigure/src/main/resources/META-INF/spring.factories diff --git a/integration/spring/pom.xml b/jpastreamer.integration/spring/pom.xml similarity index 95% rename from integration/spring/pom.xml rename to jpastreamer.integration/spring/pom.xml index 102a6eb9..a4c4b070 100644 --- a/integration/spring/pom.xml +++ b/jpastreamer.integration/spring/pom.xml @@ -34,6 +34,6 @@ Integration - Spring - spring-boot-jpastreamer-autoconfigure + jpastreamer.integration.spring.autoconfigure diff --git a/interopoptimizer/pom.xml b/jpastreamer.interopoptimizer/pom.xml similarity index 100% rename from interopoptimizer/pom.xml rename to jpastreamer.interopoptimizer/pom.xml diff --git a/interopoptimizer/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizer.java b/jpastreamer.interopoptimizer/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizer.java similarity index 100% rename from interopoptimizer/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizer.java rename to jpastreamer.interopoptimizer/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizer.java diff --git a/interopoptimizer/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizerFactory.java b/jpastreamer.interopoptimizer/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizerFactory.java similarity index 100% rename from interopoptimizer/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizerFactory.java rename to jpastreamer.interopoptimizer/src/main/java/com/speedment/jpastreamer/interopoptimizer/IntermediateOperationOptimizerFactory.java diff --git a/interopoptimizer/src/main/java/module-info.java b/jpastreamer.interopoptimizer/src/main/java/module-info.java similarity index 100% rename from interopoptimizer/src/main/java/module-info.java rename to jpastreamer.interopoptimizer/src/main/java/module-info.java diff --git a/javanine/pom.xml b/jpastreamer.javanine/pom.xml similarity index 100% rename from javanine/pom.xml rename to jpastreamer.javanine/pom.xml diff --git a/javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9DoubleStreamAdditions.java b/jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9DoubleStreamAdditions.java similarity index 100% rename from javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9DoubleStreamAdditions.java rename to jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9DoubleStreamAdditions.java diff --git a/javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9IntStreamAdditions.java b/jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9IntStreamAdditions.java similarity index 100% rename from javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9IntStreamAdditions.java rename to jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9IntStreamAdditions.java diff --git a/javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9LongStreamAdditions.java b/jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9LongStreamAdditions.java similarity index 100% rename from javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9LongStreamAdditions.java rename to jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9LongStreamAdditions.java diff --git a/javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamAdditions.java b/jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamAdditions.java similarity index 100% rename from javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamAdditions.java rename to jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamAdditions.java diff --git a/javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamUtil.java b/jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamUtil.java similarity index 100% rename from javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamUtil.java rename to jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/Java9StreamUtil.java diff --git a/javanine/src/main/java/com/speedment/jpastreamer/javanine/internal/InternalJava9StreamUtil.java b/jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/internal/InternalJava9StreamUtil.java similarity index 100% rename from javanine/src/main/java/com/speedment/jpastreamer/javanine/internal/InternalJava9StreamUtil.java rename to jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/internal/InternalJava9StreamUtil.java diff --git a/javanine/src/main/java/com/speedment/jpastreamer/javanine/package-info.java b/jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/package-info.java similarity index 100% rename from javanine/src/main/java/com/speedment/jpastreamer/javanine/package-info.java rename to jpastreamer.javanine/src/main/java/com/speedment/jpastreamer/javanine/package-info.java diff --git a/javanine/src/main/java/module-info.java b/jpastreamer.javanine/src/main/java/module-info.java similarity index 100% rename from javanine/src/main/java/module-info.java rename to jpastreamer.javanine/src/main/java/module-info.java diff --git a/merger/pom.xml b/jpastreamer.merger/pom.xml similarity index 100% rename from merger/pom.xml rename to jpastreamer.merger/pom.xml diff --git a/merger/src/main/java/com/speedment/jpastreamer/merger/CriteriaMerger.java b/jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/CriteriaMerger.java similarity index 100% rename from merger/src/main/java/com/speedment/jpastreamer/merger/CriteriaMerger.java rename to jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/CriteriaMerger.java diff --git a/merger/src/main/java/com/speedment/jpastreamer/merger/MergerFactory.java b/jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/MergerFactory.java similarity index 100% rename from merger/src/main/java/com/speedment/jpastreamer/merger/MergerFactory.java rename to jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/MergerFactory.java diff --git a/merger/src/main/java/com/speedment/jpastreamer/merger/QueryMerger.java b/jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/QueryMerger.java similarity index 100% rename from merger/src/main/java/com/speedment/jpastreamer/merger/QueryMerger.java rename to jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/QueryMerger.java diff --git a/merger/src/main/java/com/speedment/jpastreamer/merger/result/CriteriaMergeResult.java b/jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/result/CriteriaMergeResult.java similarity index 100% rename from merger/src/main/java/com/speedment/jpastreamer/merger/result/CriteriaMergeResult.java rename to jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/result/CriteriaMergeResult.java diff --git a/merger/src/main/java/com/speedment/jpastreamer/merger/result/QueryMergeResult.java b/jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/result/QueryMergeResult.java similarity index 100% rename from merger/src/main/java/com/speedment/jpastreamer/merger/result/QueryMergeResult.java rename to jpastreamer.merger/src/main/java/com/speedment/jpastreamer/merger/result/QueryMergeResult.java diff --git a/merger/src/main/java/module-info.java b/jpastreamer.merger/src/main/java/module-info.java similarity index 100% rename from merger/src/main/java/module-info.java rename to jpastreamer.merger/src/main/java/module-info.java diff --git a/pipeline/pom.xml b/jpastreamer.pipeline/pom.xml similarity index 100% rename from pipeline/pom.xml rename to jpastreamer.pipeline/pom.xml diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/Pipeline.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/Pipeline.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/Pipeline.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/Pipeline.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/PipelineFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/PipelineFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/PipelineFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/PipelineFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/DoubleIntermediateOperationFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/DoubleIntermediateOperationFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/DoubleIntermediateOperationFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/DoubleIntermediateOperationFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntIntermediateOperationFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntIntermediateOperationFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntIntermediateOperationFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntIntermediateOperationFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperation.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperation.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperation.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperation.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFunctionalType.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFunctionalType.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFunctionalType.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationFunctionalType.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationType.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationType.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationType.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationType.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/LongIntermediateOperationFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/LongIntermediateOperationFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/LongIntermediateOperationFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/LongIntermediateOperationFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Property.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Property.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Property.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Property.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Statement.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Statement.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Statement.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Statement.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Verb.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Verb.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Verb.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/Verb.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/BaseStreamTerminalOperationFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/BaseStreamTerminalOperationFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/BaseStreamTerminalOperationFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/BaseStreamTerminalOperationFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/DoubleTerminalOperationFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/DoubleTerminalOperationFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/DoubleTerminalOperationFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/DoubleTerminalOperationFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/IntTerminalOperationFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/IntTerminalOperationFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/IntTerminalOperationFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/IntTerminalOperationFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/LongTerminalOperationFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/LongTerminalOperationFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/LongTerminalOperationFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/LongTerminalOperationFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/OrderPreservation.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/OrderPreservation.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/OrderPreservation.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/OrderPreservation.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperation.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperation.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperation.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperation.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFactory.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFactory.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFactory.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFactory.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFunctionalType.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFunctionalType.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFunctionalType.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationFunctionalType.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationType.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationType.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationType.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/terminal/TerminalOperationType.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasArguments.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasArguments.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasArguments.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasArguments.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasFunction.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasFunction.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasFunction.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasFunction.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasReturnType.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasReturnType.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasReturnType.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasReturnType.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasStreamType.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasStreamType.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasStreamType.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasStreamType.java diff --git a/pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasType.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasType.java similarity index 100% rename from pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasType.java rename to jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasType.java diff --git a/pipeline/src/main/java/module-info.java b/jpastreamer.pipeline/src/main/java/module-info.java similarity index 100% rename from pipeline/src/main/java/module-info.java rename to jpastreamer.pipeline/src/main/java/module-info.java diff --git a/projection/pom.xml b/jpastreamer.projection/pom.xml similarity index 100% rename from projection/pom.xml rename to jpastreamer.projection/pom.xml diff --git a/projection/src/main/java/com/speedment/jpastreamer/projection/Projection.java b/jpastreamer.projection/src/main/java/com/speedment/jpastreamer/projection/Projection.java similarity index 100% rename from projection/src/main/java/com/speedment/jpastreamer/projection/Projection.java rename to jpastreamer.projection/src/main/java/com/speedment/jpastreamer/projection/Projection.java diff --git a/projection/src/main/java/com/speedment/jpastreamer/projection/internal/InternalProjection.java b/jpastreamer.projection/src/main/java/com/speedment/jpastreamer/projection/internal/InternalProjection.java similarity index 100% rename from projection/src/main/java/com/speedment/jpastreamer/projection/internal/InternalProjection.java rename to jpastreamer.projection/src/main/java/com/speedment/jpastreamer/projection/internal/InternalProjection.java diff --git a/projection/src/main/java/com/speedment/jpastreamer/projection/internal/StandardTupleElement.java b/jpastreamer.projection/src/main/java/com/speedment/jpastreamer/projection/internal/StandardTupleElement.java similarity index 100% rename from projection/src/main/java/com/speedment/jpastreamer/projection/internal/StandardTupleElement.java rename to jpastreamer.projection/src/main/java/com/speedment/jpastreamer/projection/internal/StandardTupleElement.java diff --git a/projection/src/main/java/com/speedment/jpastreamer/projection/internal/TupleContext.java b/jpastreamer.projection/src/main/java/com/speedment/jpastreamer/projection/internal/TupleContext.java similarity index 100% rename from projection/src/main/java/com/speedment/jpastreamer/projection/internal/TupleContext.java rename to jpastreamer.projection/src/main/java/com/speedment/jpastreamer/projection/internal/TupleContext.java diff --git a/projection/src/main/java/module-info.java b/jpastreamer.projection/src/main/java/module-info.java similarity index 100% rename from projection/src/main/java/module-info.java rename to jpastreamer.projection/src/main/java/module-info.java diff --git a/projection/src/test/java/com/speedment/jpastreamer/projection/ProjectionTest.java b/jpastreamer.projection/src/test/java/com/speedment/jpastreamer/projection/ProjectionTest.java similarity index 100% rename from projection/src/test/java/com/speedment/jpastreamer/projection/ProjectionTest.java rename to jpastreamer.projection/src/test/java/com/speedment/jpastreamer/projection/ProjectionTest.java diff --git a/provider/analytics-standard/pom.xml b/jpastreamer.provider/jpastreamer.analytics.standard/pom.xml similarity index 100% rename from provider/analytics-standard/pom.xml rename to jpastreamer.provider/jpastreamer.analytics.standard/pom.xml diff --git a/provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/StandardAnalyticsReporterFactory.java b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/StandardAnalyticsReporterFactory.java similarity index 100% rename from provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/StandardAnalyticsReporterFactory.java rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/StandardAnalyticsReporterFactory.java diff --git a/provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/Handler.java b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/Handler.java similarity index 100% rename from provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/Handler.java rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/Handler.java diff --git a/provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/InternalStandardAnalyticsReporter.java b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/InternalStandardAnalyticsReporter.java similarity index 100% rename from provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/InternalStandardAnalyticsReporter.java rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/InternalStandardAnalyticsReporter.java diff --git a/provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/EventType.java b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/EventType.java similarity index 100% rename from provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/EventType.java rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/EventType.java diff --git a/provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/GoogleAnalyticsHandler.java b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/GoogleAnalyticsHandler.java similarity index 100% rename from provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/GoogleAnalyticsHandler.java rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/GoogleAnalyticsHandler.java diff --git a/provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/HttpUtil.java b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/HttpUtil.java similarity index 100% rename from provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/HttpUtil.java rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/HttpUtil.java diff --git a/provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/InternalAnalyticsException.java b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/InternalAnalyticsException.java similarity index 100% rename from provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/InternalAnalyticsException.java rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/InternalAnalyticsException.java diff --git a/provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/JsonUtil.java b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/JsonUtil.java similarity index 100% rename from provider/analytics-standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/JsonUtil.java rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/com/speedment/jpastreamer/analytics/standard/internal/google/JsonUtil.java diff --git a/provider/analytics-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/module-info.java similarity index 100% rename from provider/analytics-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/java/module-info.java diff --git a/provider/analytics-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.analytics.AnalyticsReporterFactory b/jpastreamer.provider/jpastreamer.analytics.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.analytics.AnalyticsReporterFactory similarity index 100% rename from provider/analytics-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.analytics.AnalyticsReporterFactory rename to jpastreamer.provider/jpastreamer.analytics.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.analytics.AnalyticsReporterFactory diff --git a/provider/appinfo-standard/pom.xml b/jpastreamer.provider/jpastreamer.appinfo.standard/pom.xml similarity index 100% rename from provider/appinfo-standard/pom.xml rename to jpastreamer.provider/jpastreamer.appinfo.standard/pom.xml diff --git a/provider/appinfo-standard/src/main/java/com/speedment/jpastreamer/appinfo/standard/StandardApplicationInformation.java b/jpastreamer.provider/jpastreamer.appinfo.standard/src/main/java/com/speedment/jpastreamer/appinfo/standard/StandardApplicationInformation.java similarity index 100% rename from provider/appinfo-standard/src/main/java/com/speedment/jpastreamer/appinfo/standard/StandardApplicationInformation.java rename to jpastreamer.provider/jpastreamer.appinfo.standard/src/main/java/com/speedment/jpastreamer/appinfo/standard/StandardApplicationInformation.java diff --git a/provider/appinfo-standard/src/main/java/com/speedment/jpastreamer/appinfo/standard/internal/InternalStandardApplicationInformation.java b/jpastreamer.provider/jpastreamer.appinfo.standard/src/main/java/com/speedment/jpastreamer/appinfo/standard/internal/InternalStandardApplicationInformation.java similarity index 100% rename from provider/appinfo-standard/src/main/java/com/speedment/jpastreamer/appinfo/standard/internal/InternalStandardApplicationInformation.java rename to jpastreamer.provider/jpastreamer.appinfo.standard/src/main/java/com/speedment/jpastreamer/appinfo/standard/internal/InternalStandardApplicationInformation.java diff --git a/provider/appinfo-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.appinfo.standard/src/main/java/module-info.java similarity index 100% rename from provider/appinfo-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.appinfo.standard/src/main/java/module-info.java diff --git a/provider/appinfo-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.appinfo.ApplicationInformation b/jpastreamer.provider/jpastreamer.appinfo.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.appinfo.ApplicationInformation similarity index 100% rename from provider/appinfo-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.appinfo.ApplicationInformation rename to jpastreamer.provider/jpastreamer.appinfo.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.appinfo.ApplicationInformation diff --git a/provider/application-standard/pom.xml b/jpastreamer.provider/jpastreamer.application.standard/pom.xml similarity index 100% rename from provider/application-standard/pom.xml rename to jpastreamer.provider/jpastreamer.application.standard/pom.xml diff --git a/provider/application-standard/src/main/java/com/speedment/jpastreamer/application/standard/StandardJPAStreamerBuilderFactory.java b/jpastreamer.provider/jpastreamer.application.standard/src/main/java/com/speedment/jpastreamer/application/standard/StandardJPAStreamerBuilderFactory.java similarity index 100% rename from provider/application-standard/src/main/java/com/speedment/jpastreamer/application/standard/StandardJPAStreamerBuilderFactory.java rename to jpastreamer.provider/jpastreamer.application.standard/src/main/java/com/speedment/jpastreamer/application/standard/StandardJPAStreamerBuilderFactory.java diff --git a/provider/application-standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamer.java b/jpastreamer.provider/jpastreamer.application.standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamer.java similarity index 100% rename from provider/application-standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamer.java rename to jpastreamer.provider/jpastreamer.application.standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamer.java diff --git a/provider/application-standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamerBuilder.java b/jpastreamer.provider/jpastreamer.application.standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamerBuilder.java similarity index 100% rename from provider/application-standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamerBuilder.java rename to jpastreamer.provider/jpastreamer.application.standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardJPAStreamerBuilder.java diff --git a/provider/application-standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardStreamSupplier.java b/jpastreamer.provider/jpastreamer.application.standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardStreamSupplier.java similarity index 100% rename from provider/application-standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardStreamSupplier.java rename to jpastreamer.provider/jpastreamer.application.standard/src/main/java/com/speedment/jpastreamer/application/standard/internal/StandardStreamSupplier.java diff --git a/provider/application-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.application.standard/src/main/java/module-info.java similarity index 100% rename from provider/application-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.application.standard/src/main/java/module-info.java diff --git a/provider/application-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.application.JPAStreamerBuilderFactory b/jpastreamer.provider/jpastreamer.application.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.application.JPAStreamerBuilderFactory similarity index 100% rename from provider/application-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.application.JPAStreamerBuilderFactory rename to jpastreamer.provider/jpastreamer.application.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.application.JPAStreamerBuilderFactory diff --git a/provider/autoclose-standard/pom.xml b/jpastreamer.provider/jpastreamer.autoclose.standard/pom.xml similarity index 100% rename from provider/autoclose-standard/pom.xml rename to jpastreamer.provider/jpastreamer.autoclose.standard/pom.xml diff --git a/provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/StandardAutoCloseFactory.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/StandardAutoCloseFactory.java similarity index 100% rename from provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/StandardAutoCloseFactory.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/StandardAutoCloseFactory.java diff --git a/provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingBaseStream.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingBaseStream.java similarity index 100% rename from provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingBaseStream.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingBaseStream.java diff --git a/provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStream.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStream.java similarity index 100% rename from provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStream.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStream.java diff --git a/provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStream.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStream.java similarity index 100% rename from provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStream.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStream.java diff --git a/provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStream.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStream.java similarity index 100% rename from provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStream.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStream.java diff --git a/provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStream.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStream.java similarity index 100% rename from provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStream.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStream.java diff --git a/provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/InternalAutoCloseFactory.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/InternalAutoCloseFactory.java similarity index 100% rename from provider/autoclose-standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/InternalAutoCloseFactory.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/com/speedment/jpastreamer/autoclose/standard/internal/InternalAutoCloseFactory.java diff --git a/provider/autoclose-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/module-info.java similarity index 100% rename from provider/autoclose-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/main/java/module-info.java diff --git a/provider/autoclose-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.autoclose.AutoCloseFactory b/jpastreamer.provider/jpastreamer.autoclose.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.autoclose.AutoCloseFactory similarity index 100% rename from provider/autoclose-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.autoclose.AutoCloseFactory rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.autoclose.AutoCloseFactory diff --git a/provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingStreamTest.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingStreamTest.java similarity index 100% rename from provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingStreamTest.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AbstractAutoClosingStreamTest.java diff --git a/provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStreamTest.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStreamTest.java similarity index 100% rename from provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStreamTest.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingDoubleStreamTest.java diff --git a/provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStreamTest.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStreamTest.java similarity index 100% rename from provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStreamTest.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingIntStreamTest.java diff --git a/provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStreamTest.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStreamTest.java similarity index 100% rename from provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStreamTest.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingLongStreamTest.java diff --git a/provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStreamTest.java b/jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStreamTest.java similarity index 100% rename from provider/autoclose-standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStreamTest.java rename to jpastreamer.provider/jpastreamer.autoclose.standard/src/test/java/com/speedment/jpastreamer/autoclose/standard/internal/AutoClosingStreamTest.java diff --git a/provider/builder-standard/pom.xml b/jpastreamer.provider/jpastreamer.builder.standard/pom.xml similarity index 100% rename from provider/builder-standard/pom.xml rename to jpastreamer.provider/jpastreamer.builder.standard/pom.xml diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/StandardBuilderFactory.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/StandardBuilderFactory.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/StandardBuilderFactory.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/StandardBuilderFactory.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseBuilderState.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseBuilderState.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseBuilderState.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseBuilderState.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilder.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilder.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilder.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilder.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamSupport.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamSupport.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamSupport.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamSupport.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilder.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilder.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilder.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilder.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/Factories.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/Factories.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/Factories.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/Factories.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InjectedFactories.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InjectedFactories.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InjectedFactories.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InjectedFactories.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilder.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilder.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilder.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilder.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InternalBuilderFactory.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InternalBuilderFactory.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InternalBuilderFactory.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/InternalBuilderFactory.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilder.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilder.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilder.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilder.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/MockRendererFactory.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/MockRendererFactory.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/MockRendererFactory.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/MockRendererFactory.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilder.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilder.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilder.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilder.java diff --git a/provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderUtil.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderUtil.java similarity index 100% rename from provider/builder-standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderUtil.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderUtil.java diff --git a/provider/builder-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.builder.standard/src/main/java/module-info.java similarity index 100% rename from provider/builder-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/java/module-info.java diff --git a/provider/builder-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.builder.BuilderFactory b/jpastreamer.provider/jpastreamer.builder.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.builder.BuilderFactory similarity index 100% rename from provider/builder-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.builder.BuilderFactory rename to jpastreamer.provider/jpastreamer.builder.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.builder.BuilderFactory diff --git a/provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilderTest.java b/jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilderTest.java similarity index 100% rename from provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilderTest.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/BaseStreamBuilderTest.java diff --git a/provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilderTest.java b/jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilderTest.java similarity index 100% rename from provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilderTest.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/DoubleStreamBuilderTest.java diff --git a/provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilderTest.java b/jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilderTest.java similarity index 100% rename from provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilderTest.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/IntStreamBuilderTest.java diff --git a/provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilderTest.java b/jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilderTest.java similarity index 100% rename from provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilderTest.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/LongStreamBuilderTest.java diff --git a/provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderTest.java b/jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderTest.java similarity index 100% rename from provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderTest.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/StreamBuilderTest.java diff --git a/provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/TestFactories.java b/jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/TestFactories.java similarity index 100% rename from provider/builder-standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/TestFactories.java rename to jpastreamer.provider/jpastreamer.builder.standard/src/test/java/com/speedment/jpastreamer/builder/standard/internal/TestFactories.java diff --git a/provider/criteria-standard/pom.xml b/jpastreamer.provider/jpastreamer.criteria.standard/pom.xml similarity index 100% rename from provider/criteria-standard/pom.xml rename to jpastreamer.provider/jpastreamer.criteria.standard/pom.xml diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactory.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactory.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactory.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactory.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardOrderFactory.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardOrderFactory.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardOrderFactory.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardOrderFactory.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactory.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactory.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactory.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactory.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteria.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteria.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteria.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteria.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaFactory.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaFactory.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaFactory.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaFactory.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalOrderFactory.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalOrderFactory.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalOrderFactory.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalOrderFactory.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactory.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactory.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactory.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactory.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalQueryParameter.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalQueryParameter.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalQueryParameter.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/InternalQueryParameter.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/DefaultOrderMapper.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/DefaultOrderMapper.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/DefaultOrderMapper.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/DefaultOrderMapper.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/OrderMapper.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/OrderMapper.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/OrderMapper.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/order/OrderMapper.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/DefaultPredicateMapper.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/DefaultPredicateMapper.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/DefaultPredicateMapper.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/DefaultPredicateMapper.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/ParameterizedPredicate.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/ParameterizedPredicate.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/ParameterizedPredicate.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/ParameterizedPredicate.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapper.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapper.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapper.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapper.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapping.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapping.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapping.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/predicate/PredicateMapping.java diff --git a/provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/util/Cast.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/util/Cast.java similarity index 100% rename from provider/criteria-standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/util/Cast.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/com/speedment/jpastreamer/criteria/standard/internal/util/Cast.java diff --git a/provider/criteria-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/module-info.java similarity index 100% rename from provider/criteria-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/java/module-info.java diff --git a/provider/criteria-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.CriteriaFactory b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.CriteriaFactory similarity index 100% rename from provider/criteria-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.CriteriaFactory rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.CriteriaFactory diff --git a/provider/criteria-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.OrderFactory b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.OrderFactory similarity index 100% rename from provider/criteria-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.OrderFactory rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.OrderFactory diff --git a/provider/criteria-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.PredicateFactory b/jpastreamer.provider/jpastreamer.criteria.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.PredicateFactory similarity index 100% rename from provider/criteria-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.PredicateFactory rename to jpastreamer.provider/jpastreamer.criteria.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.criteria.PredicateFactory diff --git a/provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactoryTest.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactoryTest.java similarity index 100% rename from provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactoryTest.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardCriteriaFactoryTest.java diff --git a/provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactoryTest.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactoryTest.java similarity index 100% rename from provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactoryTest.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/StandardPredicateFactoryTest.java diff --git a/provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaTest.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaTest.java similarity index 100% rename from provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaTest.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalCriteriaTest.java diff --git a/provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactoryTest.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactoryTest.java similarity index 100% rename from provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactoryTest.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/InternalPredicateFactoryTest.java diff --git a/provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/util/ReflectionUtil.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/util/ReflectionUtil.java similarity index 100% rename from provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/util/ReflectionUtil.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/internal/util/ReflectionUtil.java diff --git a/provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/CombinedStringPredicate.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/CombinedStringPredicate.java similarity index 100% rename from provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/CombinedStringPredicate.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/CombinedStringPredicate.java diff --git a/provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringEqualPredicate.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringEqualPredicate.java similarity index 100% rename from provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringEqualPredicate.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringEqualPredicate.java diff --git a/provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringNotEqualPredicate.java b/jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringNotEqualPredicate.java similarity index 100% rename from provider/criteria-standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringNotEqualPredicate.java rename to jpastreamer.provider/jpastreamer.criteria.standard/src/test/java/com/speedment/jpastreamer/criteria/standard/support/StringNotEqualPredicate.java diff --git a/provider/interopoptimizer-standard/pom.xml b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml similarity index 100% rename from provider/interopoptimizer-standard/pom.xml rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactory.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactory.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactory.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactory.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemoveOrderAffectingOperations.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemoveOrderAffectingOperations.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemoveOrderAffectingOperations.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemoveOrderAffectingOperations.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemovePeek.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemovePeek.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemovePeek.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/RemovePeek.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinct.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinct.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinct.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinct.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilter.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilter.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilter.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilter.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimit.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimit.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimit.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimit.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkip.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkip.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkip.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkip.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSorted.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSorted.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSorted.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSorted.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/NoValueSquash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/NoValueSquash.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/NoValueSquash.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/NoValueSquash.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/SingleValueSquash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/SingleValueSquash.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/SingleValueSquash.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/SingleValueSquash.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/Squash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/Squash.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/Squash.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/Squash.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractNoValueSquash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractNoValueSquash.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractNoValueSquash.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractNoValueSquash.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/ComparatorSquash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/ComparatorSquash.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/ComparatorSquash.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/ComparatorSquash.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/LongSquash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/LongSquash.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/LongSquash.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/LongSquash.java diff --git a/provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/PredicateSquash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/PredicateSquash.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/PredicateSquash.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/PredicateSquash.java diff --git a/provider/interopoptimizer-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/module-info.java similarity index 100% rename from provider/interopoptimizer-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/module-info.java diff --git a/provider/interopoptimizer-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.interopoptimizer.IntermediateOperationOptimizerFactory b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.interopoptimizer.IntermediateOperationOptimizerFactory similarity index 100% rename from provider/interopoptimizer-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.interopoptimizer.IntermediateOperationOptimizerFactory rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.interopoptimizer.IntermediateOperationOptimizerFactory diff --git a/provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactoryTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactoryTest.java similarity index 100% rename from provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactoryTest.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/StandardIntermediateOperationOptimizerFactoryTest.java diff --git a/provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinctTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinctTest.java similarity index 100% rename from provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinctTest.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashDistinctTest.java diff --git a/provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilterTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilterTest.java similarity index 100% rename from provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilterTest.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilterTest.java diff --git a/provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimitTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimitTest.java similarity index 100% rename from provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimitTest.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashLimitTest.java diff --git a/provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkipTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkipTest.java similarity index 100% rename from provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkipTest.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSkipTest.java diff --git a/provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSortedTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSortedTest.java similarity index 100% rename from provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSortedTest.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSortedTest.java diff --git a/provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashTest.java similarity index 100% rename from provider/interopoptimizer-standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashTest.java rename to jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashTest.java diff --git a/provider/merger-standard/pom.xml b/jpastreamer.provider/jpastreamer.merger.standard/pom.xml similarity index 100% rename from provider/merger-standard/pom.xml rename to jpastreamer.provider/jpastreamer.merger.standard/pom.xml diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/StandardMergerFactory.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/StandardMergerFactory.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/StandardMergerFactory.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/StandardMergerFactory.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/InternalMergerFactory.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/InternalMergerFactory.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/InternalMergerFactory.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/InternalMergerFactory.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/InternalCriteriaMerger.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/InternalCriteriaMerger.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/InternalCriteriaMerger.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/InternalCriteriaMerger.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/result/InternalCriteriaMergeResult.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/result/InternalCriteriaMergeResult.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/result/InternalCriteriaMergeResult.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/result/InternalCriteriaMergeResult.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/CriteriaModifier.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/CriteriaModifier.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/CriteriaModifier.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/CriteriaModifier.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/DistinctCriteriaModifier.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/DistinctCriteriaModifier.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/DistinctCriteriaModifier.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/DistinctCriteriaModifier.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/FilterCriteriaModifier.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/FilterCriteriaModifier.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/FilterCriteriaModifier.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/FilterCriteriaModifier.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/SortedCriteriaModifier.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/SortedCriteriaModifier.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/SortedCriteriaModifier.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/SortedCriteriaModifier.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/InternalQueryMerger.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/InternalQueryMerger.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/InternalQueryMerger.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/InternalQueryMerger.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/result/InternalQueryMergeResult.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/result/InternalQueryMergeResult.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/result/InternalQueryMergeResult.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/result/InternalQueryMergeResult.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/QueryModifier.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/QueryModifier.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/QueryModifier.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/QueryModifier.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/SkipLimitModifier.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/SkipLimitModifier.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/SkipLimitModifier.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/strategy/SkipLimitModifier.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/DefaultIntermediateOperationReference.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/DefaultIntermediateOperationReference.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/DefaultIntermediateOperationReference.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/DefaultIntermediateOperationReference.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/IntermediateOperationReference.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/IntermediateOperationReference.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/IntermediateOperationReference.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/reference/IntermediateOperationReference.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/DefaultMergingTracker.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/DefaultMergingTracker.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/DefaultMergingTracker.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/DefaultMergingTracker.java diff --git a/provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/MergingTracker.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/MergingTracker.java similarity index 100% rename from provider/merger-standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/MergingTracker.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/tracker/MergingTracker.java diff --git a/provider/merger-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/module-info.java similarity index 100% rename from provider/merger-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/java/module-info.java diff --git a/provider/merger-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.merger.MergerFactory b/jpastreamer.provider/jpastreamer.merger.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.merger.MergerFactory similarity index 100% rename from provider/merger-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.merger.MergerFactory rename to jpastreamer.provider/jpastreamer.merger.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.merger.MergerFactory diff --git a/provider/pipeline-standard/pom.xml b/jpastreamer.provider/jpastreamer.pipeline.standard/pom.xml similarity index 100% rename from provider/pipeline-standard/pom.xml rename to jpastreamer.provider/jpastreamer.pipeline.standard/pom.xml diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardDoubleIntermediateOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardDoubleIntermediateOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardDoubleIntermediateOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardDoubleIntermediateOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntIntermediateOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntIntermediateOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntIntermediateOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntIntermediateOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntermediateOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntermediateOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntermediateOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardIntermediateOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardLongIntermediateOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardLongIntermediateOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardLongIntermediateOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/StandardLongIntermediateOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalDoubleIntermediateOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalDoubleIntermediateOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalDoubleIntermediateOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalDoubleIntermediateOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntIntermediateOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntIntermediateOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntIntermediateOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntIntermediateOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntermediateOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntermediateOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntermediateOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalIntermediateOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalLongIntermediateOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalLongIntermediateOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalLongIntermediateOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/InternalLongIntermediateOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/StandardIntermediateOperation.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/StandardIntermediateOperation.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/StandardIntermediateOperation.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/StandardIntermediateOperation.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/TypeUtil.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/TypeUtil.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/TypeUtil.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/standard/internal/TypeUtil.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/StandardPipelineFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/StandardPipelineFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/StandardPipelineFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/StandardPipelineFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalPipelineFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalPipelineFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalPipelineFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalPipelineFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipeline.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipeline.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipeline.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipeline.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardDoubleTerminalOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardDoubleTerminalOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardDoubleTerminalOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardDoubleTerminalOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardIntTerminalOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardIntTerminalOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardIntTerminalOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardIntTerminalOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardLongTerminalOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardLongTerminalOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardLongTerminalOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardLongTerminalOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardTerminalOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardTerminalOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardTerminalOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/StandardTerminalOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AbstractTerminalOperation.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AbstractTerminalOperation.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AbstractTerminalOperation.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AbstractTerminalOperation.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AcceptTerminalOperation.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AcceptTerminalOperation.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AcceptTerminalOperation.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/AcceptTerminalOperation.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsDoubleTerminalOperation.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsDoubleTerminalOperation.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsDoubleTerminalOperation.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsDoubleTerminalOperation.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsIntTerminalOperation.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsIntTerminalOperation.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsIntTerminalOperation.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsIntTerminalOperation.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsLongTerminalOperation.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsLongTerminalOperation.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsLongTerminalOperation.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyAsLongTerminalOperation.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyTerminalOperation.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyTerminalOperation.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyTerminalOperation.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/ApplyTerminalOperation.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalDoubleTerminalOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalDoubleTerminalOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalDoubleTerminalOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalDoubleTerminalOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalIntTerminalOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalIntTerminalOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalIntTerminalOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalIntTerminalOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalLongTerminalOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalLongTerminalOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalLongTerminalOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalLongTerminalOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalTerminalOperationFactory.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalTerminalOperationFactory.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalTerminalOperationFactory.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/InternalTerminalOperationFactory.java diff --git a/provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/TestTerminalOperation.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/TestTerminalOperation.java similarity index 100% rename from provider/pipeline-standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/TestTerminalOperation.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/com/speedment/jpastreamer/pipeline/terminal/standard/internal/TestTerminalOperation.java diff --git a/provider/pipeline-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/module-info.java similarity index 100% rename from provider/pipeline-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/java/module-info.java diff --git a/provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.PipelineFactory b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.PipelineFactory similarity index 100% rename from provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.PipelineFactory rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.PipelineFactory diff --git a/provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.DoubleIntermediateOperationFactory b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.DoubleIntermediateOperationFactory similarity index 100% rename from provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.DoubleIntermediateOperationFactory rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.DoubleIntermediateOperationFactory diff --git a/provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntIntermediateOperationFactory b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntIntermediateOperationFactory similarity index 100% rename from provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntIntermediateOperationFactory rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntIntermediateOperationFactory diff --git a/provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationFactory b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationFactory similarity index 100% rename from provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationFactory rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationFactory diff --git a/provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.LongIntermediateOperationFactory b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.LongIntermediateOperationFactory similarity index 100% rename from provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.LongIntermediateOperationFactory rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.intermediate.LongIntermediateOperationFactory diff --git a/provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.DoubleTerminalOperationFactory b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.DoubleTerminalOperationFactory similarity index 100% rename from provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.DoubleTerminalOperationFactory rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.DoubleTerminalOperationFactory diff --git a/provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.IntTerminalOperationFactory b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.IntTerminalOperationFactory similarity index 100% rename from provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.IntTerminalOperationFactory rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.IntTerminalOperationFactory diff --git a/provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.LongTerminalOperationFactory b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.LongTerminalOperationFactory similarity index 100% rename from provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.LongTerminalOperationFactory rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.LongTerminalOperationFactory diff --git a/provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.TerminalOperationFactory b/jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.TerminalOperationFactory similarity index 100% rename from provider/pipeline-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.TerminalOperationFactory rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.pipeline.terminal.TerminalOperationFactory diff --git a/provider/pipeline-standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalIntermediateOperationFactoryTest.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalIntermediateOperationFactoryTest.java similarity index 100% rename from provider/pipeline-standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalIntermediateOperationFactoryTest.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalIntermediateOperationFactoryTest.java diff --git a/provider/pipeline-standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalTerminalOperationFactoryTest.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalTerminalOperationFactoryTest.java similarity index 100% rename from provider/pipeline-standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalTerminalOperationFactoryTest.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/InternalTerminalOperationFactoryTest.java diff --git a/provider/pipeline-standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipelineTest.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipelineTest.java similarity index 100% rename from provider/pipeline-standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipelineTest.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/test/java/com/speedment/jpastreamer/pipeline/standard/internal/StandardPipelineTest.java diff --git a/provider/pipeline-standard/src/test/java/com/speedment/jpastreamer/pipeline/terminal/standard/Main.java b/jpastreamer.provider/jpastreamer.pipeline.standard/src/test/java/com/speedment/jpastreamer/pipeline/terminal/standard/Main.java similarity index 100% rename from provider/pipeline-standard/src/test/java/com/speedment/jpastreamer/pipeline/terminal/standard/Main.java rename to jpastreamer.provider/jpastreamer.pipeline.standard/src/test/java/com/speedment/jpastreamer/pipeline/terminal/standard/Main.java diff --git a/provider/renderer-standard/pom.xml b/jpastreamer.provider/jpastreamer.renderer.standard/pom.xml similarity index 100% rename from provider/renderer-standard/pom.xml rename to jpastreamer.provider/jpastreamer.renderer.standard/pom.xml diff --git a/provider/renderer-standard/src/main/java/com/speedment/jpastreamer/renderer/standard/StandardRendererFactory.java b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/StandardRendererFactory.java similarity index 100% rename from provider/renderer-standard/src/main/java/com/speedment/jpastreamer/renderer/standard/StandardRendererFactory.java rename to jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/StandardRendererFactory.java diff --git a/provider/renderer-standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/InternalRendererFactory.java b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/InternalRendererFactory.java similarity index 100% rename from provider/renderer-standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/InternalRendererFactory.java rename to jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/InternalRendererFactory.java diff --git a/provider/renderer-standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderResult.java b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderResult.java similarity index 100% rename from provider/renderer-standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderResult.java rename to jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderResult.java diff --git a/provider/renderer-standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java similarity index 100% rename from provider/renderer-standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java rename to jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java diff --git a/provider/renderer-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/module-info.java similarity index 100% rename from provider/renderer-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/module-info.java diff --git a/provider/renderer-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.renderer.RendererFactory b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.renderer.RendererFactory similarity index 100% rename from provider/renderer-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.renderer.RendererFactory rename to jpastreamer.provider/jpastreamer.renderer.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.renderer.RendererFactory diff --git a/provider/streamconfiguration-standard/pom.xml b/jpastreamer.provider/jpastreamer.streamconfiguration.standard/pom.xml similarity index 100% rename from provider/streamconfiguration-standard/pom.xml rename to jpastreamer.provider/jpastreamer.streamconfiguration.standard/pom.xml diff --git a/provider/streamconfiguration-standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/StandardStreamConfigurationFactory.java b/jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/StandardStreamConfigurationFactory.java similarity index 100% rename from provider/streamconfiguration-standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/StandardStreamConfigurationFactory.java rename to jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/StandardStreamConfigurationFactory.java diff --git a/provider/streamconfiguration-standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardJoinConfiguration.java b/jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardJoinConfiguration.java similarity index 100% rename from provider/streamconfiguration-standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardJoinConfiguration.java rename to jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardJoinConfiguration.java diff --git a/provider/streamconfiguration-standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfiguration.java b/jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfiguration.java similarity index 100% rename from provider/streamconfiguration-standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfiguration.java rename to jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfiguration.java diff --git a/provider/streamconfiguration-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/java/module-info.java similarity index 100% rename from provider/streamconfiguration-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/java/module-info.java diff --git a/provider/streamconfiguration-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.streamconfiguration.StreamConfigurationFactory b/jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.streamconfiguration.StreamConfigurationFactory similarity index 100% rename from provider/streamconfiguration-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.streamconfiguration.StreamConfigurationFactory rename to jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.streamconfiguration.StreamConfigurationFactory diff --git a/provider/streamconfiguration-standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film$.java b/jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film$.java similarity index 100% rename from provider/streamconfiguration-standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film$.java rename to jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film$.java diff --git a/provider/streamconfiguration-standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film.java b/jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film.java similarity index 100% rename from provider/streamconfiguration-standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film.java rename to jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/Film.java diff --git a/provider/streamconfiguration-standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfigurationTest.java b/jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfigurationTest.java similarity index 100% rename from provider/streamconfiguration-standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfigurationTest.java rename to jpastreamer.provider/jpastreamer.streamconfiguration.standard/src/test/java/com/speedment/jpastreamer/streamconfiguration/standard/internal/StandardStreamConfigurationTest.java diff --git a/provider/termopmodifier-standard/pom.xml b/jpastreamer.provider/jpastreamer.termopmodifier.standard/pom.xml similarity index 100% rename from provider/termopmodifier-standard/pom.xml rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/pom.xml diff --git a/provider/termopmodifier-standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperatorModifierFactory.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperatorModifierFactory.java similarity index 100% rename from provider/termopmodifier-standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperatorModifierFactory.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperatorModifierFactory.java diff --git a/provider/termopmodifier-standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/InternalTerminalOperatorModifierFactory.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/InternalTerminalOperatorModifierFactory.java similarity index 100% rename from provider/termopmodifier-standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/InternalTerminalOperatorModifierFactory.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/InternalTerminalOperatorModifierFactory.java diff --git a/provider/termopmodifier-standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperatorModifier.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperatorModifier.java similarity index 100% rename from provider/termopmodifier-standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperatorModifier.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperatorModifier.java diff --git a/provider/termopmodifier-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/java/module-info.java similarity index 100% rename from provider/termopmodifier-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/java/module-info.java diff --git a/provider/termopmodifier-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopmodifier.TerminalOperationModifierFactory b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopmodifier.TerminalOperationModifierFactory similarity index 100% rename from provider/termopmodifier-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopmodifier.TerminalOperationModifierFactory rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopmodifier.TerminalOperationModifierFactory diff --git a/provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperationModifierFactoryTest.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperationModifierFactoryTest.java similarity index 100% rename from provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperationModifierFactoryTest.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/StandardTerminalOperationModifierFactoryTest.java diff --git a/provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/AnyMatchTest.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/AnyMatchTest.java similarity index 100% rename from provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/AnyMatchTest.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/AnyMatchTest.java diff --git a/provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindAnyTest.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindAnyTest.java similarity index 100% rename from provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindAnyTest.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindAnyTest.java diff --git a/provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindFirstTest.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindFirstTest.java similarity index 100% rename from provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindFirstTest.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/FindFirstTest.java diff --git a/provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/NoneMatchTest.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/NoneMatchTest.java similarity index 100% rename from provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/NoneMatchTest.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/NoneMatchTest.java diff --git a/provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperationModifierTest.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperationModifierTest.java similarity index 100% rename from provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperationModifierTest.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/StandardTerminalOperationModifierTest.java diff --git a/provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film$.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film$.java similarity index 100% rename from provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film$.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film$.java diff --git a/provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film.java b/jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film.java similarity index 100% rename from provider/termopmodifier-standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film.java rename to jpastreamer.provider/jpastreamer.termopmodifier.standard/src/test/java/com/speedment/jpastreamer/termopmodifier/standard/internal/model/Film.java diff --git a/provider/termopoptimizer-standard/pom.xml b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/pom.xml similarity index 100% rename from provider/termopoptimizer-standard/pom.xml rename to jpastreamer.provider/jpastreamer.termopoptimizer.standard/pom.xml diff --git a/provider/termopoptimizer-standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactory.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactory.java similarity index 100% rename from provider/termopoptimizer-standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactory.java rename to jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactory.java diff --git a/provider/termopoptimizer-standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/InternalTerminalOperationOptimizerFactory.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/InternalTerminalOperationOptimizerFactory.java similarity index 100% rename from provider/termopoptimizer-standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/InternalTerminalOperationOptimizerFactory.java rename to jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/InternalTerminalOperationOptimizerFactory.java diff --git a/provider/termopoptimizer-standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizer.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizer.java similarity index 100% rename from provider/termopoptimizer-standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizer.java rename to jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizer.java diff --git a/provider/termopoptimizer-standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/module-info.java similarity index 100% rename from provider/termopoptimizer-standard/src/main/java/module-info.java rename to jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/module-info.java diff --git a/provider/termopoptimizer-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizerFactory b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizerFactory similarity index 100% rename from provider/termopoptimizer-standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizerFactory rename to jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/resources/META-INF/services/com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizerFactory diff --git a/provider/pom.xml b/jpastreamer.provider/pom.xml similarity index 60% rename from provider/pom.xml rename to jpastreamer.provider/pom.xml index b7671e42..03c13932 100644 --- a/provider/pom.xml +++ b/jpastreamer.provider/pom.xml @@ -29,19 +29,19 @@ Provider - application-standard - autoclose-standard - builder-standard - pipeline-standard - renderer-standard - interopoptimizer-standard - merger-standard - criteria-standard - termopmodifier-standard - termopoptimizer-standard - analytics-standard - appinfo-standard - streamconfiguration-standard + jpastreamer.application.standard + jpastreamer.autoclose.standard + jpastreamer.builder.standard + jpastreamer.pipeline.standard + jpastreamer.renderer.standard + jpastreamer.interopoptimizer.standard + jpastreamer.merger.standard + jpastreamer.criteria.standard + jpastreamer.termopmodifier.standard + jpastreamer.termopoptimizer.standard + jpastreamer.analytics.standard + jpastreamer.appinfo.standard + jpastreamer.streamconfiguration.standard diff --git a/renderer/pom.xml b/jpastreamer.renderer/pom.xml similarity index 100% rename from renderer/pom.xml rename to jpastreamer.renderer/pom.xml diff --git a/renderer/src/main/java/com/speedment/jpastreamer/renderer/RenderResult.java b/jpastreamer.renderer/src/main/java/com/speedment/jpastreamer/renderer/RenderResult.java similarity index 100% rename from renderer/src/main/java/com/speedment/jpastreamer/renderer/RenderResult.java rename to jpastreamer.renderer/src/main/java/com/speedment/jpastreamer/renderer/RenderResult.java diff --git a/renderer/src/main/java/com/speedment/jpastreamer/renderer/Renderer.java b/jpastreamer.renderer/src/main/java/com/speedment/jpastreamer/renderer/Renderer.java similarity index 100% rename from renderer/src/main/java/com/speedment/jpastreamer/renderer/Renderer.java rename to jpastreamer.renderer/src/main/java/com/speedment/jpastreamer/renderer/Renderer.java diff --git a/renderer/src/main/java/com/speedment/jpastreamer/renderer/RendererFactory.java b/jpastreamer.renderer/src/main/java/com/speedment/jpastreamer/renderer/RendererFactory.java similarity index 100% rename from renderer/src/main/java/com/speedment/jpastreamer/renderer/RendererFactory.java rename to jpastreamer.renderer/src/main/java/com/speedment/jpastreamer/renderer/RendererFactory.java diff --git a/renderer/src/main/java/module-info.java b/jpastreamer.renderer/src/main/java/module-info.java similarity index 100% rename from renderer/src/main/java/module-info.java rename to jpastreamer.renderer/src/main/java/module-info.java diff --git a/rootfactory/pom.xml b/jpastreamer.rootfactory/pom.xml similarity index 100% rename from rootfactory/pom.xml rename to jpastreamer.rootfactory/pom.xml diff --git a/rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/Priority.java b/jpastreamer.rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/Priority.java similarity index 100% rename from rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/Priority.java rename to jpastreamer.rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/Priority.java diff --git a/rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/RootFactory.java b/jpastreamer.rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/RootFactory.java similarity index 100% rename from rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/RootFactory.java rename to jpastreamer.rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/RootFactory.java diff --git a/rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/internal/InternalRootFactory.java b/jpastreamer.rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/internal/InternalRootFactory.java similarity index 100% rename from rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/internal/InternalRootFactory.java rename to jpastreamer.rootfactory/src/main/java/com/speedment/jpastreamer/rootfactory/internal/InternalRootFactory.java diff --git a/rootfactory/src/main/java/module-info.java b/jpastreamer.rootfactory/src/main/java/module-info.java similarity index 100% rename from rootfactory/src/main/java/module-info.java rename to jpastreamer.rootfactory/src/main/java/module-info.java diff --git a/streamconfiguration/pom.xml b/jpastreamer.streamconfiguration/pom.xml similarity index 100% rename from streamconfiguration/pom.xml rename to jpastreamer.streamconfiguration/pom.xml diff --git a/streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java similarity index 95% rename from streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java rename to jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java index a9edab0d..9fcdbcce 100644 --- a/streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java +++ b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java @@ -85,8 +85,9 @@ default StreamConfiguration joining(final Field field) { * This prevents the N+1 problem if the field is accessed in * elements in the future Stream. *

- * + * * @param field to join + * @param joinType type of join, e.g. left join * @return a new StreamConfiguration configured with * the provided {@code field} so that it will be * eagerly joined when producing elements in the future Stream @@ -125,6 +126,7 @@ default StreamConfiguration joining(final Field field) { * } * } * + * @param projection the projection to use * @return a new StreamConfiguration configured with * the provided {@code projection} so that it will use * the projected columns to initialize when creating @@ -148,6 +150,9 @@ default StreamConfiguration joining(final Field field) { * by the underlying persistence provider. *

* + * @param hintName the hint + * @param value + * * @return a new StreamConfiguration configured with * the provided {@code hintName} and its {@code value} */ @@ -173,6 +178,12 @@ static StreamConfiguration of(final Class entityClass) { } + /** + * JoinConfiguration instances are used to configure + * Stream joins. + * + * @param the entity type + */ interface JoinConfiguration { /** * Returns the {@link Field} for this JoinConfiguration. diff --git a/streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfigurationFactory.java b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfigurationFactory.java similarity index 100% rename from streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfigurationFactory.java rename to jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfigurationFactory.java diff --git a/streamconfiguration/src/main/java/module-info.java b/jpastreamer.streamconfiguration/src/main/java/module-info.java similarity index 100% rename from streamconfiguration/src/main/java/module-info.java rename to jpastreamer.streamconfiguration/src/main/java/module-info.java diff --git a/termopmodifier/pom.xml b/jpastreamer.termopmodifier/pom.xml similarity index 100% rename from termopmodifier/pom.xml rename to jpastreamer.termopmodifier/pom.xml diff --git a/termopmodifier/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifier.java b/jpastreamer.termopmodifier/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifier.java similarity index 100% rename from termopmodifier/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifier.java rename to jpastreamer.termopmodifier/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifier.java diff --git a/termopmodifier/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifierFactory.java b/jpastreamer.termopmodifier/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifierFactory.java similarity index 100% rename from termopmodifier/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifierFactory.java rename to jpastreamer.termopmodifier/src/main/java/com/speedment/jpastreamer/termopmodifier/TerminalOperationModifierFactory.java diff --git a/termopmodifier/src/main/java/module-info.java b/jpastreamer.termopmodifier/src/main/java/module-info.java similarity index 100% rename from termopmodifier/src/main/java/module-info.java rename to jpastreamer.termopmodifier/src/main/java/module-info.java diff --git a/termopoptimizer/pom.xml b/jpastreamer.termopoptimizer/pom.xml similarity index 100% rename from termopoptimizer/pom.xml rename to jpastreamer.termopoptimizer/pom.xml diff --git a/termopoptimizer/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizer.java b/jpastreamer.termopoptimizer/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizer.java similarity index 100% rename from termopoptimizer/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizer.java rename to jpastreamer.termopoptimizer/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizer.java diff --git a/termopoptimizer/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizerFactory.java b/jpastreamer.termopoptimizer/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizerFactory.java similarity index 100% rename from termopoptimizer/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizerFactory.java rename to jpastreamer.termopoptimizer/src/main/java/com/speedment/jpastreamer/termopoptimizer/TerminalOperationOptimizerFactory.java diff --git a/termopoptimizer/src/main/java/module-info.java b/jpastreamer.termopoptimizer/src/main/java/module-info.java similarity index 100% rename from termopoptimizer/src/main/java/module-info.java rename to jpastreamer.termopoptimizer/src/main/java/module-info.java diff --git a/pom.xml b/pom.xml index 2f43f011..b56af1c5 100644 --- a/pom.xml +++ b/pom.xml @@ -41,29 +41,29 @@ - exception - rootfactory - field - application - javanine - autoclose - pipeline - builder - renderer - interopoptimizer - merger - criteria - termopmodifier - termopoptimizer - provider - fieldgenerator - core - integration - analytics - appinfo - streamconfiguration - announcer - projection + jpastreamer.exception + jpastreamer.rootfactory + jpastreamer.field + jpastreamer.application + jpastreamer.javanine + jpastreamer.autoclose + jpastreamer.pipeline + jpastreamer.builder + jpastreamer.renderer + jpastreamer.interopoptimizer + jpastreamer.merger + jpastreamer.criteria + jpastreamer.termopmodifier + jpastreamer.termopoptimizer + jpastreamer.provider + jpastreamer.fieldgenerator + jpastreamer.core + jpastreamer.integration + jpastreamer.analytics + jpastreamer.appinfo + jpastreamer.streamconfiguration + jpastreamer.announcer + jpastreamer.projection @@ -534,6 +534,7 @@ true *.internal:*.internal.* + *.test:*.test.* From 9ad33553590cc592c035e24d702dfb9e12a99a1a Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Wed, 21 Jun 2023 15:27:25 +0200 Subject: [PATCH 09/29] Add javadoc for packages 'application' and 'streamconfiguration' --- .../com/speedment/jpastreamer/application/package-info.java | 4 ++++ .../jpastreamer/streamconfiguration/package-info.java | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/package-info.java create mode 100644 jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/package-info.java diff --git a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/package-info.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/package-info.java new file mode 100644 index 00000000..e4e8cae1 --- /dev/null +++ b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/package-info.java @@ -0,0 +1,4 @@ +/** + * Provides interfaces for instantiating JPAStreamer. + */ +package com.speedment.jpastreamer.application; diff --git a/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/package-info.java b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/package-info.java new file mode 100644 index 00000000..bf7d2eb7 --- /dev/null +++ b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/package-info.java @@ -0,0 +1,5 @@ +/** + * Provides interfaces for configuring custom Stream sources. + */ +package com.speedment.jpastreamer.streamconfiguration; + From a5ca6f4b1bd84847bfea6a19bd1c3f9c43c93e0f Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Wed, 21 Jun 2023 15:31:21 +0200 Subject: [PATCH 10/29] Align description of stream elment types with java.util.Stream javadoc --- .../jpastreamer/application/JPAStreamer.java | 12 ++++++------ .../streamconfiguration/StreamConfiguration.java | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java index d84e2190..e1aa6845 100644 --- a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java +++ b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java @@ -139,7 +139,7 @@ public interface JPAStreamer { * * * - * @param The element type (type of a class token) + * @param the type of the stream elements * @param streamConfiguration a configuration including an entity class (annotated with {@code @Entity}) * @return a new {@link Stream} over all entities in the underlying data source (e.g database) described by the provided @@ -161,7 +161,7 @@ underlying data source (e.g database) described by the provided * This method is a convenience method equivalent to: *

{@code stream(StreamConfiguration.of(entityClass))}
* - * @param The element type (type of a class token) + * @param the type of the stream elements * @param entityClass to use * @return a new {@link Stream} over all entities in the * underlying data source (e.g database) of the provided type @@ -183,7 +183,7 @@ default Stream stream(final Class entityClass) { * This method is a convenience method equivalent to: *
{@code stream(StreamConfiguration.of(projection.entityClass()).select(projection))}
* - * @param The element type (type of a class token) + * @param the type of the stream elements * @param projection to use * @return a new {@link Stream} over all entities in the * underlying data source (e.g database) of the {@code entity} @@ -228,7 +228,7 @@ default Stream stream(final Projection projection) { * } *

* - * @param The element type (type of a class token) + * @param the type of the stream elements * @param streamConfiguration a configuration including an entity class (annotated with {@code @Entity}) * @return a new {@link StreamSupplier} that can create * {@link Stream}s over all entities in the @@ -245,7 +245,7 @@ default Stream stream(final Projection projection) { * This method is a convenience method equivalent to: *

{@code createStreamer(StreamConfiguration.of(entityClass))}
* - * @param The element type (type of a class token) + * @param the type of the stream elements * @param entityClass to use in generated {@link Stream}s * @return a new {@link StreamSupplier} that can create * {@link Stream}s over all entities in the @@ -267,7 +267,7 @@ default StreamSupplier createStreamSupplier(final Class entityClass) { * This method is a convenience method equivalent to: *
{@code createStreamer(StreamConfiguration.of(entityClass))}
* - * @param The element type (type of a class token) + * @param the type of the stream elements * @param projection to use * @return a new {@link StreamSupplier} that can create * {@link Stream}s over all entities in the diff --git a/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java index 9fcdbcce..dba8ee18 100644 --- a/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java +++ b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java @@ -167,7 +167,7 @@ default StreamConfiguration joining(final Field field) { * any object obtained from instances (or subsequent derived instances) * are immutable or unmodifiable. * - * @param The element type (type of a class token) + * @param the type of the stream elements * @param entityClass a class token for an entity class (annotated with {@code @Entity}) * @return a new JPAStreamerBuilder */ From 980cb2385853447ca60e683190b9800c6d5768ad Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Thu, 22 Jun 2023 11:26:55 +0200 Subject: [PATCH 11/29] Improve javadoc, WIP --- .../jpastreamer/application/JPAStreamer.java | 81 +++++++++++-------- .../application/StreamSupplier.java | 38 ++++++++- .../jpastreamer/application/package-info.java | 31 ++++++- .../StreamConfiguration.java | 4 +- .../streamconfiguration/package-info.java | 54 +++++++++++++ 5 files changed, 171 insertions(+), 37 deletions(-) diff --git a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java index e1aa6845..d67ae3dd 100644 --- a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java +++ b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java @@ -27,13 +27,41 @@ /** * A JPAStreamer is responsible for creating Streams from data sources, * alternatively for creating {@link StreamSupplier}s that can be reused to create Streams of the same Entity source, - * see {@link JPAStreamer#createStreamSupplier(StreamConfiguration)} + * see {@link JPAStreamer#createStreamSupplier(StreamConfiguration)}. Entity sources can be RDBMSes, files or other data sources. *

- * Entity sources can be RDBMSes, files or other data sources. - * - * A JPAStreamer must be thread safe and be able to handle several reading and + * A JPAStreamer must be thread safe and able to handle several reading and * writing threads at the same time. + *

+ * JPAStreamer can be instantiated using different approaches depending on your requirements. + * + *

1. Using the persistence unit name

+ * The persistence unit name can be used to initialize JPAStreamer as follows: + *
{@code
+ * final JPAStreamer jpaStreamer = JPAStreamer.of("sakila");
+ * }
+ * + * Replace "sakila" with the name of your persistence unit as specified in the JPA configuration file. + * JPAStreamer will establish a database connection based on the provided persistence unit name. + * This method creates a new {@code jakarta.persistence.EntityManagerFactory} managed by JPAStreamer. * + *

2. Using an existing EntityManagerFactory

+ * If you already have an existing {@code EntityManagerFactory}, you can initialize JPAStreamer as follows: + *
{@code
+ * final EntityManagerFactory emf = Persistence.createEntityManagerFactory("sakila");
+ * final JPAStreamer jpaStreamer = JPAStreamer.of(emf);
+ * }
+ * + * In this case, JPAStreamer will not manage the lifecycle of the {@code EntityManagerFactory}. + * The provided {@code EntityManagerFactory} will be used to obtain {@code EntityManager}s, which will be managed by JPAStreamer. + * + *

3. Using a Supplier of EntityManagers

+ * Another third option is to provide a Supplier of EntityManagers: + *
{@code
+ * final EntityManagerFactory emf = Persistence.createEntityManagerFactory("sakila");
+ * final JPAStreamer jpaStreamer = JPAStreamer.of(emf::createEntityManager);
+ * }
+ * This approach is useful when you want to supply your own EntityManagers. + * JPAStreamer will not manage the lifecycle of the EntityManagers supplied through the Supplier. * @author Per Minborg * @since 0.1.0 */ @@ -42,41 +70,38 @@ public interface JPAStreamer { /** * Creates and returns a new {@link Stream} over all entities in the * underlying data source (e.g database) according to the provided {@code streamConfiguration}. - * This is the main query API for JPAstreamer. *

* The order in which elements are returned when the stream is eventually * consumed is unspecified. The order may even change from one * invocation to another. Thus, it is an error to assume any particular - * element order even though is might appear, for some stream sources, that - * there is a de-facto order. - *

- * If a deterministic order is required, then make sure to invoke the - * {@link Stream#sorted(java.util.Comparator)} method on the {@link Stream} - * returned. + * element order even though it might appear that there is a de-facto + * order for some stream sources. If a deterministic order is required, + * then make sure to invoke the {@link Stream#sorted(java.util.Comparator)} + * method on the {@link Stream} returned. *

* Mutable elements are not reused within the stream. More formally, there * are no pair of mutable stream elements e1 and - * e2 such that e1 == e2. - *

- * The Stream will never contain null elements. + * e2 such that e1 == e2. The {@link Stream} will never + * contain null elements. *

* This is an inexpensive O(1) operation that will complete in * constant time regardless of the number of entities in the underlying * database. *

- * The returned stream is aware of its own pipeline and will optionally + * The returned {@link Stream} is aware of its own pipeline and will optionally * optimize its own pipeline whenever it encounters a Terminal * Operation so that it will only iterate over a minimum set of - * matching entities. - *

- * When a Terminal Operation is eventually called on the {@link Stream}, - * that execution time of the Terminal Operation will depend on the - * optimized pipeline and the entities in the underlying database. + * matching entities. Thus, the execution time of the Terminal Operation + * will depend on the optimized pipeline and the entities in the underlying database. + * Because the Stream may short-circuit operations in the Stream pipeline, + * methods having side-effects (like {@link Stream#peek(java.util.function.Consumer) + * peek(Consumer)} will potentially be affected by the optimization. *

* The Stream will be automatically * {@link Stream#onClose(java.lang.Runnable) closed} after the Terminal * Operation is completed or if an Exception is thrown during the Terminal - * Operation. + * Operation. Any Terminating Operation may throw an Exception if the + * underlying database throws an Exception (e.g. an SqlException) *

* Some of the Terminal Operations are: *

    @@ -99,15 +124,7 @@ public interface JPAStreamer { *
  • {@link Stream#iterator() iterator()} *
*

- * Any Terminating Operation may throw an Exception if the - * underlying database throws an Exception (e.g. an SqlException) - *

- * Because the Stream may short-circuit operations in the Stream pipeline, - * methods having side-effects (like - * {@link Stream#peek(java.util.function.Consumer) peek(Consumer)} will - * potentially be affected by the optimization. - *

- * Here are some examples of how the stream optimization might work: + * Here are some examples of how the {@link Stream} optimization might work: *

    *
  • *
    {@code stream(Film.class)
    @@ -123,7 +140,7 @@ public interface JPAStreamer {
          * 
    {@code stream(Film.class)
          *   .filter(Film$.name.startsWith("A"))
          *   .count();}
    - *
    {@code -> select count(*) from hares where
    +     * 
    {@code -> select count(*) from Film where
          *   name LIKE 'A%'}
    *

    *

  • @@ -132,7 +149,7 @@ public interface JPAStreamer { * .filter(Film$.rating.equal("G") * .filter(Film$.length.greaterThan(100) * .count();} - *
    {@code -> select count(*) from hares where
    +     * 
    {@code -> select count(*) from Film where
          *          rating ='G'
          *        and
          *          length > 100}
    diff --git a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java index c994db4e..194d221f 100644 --- a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java +++ b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java @@ -14,14 +14,48 @@ import com.speedment.jpastreamer.streamconfiguration.StreamConfiguration; +import java.util.function.Supplier; import java.util.stream.Stream; /** * A Stream Supplier is responsible for creating Streams from a data source. * An entity source can be RDBMSes, files or other data sources. *

    - * A Stream Supplier must be thread safe and be able to handle several reading and - * writing threads at the same time. + * It provides methods to obtain a {@code Stream} instance that corresponds to the configured stream source. + * The {@link StreamSupplier} is responsible for managing the lifecycle of the underlying {@link jakarta.persistence.EntityManager}. + *

    + * A {@code StreamSupplier} is associated with a particular Stream source and cannot be reconfigured. This ensures thread-safety to allows concurrent reads and writes via the same {@code StreamSupplier}. + * + * The {@link StreamSupplier} is typically obtained by calling {@link JPAStreamer#createStreamSupplier(Class)} ()}. + * It allows for the creation of multiple streams using the same {@link jakarta.persistence.EntityManager}, potentially saving resources. + *

    + * To create a {@code Stream}, call the {@code stream()} method, providing the desired entity class as the type parameter. + * The resulting {@code Stream} will correspond to the specified entity class and the configured {@link StreamConfiguration}. + *

    + * The execution of a terminal operation on the {@code Stream} will not close the {@link StreamSupplier} and its associated {@code EntityManager}. + * This allows for repeated calls to {@code stream()} on the same {@link StreamSupplier}, reusing the same {@code EntityManager}. + *

    + * The EntityManager associated with the {@link StreamSupplier} has a first-level cache to optimize query performance. + * By default, database changes performed by another application or made directly on the database may not be detected between calls to {@link StreamSupplier#stream()}. + * To ensure that the cache is cleared between each fetch, use {@link JPAStreamer#stream(StreamConfiguration)} instead. + *

    + * It is important to manage the lifecycle of the {@link StreamSupplier} and close it when it is no longer needed. + * Closing the StreamSupplier will also close the associated EntityManager, releasing any acquired resources. + * The recommended approach is to use a try-with-resources block to automatically close the StreamSupplier: + * + *

    {@code
    + * final JPAStreamer jpaStreamer = JPAStreamer.of("sakila");
    + *
    + * try (final StreamSupplier streamSupplier = jpaStreamer.createStreamSupplier()) {
    + *     // Use the StreamSupplier to create and process streams
    + *     Stream stream = streamSupplier.stream(Film.class);
    + *     // Perform stream operations...
    + * }
    + * }
    + * + *

    + * Note that if {@link JPAStreamer} is instantiated with a {@code Supplier} via {@link JPAStreamer#of(Supplier)}, {@link JPAStreamer} will not close the underlying {@code EntityManager}. + * In that case, the lifecycle of the obtained {@code EntityManagers} is managed by the supplier. * * @author Per Minborg, Julia Gustafsson * @since 3.0.1 diff --git a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/package-info.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/package-info.java index e4e8cae1..9eff75c6 100644 --- a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/package-info.java +++ b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/package-info.java @@ -1,4 +1,33 @@ /** - * Provides interfaces for instantiating JPAStreamer. + * Provides interfaces for instantiating JPAStreamer and building Stream queries. + * + * JPAStreamer uses a custom implementation of the standard {@code java.util.Stream} interface + * to build Stream queries that are automatically optimized to database queries. Here is a typical example: + * + *

    {@code}
    + * final JPAStreamer jpaStreamer = JPAStreamer.of("sakila"); // sakila is the name of the persistence unit 
    + * 
    + * final List>Film< longFilms = jpaStreamer.stream(Film.class)    // FROM 
    + *      .filter(Film$.length.greaterThan(120))                          // WHERE 
    + *      .sorted(Film$.length)                                           // ORDER BY
    + *      .limit(20)                                                      // LIMIT
    + *      .collect(Collectors.toList()); 
    + * }
    + * + * In the example above, a {@code Stream} is created over entities in + * the entity class Film (Film must be described as a standard JPA entity in the application). + * Filter, sorting and limiting operations are applied on the {@code Stream} before the results are collected as a {@code List}. + * The terminal operation {@code collect()} triggers the translation of the Stream pipeline to an optimized query. + * In this case, the pipeline is translated to the following query: + * + *
    {@code}
    + * SELECT (*) 
    + * FROM Film 
    + * WHERE length < 120
    + * ORDER BY length   
    + * LIMIT 20 
    + * 
    + * + * The optimizations are made to ensure that only the resulting entities are materialised in the {@code Stream}. */ package com.speedment.jpastreamer.application; diff --git a/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java index dba8ee18..9dafe47e 100644 --- a/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java +++ b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/StreamConfiguration.java @@ -150,8 +150,8 @@ default StreamConfiguration joining(final Field field) { * by the underlying persistence provider. *

    * - * @param hintName the hint - * @param value + * @param hintName name of the property or hint + * @param value value for the property or hint. * * @return a new StreamConfiguration configured with * the provided {@code hintName} and its {@code value} diff --git a/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/package-info.java b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/package-info.java index bf7d2eb7..63550b17 100644 --- a/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/package-info.java +++ b/jpastreamer.streamconfiguration/src/main/java/com/speedment/jpastreamer/streamconfiguration/package-info.java @@ -1,5 +1,59 @@ /** * Provides interfaces for configuring custom Stream sources. + * + * {@link com.speedment.jpastreamer.streamconfiguration.StreamConfiguration} instances are used to specify certain properties of a {@link java.util.stream.Stream}. + * Instances of {@link com.speedment.jpastreamer.streamconfiguration.StreamConfiguration} are guaranteed to be immutable and therefore inherently thread-safe. + * + *

    API Usage

    + * + * The following example demonstrates the usage of {@link com.speedment.jpastreamer.streamconfiguration.StreamConfiguration} to configure a {@link java.util.stream.Stream} + * for querying films, joining with related entities, and applying filtering operations: + * + *
    {@code
    + * JPAStreamer jpaStreamer = JPAStreamer.of("sakila"); 
    + * 
    + * jpaStreamer.stream(
    + *     StreamConfiguration.of(Film.class)
    + *         .joining(Film$.actors))
    + * )
    + *      .filter(Film$.length.between(100, 120))
    + *      .forEach(System.out::println);
    + * }
    + * + *

    + * In this example a {@link com.speedment.jpastreamer.streamconfiguration.StreamConfiguration} is created using the static {@code of} method, specifying the entity class (`Film` in this case). + * The {@code joining}-method is then used to define the entities to join with (in this case, `actors` and `language`). + * The resulting {@link com.speedment.jpastreamer.streamconfiguration.StreamConfiguration} instance is then used to create a stream using the {@code JPAStreamer.stream()} method. + * A filtering operation is applied on the stream to include films with a length between 100 and 120 and the results are printed. + *

    + * + * This following example demonstrates the usage of {@link com.speedment.jpastreamer.streamconfiguration.StreamConfiguration} to configure a stream + * for querying films and applying sorting and limiting operations: + * + *
    {@code
    + *
    + * JPAStreamer jpaStreamer = JPAStreamer.of("sakila");
    + *
    + * jpaStreamer.stream(
    + *          StreamConfiguration.of(Film.class)
    + *              .selecting(Projection.select(Film$.filmId, Film$.title)
    + * )
    + *     .sorted(Film$.length.reversed())
    + *     .limit(3)
    + *     .forEach(System.out::println);
    + * }
    + * + *

    + * In the example above, a {@link com.speedment.jpastreamer.streamconfiguration.StreamConfiguration} is created using the static {@code of} method, specifying the entity class ({@code Film} in this case). + * The {@code selecting} method is then used to define the projections (selected properties) for the query. + * The resulting {@link com.speedment.jpastreamer.streamconfiguration.StreamConfiguration} instance is then used to create a stream using the {@code JPAStreamer.stream()} method. + * Sorting and limiting operations are applied on the stream before printing the results. + *

    + * + *

    + * Note that {@link com.speedment.jpastreamer.streamconfiguration.StreamConfiguration} instances are immutable, meaning that any modification operations will return a new instance, + * ensuring thread-safety and preventing unintended side effects. + *

    */ package com.speedment.jpastreamer.streamconfiguration; From f809d1cfe93e9f024c6abd4d542ea9a1d2b038ec Mon Sep 17 00:00:00 2001 From: Julia Gustafsson Date: Mon, 26 Jun 2023 14:12:01 +0200 Subject: [PATCH 12/29] Fix javadoc errors --- .../com/speedment/jpastreamer/application/JPAStreamer.java | 6 +++--- .../speedment/jpastreamer/application/StreamSupplier.java | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java index d67ae3dd..013d19c6 100644 --- a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java +++ b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/JPAStreamer.java @@ -34,7 +34,7 @@ *

    * JPAStreamer can be instantiated using different approaches depending on your requirements. * - *

    1. Using the persistence unit name

    + * 1. Using the persistence unit name * The persistence unit name can be used to initialize JPAStreamer as follows: *
    {@code
      * final JPAStreamer jpaStreamer = JPAStreamer.of("sakila");
    @@ -44,7 +44,7 @@
      * JPAStreamer will establish a database connection based on the provided persistence unit name.
      * This method creates a new {@code jakarta.persistence.EntityManagerFactory} managed by JPAStreamer. 
      *
    - * 

    2. Using an existing EntityManagerFactory

    + * 2. Using an existing EntityManagerFactory * If you already have an existing {@code EntityManagerFactory}, you can initialize JPAStreamer as follows: *
    {@code
      * final EntityManagerFactory emf = Persistence.createEntityManagerFactory("sakila");
    @@ -54,7 +54,7 @@
      * In this case, JPAStreamer will not manage the lifecycle of the {@code EntityManagerFactory}. 
      * The provided {@code EntityManagerFactory} will be used to obtain {@code EntityManager}s, which will be managed by JPAStreamer.
      *
    - * 

    3. Using a Supplier of EntityManagers

    + * 3. Using a Supplier of EntityManagers * Another third option is to provide a Supplier of EntityManagers: *
    {@code
      * final EntityManagerFactory emf = Persistence.createEntityManagerFactory("sakila");
    diff --git a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java
    index 194d221f..d41f688a 100644
    --- a/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java
    +++ b/jpastreamer.application/src/main/java/com/speedment/jpastreamer/application/StreamSupplier.java
    @@ -57,6 +57,7 @@
      * Note that if {@link JPAStreamer} is instantiated with a {@code Supplier} via {@link JPAStreamer#of(Supplier)}, {@link JPAStreamer} will not close the underlying {@code EntityManager}.
      * In that case, the lifecycle of the obtained {@code EntityManagers} is managed by the supplier.
      *
    + * @param  the type of the stream elements
      * @author Per Minborg, Julia Gustafsson 
      * @since 3.0.1
      */
    
    From 1e531297f799a7ce4a05224cf49e06f1ff7f28dc Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Wed, 28 Jun 2023 11:03:26 +0200
    Subject: [PATCH 13/29] Optimize count pipelines, fix #34
    
    ---
     .../IntermediateOperationType.java            |   2 +-
     .../jpastreamer/pipeline/trait/HasType.java   |   5 +-
     .../pom.xml                                   |  40 +++-
     .../StandardTerminalOperationOptimizer.java   |  32 ++-
     .../src/main/java/module-info.java            |  10 +-
     ...TerminalOperationOptimizerFactoryTest.java |  16 ++
     .../standard/internal/CountTest.java          | 136 ++++++++++++
     ...tandardTerminalOperationOptimizerTest.java | 121 +++++++++++
     .../standard/internal/model/Film$.java        | 106 ++++++++++
     .../standard/internal/model/Film.java         | 193 ++++++++++++++++++
     10 files changed, 654 insertions(+), 7 deletions(-)
     create mode 100644 jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactoryTest.java
     create mode 100644 jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/CountTest.java
     create mode 100644 jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizerTest.java
     create mode 100644 jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/model/Film$.java
     create mode 100644 jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/model/Film.java
    
    diff --git a/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationType.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationType.java
    index bdca90b0..45fd5881 100644
    --- a/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationType.java
    +++ b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/intermediate/IntermediateOperationType.java
    @@ -34,7 +34,7 @@ public enum IntermediateOperationType {
         MAP_TO(PRESERVES_ORDER, PRESERVES_SIZE, MODIFIES_STREAM_TYPE),
         PEEK(PRESERVES_ORDER, PRESERVES_SIZE, PRESERVES_TYPE, PRESERVES_STREAM_TYPE, MODIFIES_SIDE_EFFECT),
         SKIP(PRESERVES_ORDER, PRESERVES_TYPE, PRESERVES_STREAM_TYPE),
    -    SORTED(MODIFIES_ORDER, PRESERVES_TYPE, PRESERVES_STREAM_TYPE, MODIFIES_SORTED),
    +    SORTED(MODIFIES_ORDER, PRESERVES_SIZE, PRESERVES_TYPE, PRESERVES_STREAM_TYPE, MODIFIES_SORTED),
         BOXED(PRESERVES_ORDER, PRESERVES_SIZE, MODIFIES_STREAM_TYPE),
         AS(PRESERVES_ORDER, PRESERVES_SIZE, MODIFIES_STREAM_TYPE),
         TAKE_WHILE(PRESERVES_ORDER, PRESERVES_TYPE, PRESERVES_STREAM_TYPE),
    diff --git a/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasType.java b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasType.java
    index fb4d3da6..7d87e8ec 100644
    --- a/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasType.java
    +++ b/jpastreamer.pipeline/src/main/java/com/speedment/jpastreamer/pipeline/trait/HasType.java
    @@ -12,15 +12,14 @@
      */
     package com.speedment.jpastreamer.pipeline.trait;
     
    -import com.speedment.jpastreamer.pipeline.terminal.TerminalOperationType;
    -
     public interface HasType> {
     
         /**
          * Returns the type of the operation.
          *
          * @return the type of the operation
    -     * @see TerminalOperationType
    +     * @see com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType  
    +     * @see com.speedment.jpastreamer.pipeline.terminal.TerminalOperationType
          */
         E type();
     
    diff --git a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/pom.xml b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/pom.xml
    index 19952d9f..a487e8f6 100644
    --- a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/pom.xml
    +++ b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/pom.xml
    @@ -39,7 +39,45 @@
                 com.speedment.jpastreamer
                 termopoptimizer
             
    -        
    +        
    +            jakarta.persistence
    +            jakarta.persistence-api
    +            test
    +        
    +        
    +            com.speedment.jpastreamer
    +            field
    +            test
    +        
    +        
    +            com.speedment.jpastreamer
    +            rootfactory
    +            test
    +        
    +        
    +            com.speedment.jpastreamer
    +            pipeline-standard
    +            test
    +        
    +
         
     
    +
    +    
    +        
    +            
    +                
    +                    maven-surefire-plugin
    +                    2.22.2
    +                    
    +                        
    +                            --add-opens jpastreamer.termopoptimizer.standard/com.speedment.jpastreamer.termopoptimizer.standard=ALL-UNNAMED
    +                            --add-opens jpastreamer.termopoptimizer.standard/com.speedment.jpastreamer.termopoptimizer.standard.internal=ALL-UNNAMED
    +                        
    +                    
    +                
    +            
    +        
    +    
    +    
     
    diff --git a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizer.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizer.java
    index 47d1bd89..a6a34751 100644
    --- a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizer.java
    +++ b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizer.java
    @@ -13,8 +13,19 @@
     package com.speedment.jpastreamer.termopoptimizer.standard.internal;
     
     import com.speedment.jpastreamer.pipeline.Pipeline;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperation;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType;
    +import com.speedment.jpastreamer.pipeline.terminal.OrderPreservation;
    +import com.speedment.jpastreamer.pipeline.terminal.TerminalOperationType;
     import com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizer;
     
    +import java.nio.channels.Pipe;
    +import java.util.HashSet;
    +import java.util.LinkedList;
    +import java.util.ListIterator;
    +import java.util.Set;
    +
    +import static com.speedment.jpastreamer.pipeline.intermediate.Statement.PRESERVES_SIZE;
     import static java.util.Objects.requireNonNull;
     
     final class StandardTerminalOperationOptimizer implements TerminalOperationOptimizer {
    @@ -23,8 +34,27 @@ final class StandardTerminalOperationOptimizer implements TerminalOperationOptim
         public  Pipeline optimize(Pipeline pipeline) {
             requireNonNull(pipeline);
             
    -        // For now, just return whatever we get. 
    +        if (pipeline.terminatingOperation().type().equals(TerminalOperationType.COUNT)) {
    +            return countOptimization(pipeline); 
    +        }
    +        return pipeline;
    +    }
    +
    +    private  Pipeline countOptimization(Pipeline pipeline) {
    +        // Starting from the end, the longest string of Intermediate operators that preserve the 
    +        // size property can safely be removed.
    +        final LinkedList> intermediateOperations = pipeline.intermediateOperations();
    +        
    +        for (int i = intermediateOperations.size() - 1; i >= 0; i--) {
    +            final IntermediateOperationType intermediateOperationType = intermediateOperations.get(i).type();
    +            if (intermediateOperationType.statements().contains(PRESERVES_SIZE)) {
    +                intermediateOperations.remove(i); 
    +            } else {
    +                break; 
    +            }
    +        }
             
    +        pipeline.ordered(false);
             return pipeline;
         }
         
    diff --git a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/module-info.java
    index febfdcce..c557bd67 100644
    --- a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/module-info.java
    +++ b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/module-info.java
    @@ -1,3 +1,6 @@
    +import com.speedment.jpastreamer.pipeline.PipelineFactory;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationFactory;
    +import com.speedment.jpastreamer.pipeline.terminal.TerminalOperationFactory;
     import com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizerFactory;
     import com.speedment.jpastreamer.termopoptimizer.standard.StandardTerminalOperationOptimizerFactory;
     
    @@ -15,8 +18,13 @@
      */
     module jpastreamer.termopoptimizer.standard {
         requires transitive jpastreamer.termopoptimizer;
    -
    +    requires jpastreamer.pipeline;
    +    
         exports com.speedment.jpastreamer.termopoptimizer.standard;
     
    +    uses PipelineFactory;
    +    uses TerminalOperationFactory;
    +    uses IntermediateOperationFactory;
    +
         provides TerminalOperationOptimizerFactory with StandardTerminalOperationOptimizerFactory;
     }
    diff --git a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactoryTest.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactoryTest.java
    new file mode 100644
    index 00000000..2710476c
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactoryTest.java
    @@ -0,0 +1,16 @@
    +package com.speedment.jpastreamer.termopoptimizer.standard;
    +
    +import com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizerFactory;
    +import org.junit.jupiter.api.Test;
    +
    +import static org.junit.jupiter.api.Assertions.assertNotNull;
    +
    +public class StandardTerminalOperationOptimizerFactoryTest {
    +
    +    @Test
    +    void get() {
    +        final TerminalOperationOptimizerFactory terminalOperationOptimizerFactory = new StandardTerminalOperationOptimizerFactory();
    +        assertNotNull(terminalOperationOptimizerFactory.get());
    +    }
    +    
    +}
    diff --git a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/CountTest.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/CountTest.java
    new file mode 100644
    index 00000000..f2eaa35c
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/CountTest.java
    @@ -0,0 +1,136 @@
    +package com.speedment.jpastreamer.termopoptimizer.standard.internal;
    +
    +import com.speedment.jpastreamer.pipeline.Pipeline;
    +import com.speedment.jpastreamer.termopoptimizer.standard.internal.model.Film;
    +import com.speedment.jpastreamer.termopoptimizer.standard.internal.model.Film$;
    +
    +import java.util.stream.Stream;
    +
    +public class CountTest extends StandardTerminalOperationOptimizerTest {
    +    
    +    @Override
    +    Class getEntityClass() {
    +        return Film.class;
    +    }
    +
    +    @Override
    +    protected Stream pipelines() {
    +        return Stream.of(
    +                noCountTest(), 
    +                countTest1(),
    +                countTest2(),
    +                countTest3(),
    +                countTest4(),
    +                countTest5()
    +        );
    +    }
    +
    +    private PipelineTestCase noCountTest() {
    +        final Pipeline unoptimized = createPipeline(
    +                tof.acquireFindFirst(),
    +                iof.createLimit(100),
    +                iof.createSorted(Film$.length),
    +                iof.createSorted(Film$.title)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                tof.acquireFindFirst(),
    +                iof.createLimit(100),
    +                iof.createSorted(Film$.length),
    +                iof.createSorted(Film$.title)
    +        );
    +
    +        return new PipelineTestCase<>("No Count Test ", unoptimized, optimized);
    +    }
    +    
    +
    +    private PipelineTestCase countTest1() {
    +        final Pipeline unoptimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100),
    +                iof.createSorted(Film$.length),
    +                iof.createSorted(Film$.title)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100)
    +        );
    +
    +        return new PipelineTestCase<>("Count Test 1", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase countTest2() {
    +        final Pipeline unoptimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100)
    +        );
    +        final Pipeline optimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100)
    +        );
    +
    +        return new PipelineTestCase<>("Count Test 2", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase countTest3() {
    +        final Pipeline unoptimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100),
    +                iof.createSorted(Film$.length),
    +                iof.createFilter(Film$.title.equal("TITANIC"))
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100),
    +                iof.createSorted(Film$.length),
    +                iof.createFilter(Film$.title.equal("TITANIC"))
    +        );
    +
    +        return new PipelineTestCase<>("Count Test 3", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase countTest4() {
    +        final Pipeline unoptimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100),
    +                iof.createFilter(Film$.title.equal("TITANIC")),
    +                iof.createSorted(Film$.length),
    +                iof.createSorted(Film$.title),
    +                iof.createMap(Film$.length.asInt())
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100),
    +                iof.createFilter(Film$.title.equal("TITANIC"))
    +        );
    +
    +        return new PipelineTestCase<>("Count Test 4", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase countTest5() {
    +        final Pipeline unoptimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100),
    +                iof.createFilter(Film$.title.equal("TITANIC")),
    +                iof.createSorted(Film$.length),
    +                iof.createSorted(Film$.title),
    +                iof.createFilter(Film$.length.greaterThan((short) 60)),
    +                iof.createMap(Film$.length.asInt())
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                tof.acquireCount(),
    +                iof.createLimit(100),
    +                iof.createFilter(Film$.title.equal("TITANIC")),
    +                iof.createSorted(Film$.length),
    +                iof.createSorted(Film$.title),
    +                iof.createFilter(Film$.length.greaterThan((short) 60))
    +        );
    +
    +        return new PipelineTestCase<>("Count Test 5", unoptimized, optimized);
    +    }
    +    
    +}
    diff --git a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizerTest.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizerTest.java
    new file mode 100644
    index 00000000..f9c92c09
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/StandardTerminalOperationOptimizerTest.java
    @@ -0,0 +1,121 @@
    +package com.speedment.jpastreamer.termopoptimizer.standard.internal;
    +
    +import com.speedment.jpastreamer.pipeline.Pipeline;
    +import com.speedment.jpastreamer.pipeline.PipelineFactory;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperation;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationFactory;
    +import com.speedment.jpastreamer.pipeline.terminal.TerminalOperation;
    +import com.speedment.jpastreamer.pipeline.terminal.TerminalOperationFactory;
    +import com.speedment.jpastreamer.rootfactory.RootFactory;
    +import com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizer;
    +import org.junit.jupiter.api.DynamicTest;
    +import org.junit.jupiter.api.TestFactory;
    +
    +import java.lang.reflect.Field;
    +import java.util.ArrayDeque;
    +import java.util.List;
    +import java.util.ServiceLoader;
    +import java.util.stream.Stream;
    +
    +import static org.junit.jupiter.api.Assertions.*;
    +import static org.junit.jupiter.api.DynamicTest.dynamicTest;
    +
    +abstract class StandardTerminalOperationOptimizerTest {
    +
    +    protected final PipelineFactory pipelineFactory = RootFactory.getOrThrow(PipelineFactory.class, ServiceLoader::load);
    +    protected final IntermediateOperationFactory iof = RootFactory.getOrThrow(IntermediateOperationFactory.class, ServiceLoader::load);
    +    protected final TerminalOperationFactory tof  = RootFactory.getOrThrow(TerminalOperationFactory.class, ServiceLoader::load);
    +    protected final TerminalOperationOptimizer optimizer = new StandardTerminalOperationOptimizer();
    +
    +    abstract Class getEntityClass();
    +
    +    @TestFactory
    +    Stream optimize() {
    +        return pipelines().map(testCase -> dynamicTest(testCase.getName(), () -> {
    +            this.optimizer.optimize(testCase.getPipeline());
    +
    +            assertTestCase(testCase);
    +        }));
    +    }
    +
    +    protected abstract Stream> pipelines();
    +
    +    protected Pipeline createPipeline(final TerminalOperation terminalOperation, final IntermediateOperation... operations) {
    +        final Pipeline pipeline = pipelineFactory.createPipeline(getEntityClass());
    +
    +        for (IntermediateOperation operation : operations) {
    +            pipeline.intermediateOperations().add(operation);
    +        }
    +
    +        pipeline.terminatingOperation(terminalOperation);
    +
    +        return pipeline;
    +    }
    +
    +    private void assertTestCase(final PipelineTestCase testCase) {
    +        final Pipeline unoptimized = testCase.getPipeline();
    +        final Pipeline optimized = testCase.getExpectedPipeline();
    +
    +        final List> unoptimizedIntermediateOperations = unoptimized.intermediateOperations();
    +        final List> optimizedIntermediateOperations = optimized.intermediateOperations();
    +
    +        assertEquals(optimizedIntermediateOperations.size(), unoptimizedIntermediateOperations.size());
    +
    +        for (int i = 0; i < unoptimizedIntermediateOperations.size(); i++) {
    +            final IntermediateOperation unoptimizedOperation = unoptimizedIntermediateOperations.get(i);
    +            final IntermediateOperation optimizedOperation = optimizedIntermediateOperations.get(i);
    +
    +            assertEquals(optimizedOperation.type(), unoptimizedOperation.type());
    +            assertArguments(optimizedOperation.arguments(), unoptimizedOperation.arguments());
    +        }
    +    }
    +
    +    protected void assertArguments(final Object[] expected, final Object[] actual) {
    +        if (expected != actual) {
    +            assertNotNull(expected);
    +            assertNotNull(actual);
    +            assertEquals(expected.length, actual.length); 
    +
    +            for(int i = 0; i < expected.length; ++i) {
    +                Object expectedElement = expected[i];
    +                Object actualElement = actual[i];
    +                if (expectedElement != actualElement) {
    +                    final Field[] actualDeclaredFields = actualElement.getClass().getDeclaredFields();
    +                    final Field[] expectedDeclaredFields = expectedElement.getClass().getDeclaredFields();
    +                    for (int j = 0; j < expectedDeclaredFields.length; ++j) {
    +                        assertEquals(actualDeclaredFields[i], expectedDeclaredFields[i]);
    +                    }
    +                }
    +            }
    +        }
    +    }
    +
    +    protected static final class PipelineTestCase {
    +
    +        private final String name;
    +        private final Pipeline pipeline;
    +        private final Pipeline expectedPipeline;
    +
    +        protected PipelineTestCase(
    +                final String name,
    +                final Pipeline pipeline,
    +                final Pipeline expectedPipeline
    +        ) {
    +            this.name = name;
    +            this.pipeline = pipeline;
    +            this.expectedPipeline = expectedPipeline;
    +        }
    +
    +        public String getName() {
    +            return name;
    +        }
    +
    +        public Pipeline getPipeline() {
    +            return pipeline;
    +        }
    +
    +        public Pipeline getExpectedPipeline() {
    +            return expectedPipeline;
    +        }
    +    }
    +}
    diff --git a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/model/Film$.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/model/Film$.java
    new file mode 100644
    index 00000000..f67d9798
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/model/Film$.java
    @@ -0,0 +1,106 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
    +package com.speedment.jpastreamer.termopoptimizer.standard.internal.model;
    +
    +import com.speedment.jpastreamer.field.ComparableField;
    +import com.speedment.jpastreamer.field.ShortField;
    +import com.speedment.jpastreamer.field.StringField;
    +
    +import java.math.BigDecimal;
    +
    +public class Film$ {
    +
    +    /**
    +     * This Field corresponds to the {@link Film} field "length".
    +     */
    +    public static final ComparableField length = ComparableField.create(
    +            Film.class,
    +            "length",
    +            Film::getLength,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "filmId".
    +     */
    +    public static final ShortField filmId = ShortField.create(
    +            Film.class,
    +            "filmId",
    +            Film::getFilmId,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "replacementCost".
    +     */
    +    public static final ComparableField replacementCost = ComparableField.create(
    +            Film.class,
    +            "replacementCost",
    +            Film::getReplacementCost,
    +            false
    +    );
    +
    +    /**
    +     * This Field corresponds to the {@link Film} field "rating".
    +     */
    +    public static final StringField rating = StringField.create(
    +            Film.class,
    +            "rating",
    +            Film::getRating,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "title".
    +     */
    +    public static final StringField title = StringField.create(
    +            Film.class,
    +            "title",
    +            Film::getTitle,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "languageId".
    +     */
    +    public static final ShortField languageId = ShortField.create(
    +            Film.class,
    +            "languageId",
    +            Film::getLanguageId,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "description".
    +     */
    +    public static final StringField description = StringField.create(
    +            Film.class,
    +            "description",
    +            Film::getDescription,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "rentalRate".
    +     */
    +    public static final ComparableField rentalRate = ComparableField.create(
    +            Film.class,
    +            "rentalRate",
    +            Film::getRentalRate,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "rentalDuration".
    +     */
    +    public static final ShortField rentalDuration = ShortField.create(
    +            Film.class,
    +            "rentalDuration",
    +            Film::getRentalDuration,
    +            false
    +    );
    +
    +}
    diff --git a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/model/Film.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/model/Film.java
    new file mode 100644
    index 00000000..83ee7241
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/test/java/com/speedment/jpastreamer/termopoptimizer/standard/internal/model/Film.java
    @@ -0,0 +1,193 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
    +package com.speedment.jpastreamer.termopoptimizer.standard.internal.model;
    +
    +import jakarta.persistence.*;
    +
    +import java.math.BigDecimal;
    +
    +@Entity
    +@Table(name = "film", schema = "sakila")
    +public class Film {
    +    public Film() {
    +    }
    +
    +    public Film(short filmId) {
    +        this.filmId = filmId;
    +    }
    +
    +    public Film(String description) {
    +        this.description = description;
    +    }
    +
    +    public Film(short filmId, String title, String description) {
    +        this.filmId = filmId;
    +        this.title = title;
    +        this.description = description;
    +    }
    +
    +    public Film(short filmId, String description) {
    +        this.filmId = filmId;
    +        this.description = description;
    +    }
    +
    +    @Id
    +    @Column(name = "film_id", columnDefinition = "SMALLINT UNSIGNED")
    +    private short filmId;
    +
    +    @Basic
    +    @Column(name = "title", columnDefinition = "VARCHAR(255)")
    +    private String title;
    +
    +    @Basic
    +    @Column(name = "description", columnDefinition = "TEXT")
    +    private String description;
    +    @Basic
    +    @Column(name = "rental_duration", columnDefinition = "YEAR")
    +    private short rentalDuration;
    +    @Basic
    +    @Column(name = "language_id", columnDefinition = "SMALLINT UNSIGNED")
    +    private short languageId;
    +    @Basic
    +    @Column(name = "rental_rate", columnDefinition = "DECIMAL(4,2)")
    +    private BigDecimal rentalRate;
    +
    +    @Basic
    +    @Column(name = "length", columnDefinition = "SMALL UNSIGNED")
    +    private Short length;
    +
    +    @Basic
    +    @Column(name = "rating", columnDefinition = "enum('G','PG','PG-13','R','NC-17')")
    +    private String rating;
    +
    +    @Basic
    +    @Column(name = "replacement_cost")
    +    private BigDecimal replacementCost;
    +    
    +    public short getFilmId() {
    +        return filmId;
    +    }
    +
    +    public void setFilmId(short filmId) {
    +        this.filmId = filmId;
    +    }
    +
    +    public String getTitle() {
    +        return title;
    +    }
    +
    +    public void setTitle(String title) {
    +        this.title = title;
    +    }
    +
    +    public short getLanguageId() {
    +        return languageId;
    +    }
    +
    +    public void setLanguageId(short languageId) {
    +        this.languageId = languageId;
    +    }
    +
    +    public String getDescription() {
    +        return description;
    +    }
    +
    +    public void setDescription(String description) {
    +        this.description = description;
    +    }
    +
    +    public short getRentalDuration() {
    +        return rentalDuration;
    +    }
    +
    +    public void setRentalDuration(short rentalDuration) {
    +        this.rentalDuration = rentalDuration;
    +    }
    +
    +    public String getRating() {
    +        return rating;
    +    }
    +
    +    public void setRating(String rating) {
    +        this.rating = rating;
    +    }
    +
    +    public BigDecimal getRentalRate() {
    +        return rentalRate;
    +    }
    +
    +    public void setRentalRate(BigDecimal rentalRate) {
    +        this.rentalRate = rentalRate;
    +    }
    +
    +    public Short getLength() {
    +        return length;
    +    }
    +
    +    public void setLength(Short length) {
    +        this.length = length;
    +    }
    +
    +    public BigDecimal getReplacementCost() {
    +        return replacementCost;
    +    }
    +
    +    public void setReplacementCost(BigDecimal replacementCost) {
    +        this.replacementCost = replacementCost;
    +    }
    +    
    +    @Override
    +    public boolean equals(Object o) {
    +        if (this == o) return true;
    +        if (o == null || getClass() != o.getClass()) return false;
    +
    +        Film film = (Film) o;
    +
    +        if (filmId != film.filmId) return false;
    +        if (rentalDuration != film.rentalDuration) return false;
    +        if (title != null ? !title.equals(film.title) : film.title != null) return false;
    +        if (description != null ? !description.equals(film.description) : film.description != null) return false;
    +        if (rentalRate != null ? !rentalRate.equals(film.rentalRate) : film.rentalRate != null) return false;
    +        if (length != null ? !length.equals(film.length) : film.length != null) return false;
    +        if (replacementCost != null ? !replacementCost.equals(film.replacementCost) : film.replacementCost != null)
    +            return false;
    +        return true;
    +    }
    +
    +    @Override
    +    public int hashCode() {
    +        int result = (int) filmId;
    +        result = 31 * result + (title != null ? title.hashCode() : 0);
    +        result = 31 * result + (description != null ? description.hashCode() : 0);
    +        result = 31 * result + (int) rentalDuration;
    +        result = 31 * result + (rentalRate != null ? rentalRate.hashCode() : 0);
    +        result = 31 * result + (length != null ? length.hashCode() : 0);
    +        result = 31 * result + (replacementCost != null ? replacementCost.hashCode() : 0);
    +        return result;
    +    }
    +
    +    @Override
    +    public String toString() {
    +        return "Film{" +
    +                "filmId=" + filmId +
    +                ", title='" + title + '\'' +
    +                ", description='" + description + '\'' +
    +                ", rentalDuration=" + rentalDuration +
    +                ", languageId=" + languageId +
    +                ", rentalRate=" + rentalRate +
    +                ", length=" + length +
    +                ", rating='" + rating + '\'' +
    +                ", replacementCost=" + replacementCost +
    +                '}';
    +    }
    +}
    
    From 8923a6650977acd093e7f9f7e2744dc094a618c8 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Thu, 29 Jun 2023 13:07:20 +0200
    Subject: [PATCH 14/29] Add reordering optimizations, fix #35
    
    ---
     .../pom.xml                                   |   8 +
     ...IntermediateOperationOptimizerFactory.java |   8 +-
     .../MoveAnonymousLambdaOperations.java        | 129 ++++++++++
     .../src/main/java/module-info.java            |   1 +
     .../strategy/InternalOptimizerTest.java       | 117 +++++++++
     .../MoveAnonymousLambdaOperationsTest.java    | 224 ++++++++++++++++++
     .../internal/strategy/model/Film$.java        | 115 +++++++++
     .../internal/strategy/model/Film.java         | 210 ++++++++++++++++
     8 files changed, 806 insertions(+), 6 deletions(-)
     create mode 100644 jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
     create mode 100644 jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/InternalOptimizerTest.java
     create mode 100644 jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperationsTest.java
     create mode 100644 jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/model/Film$.java
     create mode 100644 jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/model/Film.java
    
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml
    index 8cd7e81d..29cefe96 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml
    @@ -52,6 +52,14 @@
                 pipeline-standard
                 test
             
    +        
    +            com.speedment.jpastreamer
    +            field
    +        
    +        
    +            com.speedment.jpastreamer
    +            field
    +        
     
         
     
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java
    index 10fe4226..bfa4bf44 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java
    @@ -16,12 +16,7 @@
     
     import com.speedment.jpastreamer.interopoptimizer.IntermediateOperationOptimizer;
     import com.speedment.jpastreamer.interopoptimizer.IntermediateOperationOptimizerFactory;
    -import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.RemoveOrderAffectingOperations;
    -import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.SquashDistinct;
    -import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.SquashFilter;
    -import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.SquashLimit;
    -import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.SquashSkip;
    -import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.SquashSorted;
    +import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.*;
     import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationFactory;
     import com.speedment.jpastreamer.rootfactory.RootFactory;
     
    @@ -53,6 +48,7 @@ public InternalIntermediateOperationOptimizerFactory() {
             registerOptimizer(new SquashFilter<>(intermediateOperationFactory));
             registerOptimizer(new SquashSorted<>(intermediateOperationFactory));
             registerOptimizer(new SquashDistinct(intermediateOperationFactory));
    +        registerOptimizer(new MoveAnonymousLambdaOperations(), Priority.LOWEST);
         }
     
         @Override
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    new file mode 100644
    index 00000000..d3ce31a8
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    @@ -0,0 +1,129 @@
    +package com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy;
    +
    +import com.speedment.jpastreamer.field.Field;
    +import com.speedment.jpastreamer.field.predicate.SpeedmentPredicate;
    +import com.speedment.jpastreamer.interopoptimizer.IntermediateOperationOptimizer;
    +import com.speedment.jpastreamer.pipeline.Pipeline;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperation;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType;
    +
    +import java.util.LinkedList;
    +
    +import static com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType.*;
    +
    +public class MoveAnonymousLambdaOperations implements IntermediateOperationOptimizer {
    +    
    +    @Override
    +    public  Pipeline optimize(Pipeline pipeline) {
    +
    +        LinkedList> intermediateOperations = pipeline.intermediateOperations();
    +        LinkedList> optimizedOperations = new LinkedList<>(); 
    +        for (int i = 0; i < intermediateOperations.size(); i++) {
    +            final IntermediateOperation intermediateOperation = intermediateOperations.get(i); 
    +            if (i == 0 || !movable(intermediateOperation.type())) {
    +                optimizedOperations.add(intermediateOperation); 
    +                continue; 
    +            }
    +            int position = optimizedOperations.size(); // default - end of list 
    +            for(int j = optimizedOperations.size() - 1; j >= 0; j--) {
    +                final IntermediateOperation currentOperation = optimizedOperations.get((j)); 
    +                if(swappable(intermediateOperation.type(), currentOperation.type()) && anonymousLambda(currentOperation)) {
    +                    position = j; 
    +                } else {
    +                    break; 
    +                }
    +            }
    +            if (position < optimizedOperations.size()) {
    +                optimizedOperations.add(position, intermediateOperation);
    +            } else {
    +                optimizedOperations.add(intermediateOperation); 
    +            }
    +        }
    +        
    +        // Update pipeline 
    +        for (int k = 0; k < intermediateOperations.size(); k++) {
    +            final IntermediateOperation intermediateOperation = optimizedOperations.get(k);
    +            intermediateOperations.set(k, intermediateOperation);
    +        }
    +        
    +        return pipeline;
    +    }
    +
    +    public  Pipeline optimize2(Pipeline pipeline) {
    +
    +        LinkedList> intermediateOperations = pipeline.intermediateOperations();
    +
    +        int i = 0;
    +        while(i < intermediateOperations.size() - 1) {
    +            final IntermediateOperation intermediateOperation = intermediateOperations.get(i);
    +            final IntermediateOperationType iot = intermediateOperation.type();
    +            if (movable(iot) && !anonymousLambda(intermediateOperation) ) {
    +                // We only move movable operations with anonymous lambdas
    +                int j = i + 1;
    +                int currentPos = i;
    +                while (j < intermediateOperations.size()) {
    +                    final IntermediateOperation next = intermediateOperations.get(j);
    +                    final IntermediateOperationType iotNext = next.type();
    +                    if (swappable(iot, iotNext)) { // check if current lambda can be swapped with next operation 
    +                        if (iotNext == DISTINCT || anonymousLambda(next)) {
    +                            i = -1;
    +                            currentPos = swapOperations(intermediateOperations, currentPos, j);
    +                        } else {
    +                            j++;
    +                            i++;
    +                            continue;
    +                        }
    +                    } else {
    +                        break;
    +                    }
    +                    j++;
    +                }
    +            }
    +            i++;
    +        }
    +
    +        return pipeline;
    +    }
    +        
    +
    +    private boolean movable(final IntermediateOperationType type) {
    +        return type == FILTER || type == SORTED || type == DISTINCT; 
    +    }
    +
    +    private boolean swappable(final IntermediateOperationType type, final IntermediateOperationType nextType) {
    +        // Anonymous sorts and lambdas can be swapped with a distinct operator to allow the inclusion 
    +        // of the distinct operation in the query.
    +        if (type == FILTER) {
    +            return nextType == FILTER || nextType == SORTED || nextType == DISTINCT;
    +        } else if (type == SORTED) {
    +            return nextType == FILTER || nextType == DISTINCT;
    +        } else if (type == DISTINCT) {
    +            return nextType == FILTER || nextType == SORTED; 
    +        }
    +        return false; 
    +    }
    +    
    +    private int swapOperations(final LinkedList> intermediateOperations,
    +                            final int index1, final int index2)
    +    {
    +        if (0 <= index1 && index1 < intermediateOperations.size() && 0 <= index2 && index2 < intermediateOperations.size()) {
    +            final IntermediateOperation io1 = intermediateOperations.get(index1);
    +            final IntermediateOperation io2 = intermediateOperations.get(index2);
    +
    +            intermediateOperations.set(index1, io2);
    +            intermediateOperations.set(index2, io1);
    +            
    +            return index2; 
    +        }
    +        return -1; 
    +    }
    +
    +    private boolean anonymousLambda(final IntermediateOperation operation) {
    +        if (operation.type() == DISTINCT){
    +            return true;
    +        }
    +        final Object[] arguments = operation.arguments();
    +        return !(arguments != null && (arguments[0] instanceof SpeedmentPredicate || arguments[0] instanceof Field));
    +    }
    +    
    +}
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/module-info.java
    index 499e062b..c45de983 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/module-info.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/module-info.java
    @@ -18,6 +18,7 @@
     module jpastreamer.interopoptimizer.standard {
         requires transitive jpastreamer.interopoptimizer;
         requires jpastreamer.rootfactory;
    +    requires jpastreamer.field;
     
         exports com.speedment.jpastreamer.interopoptimizer.standard;
         
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/InternalOptimizerTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/InternalOptimizerTest.java
    new file mode 100644
    index 00000000..af30bf31
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/InternalOptimizerTest.java
    @@ -0,0 +1,117 @@
    +package com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy;
    +
    +import com.speedment.jpastreamer.pipeline.Pipeline;
    +import com.speedment.jpastreamer.pipeline.PipelineFactory;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperation;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationFactory;
    +import com.speedment.jpastreamer.rootfactory.RootFactory;
    +import org.junit.jupiter.api.DynamicTest;
    +import org.junit.jupiter.api.TestFactory;
    +
    +import java.lang.reflect.Field;
    +import java.util.List;
    +import java.util.ServiceLoader;
    +import java.util.stream.Stream;
    +
    +import static org.junit.jupiter.api.Assertions.*;
    +import static org.junit.jupiter.api.Assertions.assertNotNull;
    +import static org.junit.jupiter.api.DynamicTest.dynamicTest;
    +
    +abstract class InternalOptimizerTest {
    +
    +    protected final PipelineFactory pipelineFactory = RootFactory.getOrThrow(PipelineFactory.class, ServiceLoader::load);
    +    protected final IntermediateOperationFactory iof = RootFactory.getOrThrow(IntermediateOperationFactory.class, ServiceLoader::load);
    +    protected final MoveAnonymousLambdaOperations optimizer = new MoveAnonymousLambdaOperations();
    +
    +    abstract Class getEntityClass();
    +
    +    @TestFactory
    +    Stream modify() {
    +        return pipelines().map(testCase -> dynamicTest(testCase.getName(), () -> {
    +            this.optimizer.optimize(testCase.getPipeline());
    +
    +            assertTestCase(testCase);
    +        }));
    +    }
    +
    +    protected abstract Stream> pipelines();
    +
    +    protected Pipeline createPipeline(final IntermediateOperation... operations) {
    +        final Pipeline pipeline = pipelineFactory.createPipeline(getEntityClass());
    +
    +        for (IntermediateOperation operation : operations) {
    +            pipeline.intermediateOperations().add(operation);
    +        }
    +        
    +        return pipeline;
    +    }
    +
    +    private void assertTestCase(final PipelineTestCase testCase) {
    +        final Pipeline unoptimized = testCase.getPipeline();
    +        final Pipeline optimized = testCase.getExpectedPipeline();
    +
    +        final List> unoptimizedIntermediateOperations = unoptimized.intermediateOperations();
    +        final List> optimizedIntermediateOperations = optimized.intermediateOperations();
    +
    +        assertEquals(optimizedIntermediateOperations.size(), unoptimizedIntermediateOperations.size());
    +
    +        for (int i = 0; i < unoptimizedIntermediateOperations.size(); i++) {
    +            final IntermediateOperation unoptimizedOperation = unoptimizedIntermediateOperations.get(i);
    +            final IntermediateOperation optimizedOperation = optimizedIntermediateOperations.get(i);
    +
    +            assertEquals(optimizedOperation.type(), unoptimizedOperation.type());
    +            assertArguments(optimizedOperation.arguments(), unoptimizedOperation.arguments());
    +        }
    +    }
    +
    +    protected void assertArguments(final Object[] expected, final Object[] actual) {
    +        if (expected != actual) {
    +            assertNotNull(expected);
    +            assertNotNull(actual);
    +            assertEquals(expected.length, actual.length);
    +
    +            for(int i = 0; i < expected.length; ++i) {
    +                Object expectedElement = expected[i];
    +                Object actualElement = actual[i];
    +                if (expectedElement != actualElement) {
    +                    final Field[] actualDeclaredFields = actualElement.getClass().getDeclaredFields();
    +                    final Field[] expectedDeclaredFields = expectedElement.getClass().getDeclaredFields();
    +                    for (int j = 0; j < expectedDeclaredFields.length; ++j) {
    +                        assertEquals(actualDeclaredFields[i], expectedDeclaredFields[i]);
    +                    }
    +                }
    +            }
    +        }
    +    }
    +
    +    protected static final class PipelineTestCase {
    +
    +        private final String name;
    +        private final Pipeline pipeline;
    +        private final Pipeline expectedPipeline;
    +
    +        protected PipelineTestCase(
    +                final String name,
    +                final Pipeline pipeline,
    +                final Pipeline expectedPipeline
    +        ) {
    +            this.name = name;
    +            this.pipeline = pipeline;
    +            this.expectedPipeline = expectedPipeline;
    +        }
    +
    +        public String getName() {
    +            return name;
    +        }
    +
    +        public Pipeline getPipeline() {
    +            return pipeline;
    +        }
    +
    +        public Pipeline getExpectedPipeline() {
    +            return expectedPipeline;
    +        }
    +    }
    +
    +    
    +}
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperationsTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperationsTest.java
    new file mode 100644
    index 00000000..9cc00797
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperationsTest.java
    @@ -0,0 +1,224 @@
    +package com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy;
    +
    +import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.model.Film;
    +import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.model.Film$;
    +import com.speedment.jpastreamer.pipeline.Pipeline;
    +
    +import java.util.Comparator;
    +import java.util.stream.Stream;
    +
    +public class MoveAnonymousLambdaOperationsTest extends InternalOptimizerTest {
    +    
    +    @Override
    +    Class getEntityClass() {
    +        return Film.class;
    +    }
    +
    +    @Override
    +    protected Stream> pipelines() {
    +        return Stream.of(
    +                test1(),
    +                test2(),
    +                test3(),
    +                test4(),
    +                test5(),
    +                test6(),
    +                test7(), 
    +                test8(),
    +                test9(),
    +                test10()
    +        );
    +    }
    +
    +    private PipelineTestCase test1() {
    +        // No optimizations can be made 
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createLimit(1)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.createLimit(1)
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 1", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase test2() {
    +        // Pipeline can be fully optimized 
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createFilter(f -> f.equals("")),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createSorted(Film$.length)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createSorted(Film$.length),
    +                iof.createFilter(f -> f.equals(""))
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 2", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase test3() {
    +        // Pipeline can be fully optimized 
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createFilter(f -> f.equals("a")),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createFilter(f -> f.equals("b")),
    +                iof.createSorted(Film$.length)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createSorted(Film$.length),
    +                iof.createFilter(f -> f.equals("b")),
    +                iof.createFilter(f -> f.equals("a"))
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 3", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase test4() {
    +        // The map blocks the anonymous filter from being moved up the pipeline 
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createFilter(f -> f.equals("a")),
    +                iof.createMap(Film$.length.asInt()),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createFilter(f -> f.equals("b")),
    +                iof.createSorted(Film$.length)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.createFilter(f -> f.equals("a")),
    +                iof.createMap(Film$.length.asInt()),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createSorted(Film$.length),
    +                iof.createFilter(f -> f.equals("b"))
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 4", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase test5() {
    +        // Anonymous lambdas are moved to the end of the pipeline
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createMap(Film$.length.asInt()),
    +                iof.createFilter(f -> f.equals("a")),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createFilter(f -> f.equals("b")),
    +                iof.createSorted(Film$.length)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.createMap(Film$.length.asInt()),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createSorted(Film$.length),
    +                iof.createFilter(f -> f.equals("b")),
    +                iof.createFilter(f -> f.equals("a"))
    +                );
    +
    +        return new PipelineTestCase<>("Reorder Test 5", unoptimized, optimized);
    +    }
    +
    +
    +    private PipelineTestCase test6() {
    +        // Unchanged as sorts cannot be rearranged
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.createSorted(Film$.length)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.createSorted(Film$.length)
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 6", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase test7() {
    +        // The sorts cannot be reordered even though the first sort uses an anonymous lambda 
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createFilter(f -> f.equals("b")),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.acquireDistinct(),
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.createSorted(Film$.length)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.createSorted(Film$.length),
    +                iof.acquireDistinct(),
    +                iof.createFilter(f -> f.equals("b"))
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 7", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase test8() {
    +        // The two sorts cannot be reordered, but both operations can be moved past the distinct() and filter() 
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.acquireDistinct(),
    +                iof.createFilter(Film$.length.greaterThan((short) 120))
    +        );
    +
    +        final Pipeline optimized = createPipeline(                
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.acquireDistinct(),
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.createSorted(Comparator.comparing(Object::toString))
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 8", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase test9() {
    +        // No operations can be moved past the map 
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.acquireDistinct(),
    +                iof.createMap(Film$.length.asInt()),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createLimit(100),
    +                iof.createSkip(10)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.acquireDistinct(),
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.createMap(Film$.length.asInt()),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createLimit(100),
    +                iof.createSkip(10)
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 9", unoptimized, optimized);
    +    }
    +
    +    private PipelineTestCase test10() {
    +        // No operations can be moved past the limit
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.acquireDistinct(),
    +                iof.createLimit(100),
    +                iof.createFilter(Film$.length.greaterThan((short) 120))
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.acquireDistinct(),
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.createLimit(100),
    +                iof.createFilter(Film$.length.greaterThan((short) 120))
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 10", unoptimized, optimized);
    +    }
    +    
    +}
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/model/Film$.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/model/Film$.java
    new file mode 100644
    index 00000000..8938d861
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/model/Film$.java
    @@ -0,0 +1,115 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
    +package com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.model;
    +
    +import com.speedment.jpastreamer.field.ComparableField;
    +import com.speedment.jpastreamer.field.ShortField;
    +import com.speedment.jpastreamer.field.StringField;
    +
    +import java.math.BigDecimal;
    +import java.sql.Timestamp;
    +
    +public class Film$ {
    +
    +    /**
    +     * This Field corresponds to the {@link Film} field "length".
    +     */
    +    public static final ComparableField length = ComparableField.create(
    +            Film.class,
    +            "length",
    +            Film::getLength,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "filmId".
    +     */
    +    public static final ShortField filmId = ShortField.create(
    +            Film.class,
    +            "filmId",
    +            Film::getFilmId,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "replacementCost".
    +     */
    +    public static final ComparableField replacementCost = ComparableField.create(
    +            Film.class,
    +            "replacementCost",
    +            Film::getReplacementCost,
    +            false
    +    );
    +
    +    /**
    +     * This Field corresponds to the {@link Film} field "rating".
    +     */
    +    public static final StringField rating = StringField.create(
    +            Film.class,
    +            "rating",
    +            Film::getRating,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "title".
    +     */
    +    public static final StringField title = StringField.create(
    +            Film.class,
    +            "title",
    +            Film::getTitle,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "languageId".
    +     */
    +    public static final ShortField languageId = ShortField.create(
    +            Film.class,
    +            "languageId",
    +            Film::getLanguageId,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "description".
    +     */
    +    public static final StringField description = StringField.create(
    +            Film.class,
    +            "description",
    +            Film::getDescription,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "rentalRate".
    +     */
    +    public static final ComparableField rentalRate = ComparableField.create(
    +            Film.class,
    +            "rentalRate",
    +            Film::getRentalRate,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "rentalDuration".
    +     */
    +    public static final ShortField rentalDuration = ShortField.create(
    +            Film.class,
    +            "rentalDuration",
    +            Film::getRentalDuration,
    +            false
    +    );
    +    /**
    +     * This Field corresponds to the {@link Film} field "lastUpdate".
    +     */
    +    public static final ComparableField lastUpdate = ComparableField.create(
    +            Film.class,
    +            "lastUpdate",
    +            Film::getLastUpdate,
    +            false
    +    );
    +}
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/model/Film.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/model/Film.java
    new file mode 100644
    index 00000000..77b54bca
    --- /dev/null
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/model/Film.java
    @@ -0,0 +1,210 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
    +package com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.model;
    +
    +import jakarta.persistence.*;
    +
    +import java.math.BigDecimal;
    +import java.sql.Timestamp;
    +
    +@Entity
    +@Table(name = "film", schema = "sakila")
    +public class Film {
    +    public Film() {
    +    }
    +
    +    public Film(short filmId) {
    +        this.filmId = filmId;
    +    }
    +
    +    public Film(String description) {
    +        this.description = description;
    +    }
    +
    +    public Film(short filmId, String title, String description) {
    +        this.filmId = filmId;
    +        this.title = title;
    +        this.description = description;
    +    }
    +
    +    public Film(short filmId, String description) {
    +        this.filmId = filmId;
    +        this.description = description;
    +    }
    +
    +    @Id
    +    @Column(name = "film_id", columnDefinition = "SMALLINT UNSIGNED")
    +    private short filmId;
    +
    +    @Basic
    +    @Column(name = "title", columnDefinition = "VARCHAR(255)")
    +    private String title;
    +
    +    @Basic
    +    @Column(name = "description", columnDefinition = "TEXT")
    +    private String description;
    +    @Basic
    +    @Column(name = "rental_duration", columnDefinition = "YEAR")
    +    private short rentalDuration;
    +    @Basic
    +    @Column(name = "language_id", columnDefinition = "SMALLINT UNSIGNED")
    +    private short languageId;
    +    @Basic
    +    @Column(name = "rental_rate", columnDefinition = "DECIMAL(4,2)")
    +    private BigDecimal rentalRate;
    +
    +    @Basic
    +    @Column(name = "length", columnDefinition = "SMALL UNSIGNED")
    +    private Short length;
    +
    +    @Basic
    +    @Column(name = "rating", columnDefinition = "enum('G','PG','PG-13','R','NC-17')")
    +    private String rating;
    +
    +    @Basic
    +    @Column(name = "replacement_cost")
    +    private BigDecimal replacementCost;
    +
    +    @Basic
    +    @Column(name = "last_update")
    +    private Timestamp lastUpdate;
    +
    +    public short getFilmId() {
    +        return filmId;
    +    }
    +
    +    public void setFilmId(short filmId) {
    +        this.filmId = filmId;
    +    }
    +
    +    public String getTitle() {
    +        return title;
    +    }
    +
    +    public void setTitle(String title) {
    +        this.title = title;
    +    }
    +
    +    public short getLanguageId() {
    +        return languageId;
    +    }
    +
    +    public void setLanguageId(short languageId) {
    +        this.languageId = languageId;
    +    }
    +
    +    public String getDescription() {
    +        return description;
    +    }
    +
    +    public void setDescription(String description) {
    +        this.description = description;
    +    }
    +
    +    public short getRentalDuration() {
    +        return rentalDuration;
    +    }
    +
    +    public void setRentalDuration(short rentalDuration) {
    +        this.rentalDuration = rentalDuration;
    +    }
    +
    +    public String getRating() {
    +        return rating;
    +    }
    +
    +    public void setRating(String rating) {
    +        this.rating = rating;
    +    }
    +
    +    public BigDecimal getRentalRate() {
    +        return rentalRate;
    +    }
    +
    +    public void setRentalRate(BigDecimal rentalRate) {
    +        this.rentalRate = rentalRate;
    +    }
    +
    +    public Short getLength() {
    +        return length;
    +    }
    +
    +    public void setLength(Short length) {
    +        this.length = length;
    +    }
    +
    +    public BigDecimal getReplacementCost() {
    +        return replacementCost;
    +    }
    +
    +    public void setReplacementCost(BigDecimal replacementCost) {
    +        this.replacementCost = replacementCost;
    +    }
    +
    +    public Timestamp getLastUpdate() {
    +        return lastUpdate;
    +    }
    +
    +    public void setLastUpdate(Timestamp lastUpdate) {
    +        this.lastUpdate = lastUpdate;
    +    }
    +
    +    @Override
    +    public boolean equals(Object o) {
    +        if (this == o) return true;
    +        if (o == null || getClass() != o.getClass()) return false;
    +
    +        Film film = (Film) o;
    +
    +        if (filmId != film.filmId) return false;
    +        if (rentalDuration != film.rentalDuration) return false;
    +        if (title != null ? !title.equals(film.title) : film.title != null) return false;
    +        if (description != null ? !description.equals(film.description) : film.description != null) return false;
    +        if (rentalRate != null ? !rentalRate.equals(film.rentalRate) : film.rentalRate != null) return false;
    +        if (length != null ? !length.equals(film.length) : film.length != null) return false;
    +        if (replacementCost != null ? !replacementCost.equals(film.replacementCost) : film.replacementCost != null)
    +            return false;
    +        if (lastUpdate != null ? !lastUpdate.equals(film.lastUpdate) : film.lastUpdate != null) return false;
    +
    +        return true;
    +    }
    +
    +    @Override
    +    public int hashCode() {
    +        int result = (int) filmId;
    +        result = 31 * result + (title != null ? title.hashCode() : 0);
    +        result = 31 * result + (description != null ? description.hashCode() : 0);
    +        result = 31 * result + (int) rentalDuration;
    +        result = 31 * result + (rentalRate != null ? rentalRate.hashCode() : 0);
    +        result = 31 * result + (length != null ? length.hashCode() : 0);
    +        result = 31 * result + (replacementCost != null ? replacementCost.hashCode() : 0);
    +        result = 31 * result + (lastUpdate != null ? lastUpdate.hashCode() : 0);
    +        return result;
    +    }
    +
    +    @Override
    +    public String toString() {
    +        return "Film{" +
    +                "filmId=" + filmId +
    +                ", title='" + title + '\'' +
    +                ", description='" + description + '\'' +
    +                ", rentalDuration=" + rentalDuration +
    +                ", languageId=" + languageId +
    +                ", rentalRate=" + rentalRate +
    +                ", length=" + length +
    +                ", rating='" + rating + '\'' +
    +                ", replacementCost=" + replacementCost +
    +                ", lastUpdate=" + lastUpdate +
    +                '}';
    +    }
    +}
    
    From 2ea1529f26d11e937a9c023267942d9525e92400 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Thu, 29 Jun 2023 13:08:33 +0200
    Subject: [PATCH 15/29] Remove unused algorithm
    
    ---
     .../MoveAnonymousLambdaOperations.java        | 39 +------------------
     1 file changed, 1 insertion(+), 38 deletions(-)
    
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    index d3ce31a8..19f315f8 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    @@ -48,44 +48,7 @@ public  Pipeline optimize(Pipeline pipeline) {
             
             return pipeline;
         }
    -
    -    public  Pipeline optimize2(Pipeline pipeline) {
    -
    -        LinkedList> intermediateOperations = pipeline.intermediateOperations();
    -
    -        int i = 0;
    -        while(i < intermediateOperations.size() - 1) {
    -            final IntermediateOperation intermediateOperation = intermediateOperations.get(i);
    -            final IntermediateOperationType iot = intermediateOperation.type();
    -            if (movable(iot) && !anonymousLambda(intermediateOperation) ) {
    -                // We only move movable operations with anonymous lambdas
    -                int j = i + 1;
    -                int currentPos = i;
    -                while (j < intermediateOperations.size()) {
    -                    final IntermediateOperation next = intermediateOperations.get(j);
    -                    final IntermediateOperationType iotNext = next.type();
    -                    if (swappable(iot, iotNext)) { // check if current lambda can be swapped with next operation 
    -                        if (iotNext == DISTINCT || anonymousLambda(next)) {
    -                            i = -1;
    -                            currentPos = swapOperations(intermediateOperations, currentPos, j);
    -                        } else {
    -                            j++;
    -                            i++;
    -                            continue;
    -                        }
    -                    } else {
    -                        break;
    -                    }
    -                    j++;
    -                }
    -            }
    -            i++;
    -        }
    -
    -        return pipeline;
    -    }
    -        
    -
    +    
         private boolean movable(final IntermediateOperationType type) {
             return type == FILTER || type == SORTED || type == DISTINCT; 
         }
    
    From cf6e8b0a6cf82707b0873afe82c0734a95db9ce5 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Thu, 29 Jun 2023 13:09:07 +0200
    Subject: [PATCH 16/29] Remove unused swapper
    
    ---
     .../strategy/MoveAnonymousLambdaOperations.java   | 15 ---------------
     1 file changed, 15 deletions(-)
    
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    index 19f315f8..1583cd4b 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    @@ -66,21 +66,6 @@ private boolean swappable(final IntermediateOperationType type, final Intermedia
             return false; 
         }
         
    -    private int swapOperations(final LinkedList> intermediateOperations,
    -                            final int index1, final int index2)
    -    {
    -        if (0 <= index1 && index1 < intermediateOperations.size() && 0 <= index2 && index2 < intermediateOperations.size()) {
    -            final IntermediateOperation io1 = intermediateOperations.get(index1);
    -            final IntermediateOperation io2 = intermediateOperations.get(index2);
    -
    -            intermediateOperations.set(index1, io2);
    -            intermediateOperations.set(index2, io1);
    -            
    -            return index2; 
    -        }
    -        return -1; 
    -    }
    -
         private boolean anonymousLambda(final IntermediateOperation operation) {
             if (operation.type() == DISTINCT){
                 return true;
    
    From ba5669897390d4763829230e3869fea92a252646 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Thu, 29 Jun 2023 13:10:57 +0200
    Subject: [PATCH 17/29] Remove duplicate dependency
    
    ---
     .../jpastreamer.interopoptimizer.standard/pom.xml            | 5 +----
     1 file changed, 1 insertion(+), 4 deletions(-)
    
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml
    index 29cefe96..7ed71550 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/pom.xml
    @@ -52,10 +52,7 @@
                 pipeline-standard
                 test
             
    -        
    -            com.speedment.jpastreamer
    -            field
    -        
    +        
             
                 com.speedment.jpastreamer
                 field
    
    From eaca22b599e18241ca7ce25f863b236b8bcfc7f0 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Thu, 29 Jun 2023 16:11:02 +0200
    Subject: [PATCH 18/29] Update Github actions version
    
    ---
     .github/workflows/maven.yml | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
    index 00a368be..c493ff63 100644
    --- a/.github/workflows/maven.yml
    +++ b/.github/workflows/maven.yml
    @@ -35,8 +35,9 @@ jobs:
         steps:
         - uses: actions/checkout@v3.5.3
         - name: Set up Java
    -      uses: actions/setup-java@v1
    +      uses: actions/setup-java@v3.5.1
           with:
    +        distribution: 'zulu' 
             java-version: ${{ matrix.java }}
         - name: Build with Maven
           run: mvn -B package --file pom.xml -Prelease
    
    From 6cc706a789da173f419103bde96222d2c180debe Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Thu, 29 Jun 2023 16:55:41 +0200
    Subject: [PATCH 19/29] Add module for integration tests
    
    ---
     integration-tests/README.adoc                 |  20 ++
     integration-tests/pom.xml                     |  83 +++++++
     integration-tests/src/main/java/Hello.java    |   7 +
     .../integration/test/CountTest.java           |  26 ++
     .../integration/test/model/Actor.java         |  98 ++++++++
     .../integration/test/model/Film.java          | 235 ++++++++++++++++++
     .../integration/test/model/Language.java      |  86 +++++++
     .../integration/test/model/groups/GroupA.java |   4 +
     .../integration/test/model/groups/GroupB.java |   3 +
     .../test/resources/META-INF/persistence.xml   |  24 ++
     10 files changed, 586 insertions(+)
     create mode 100644 integration-tests/README.adoc
     create mode 100644 integration-tests/pom.xml
     create mode 100644 integration-tests/src/main/java/Hello.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Actor.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Film.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Language.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupA.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupB.java
     create mode 100644 integration-tests/src/test/resources/META-INF/persistence.xml
    
    diff --git a/integration-tests/README.adoc b/integration-tests/README.adoc
    new file mode 100644
    index 00000000..52c74eb8
    --- /dev/null
    +++ b/integration-tests/README.adoc
    @@ -0,0 +1,20 @@
    += Integration Test
    +Julia Gustafsson
    +:toc: macro
    +
    +The tests assume that you are running the Sakila database as a Docker instance on port 3306. See simple installation instructions below.
    +
    +== Sakila Database 
    +The tests makes use of the link:https://dev.mysql.com/doc/sakila/en/[MySQL Sakila database]. It can either be downloaded from Oracle as described link:https://dev.mysql.com/doc/sakila/en/sakila-installation.html[here] or used directly via a link:https://hub.docker.com/r/restsql/mysql-sakila/[Sakila Docker instance] by issuing the following commands:
    +
    +[shell script]
    +----
    +$ docker pull restsql/mysql-sakila
    +----
    +
    +[shell script]
    +----
    +$ docker run -d --publish 3306:3306 --name mysqld restsql/mysql-sakila
    +----
    +
    +NOTE: This Docker image does not support ARM64 architecture, thus if you are running on e.g. an M1 Mac, you need to emulate an Intel image by adding the flag `--platform linux/amd64` after `docker run` in the above command. This may not always work ideally, learn more about why at the link:https://docs.docker.com/desktop/mac/apple-silicon/#known-issues[Docker webpage].
    diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
    new file mode 100644
    index 00000000..9be5a510
    --- /dev/null
    +++ b/integration-tests/pom.xml
    @@ -0,0 +1,83 @@
    +
    +    
    +        jpastreamer-parent
    +        com.speedment.jpastreamer
    +        3.0.3-SNAPSHOT
    +    
    +    4.0.0
    +
    +    integration-tests
    +
    +    Maven
    +    http://maven.apache.org/
    +    2001
    +
    +    
    +        
    +            website
    +            scp://webhost.company.com/www/website
    +        
    +    
    +
    +    
    +        UTF-8
    +    
    +
    +    
    +
    +        
    +            org.hibernate
    +            hibernate-core
    +            6.0.2.Final
    +            test
    +        
    +
    +        
    +            org.hibernate
    +            hibernate-validator
    +            6.0.13.Final
    +            test
    +        
    +
    +        
    +            org.hibernate.javax.persistence
    +            hibernate-jpa-2.1-api
    +            1.0.2
    +            test
    +        
    +
    +        
    +            net.bytebuddy
    +            byte-buddy
    +            1.12.12
    +            test
    +        
    +
    +        
    +            mysql
    +            mysql-connector-java
    +            8.0.30
    +            test
    +        
    +        
    +        
    +            com.speedment.jpastreamer
    +            jpastreamer-core
    +            3.0.3-SNAPSHOT
    +            test
    +        
    +
    +    
    +    
    +    
    +        
    +            
    +                maven-site-plugin
    +                
    +                    en,fr
    +                
    +            
    +        
    +    
    +
    diff --git a/integration-tests/src/main/java/Hello.java b/integration-tests/src/main/java/Hello.java
    new file mode 100644
    index 00000000..ab56e8ee
    --- /dev/null
    +++ b/integration-tests/src/main/java/Hello.java
    @@ -0,0 +1,7 @@
    +public class Hello {
    +
    +    public static void main(String[] args) {
    +        System.out.println("A Module Full of Integration Tests!");
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java
    new file mode 100644
    index 00000000..c69e98af
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java
    @@ -0,0 +1,26 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.application.JPAStreamer;
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import org.junit.jupiter.api.BeforeAll;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.List;
    +import java.util.stream.Collectors;
    +
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
    +class CountTest {
    +    
    +    final private JPAStreamer jpaStreamer = JPAStreamer.of("sakila"); 
    +    
    +    @Test
    +    void countTest() {
    +        final List collect = jpaStreamer.stream(Film.class).collect(Collectors.toList());
    +        final long expected = collect.stream().filter(f -> f.getTitle().startsWith("A")).count(); 
    +        final long actual = jpaStreamer.stream(Film.class).filter(Film$.title.startsWith("A")).count(); 
    +        assertEquals(expected, actual);
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Actor.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Actor.java
    new file mode 100644
    index 00000000..7120af01
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Actor.java
    @@ -0,0 +1,98 @@
    +package com.speedment.jpastreamer.integration.test.model;
    +
    +import jakarta.persistence.*;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +import java.util.Objects;
    +
    +@Entity
    +@Table(name = "actor", schema = "sakila")
    +public class Actor {
    +
    +    public Actor() {}
    +
    +    public Actor(Integer actorId) {
    +        this.actorId = actorId;
    +    }
    +
    +    public Actor(Integer actorId, String firstName) {
    +        this.actorId = actorId;
    +        this.firstName = firstName;
    +    }
    +
    +    @Id
    +    @GeneratedValue(strategy = GenerationType.IDENTITY)
    +    @Column(name = "actor_id", nullable = false, updatable = false, columnDefinition = "smallint(5)")
    +    private Integer actorId;
    +
    +    @Column(name = "first_name", nullable = false, columnDefinition = "varchar(45)")
    +    private String firstName;
    +
    +    @Column(name = "last_name", nullable = false, columnDefinition = "varchar(45)")
    +    private String lastName;
    +
    +    @ManyToMany(mappedBy = "actors")
    +    private List films = new ArrayList<>();
    +
    +    public Integer getActorId() {
    +        return actorId;
    +    }
    +
    +    public void setActorId(Integer actorId) {
    +        this.actorId = actorId;
    +    }
    +
    +    public List getFilms() {
    +        return films;
    +    }
    +
    +    public void setFilms(List films) {
    +        this.films = films;
    +    }
    +
    +    public String getFirstName() {
    +        return firstName;
    +    }
    +
    +    public void setFirstName(String firstName) {
    +        this.firstName = firstName;
    +    }
    +
    +    public String getLastName() {
    +        return lastName;
    +    }
    +
    +    public void setLastName(String lastName) {
    +        this.lastName = lastName;
    +    }
    +
    +    @Override
    +    public String toString() {
    +        return "Actor{" +
    +                "actorId=" + actorId +
    +                ", firstName='" + firstName + '\'' +
    +                ", lastName='" + lastName + '\'' +
    +                '}';
    +    }
    +
    +    @Override
    +    public boolean equals(Object o) {
    +        if (this == o) return true;
    +        if (o == null || getClass() != o.getClass()) return false;
    +
    +        Actor actor = (Actor) o;
    +
    +        if (!Objects.equals(actorId, actor.actorId)) return false;
    +        if (!Objects.equals(firstName, actor.firstName)) return false;
    +        return Objects.equals(lastName, actor.lastName);
    +    }
    +
    +    @Override
    +    public int hashCode() {
    +        int result = actorId != null ? actorId.hashCode() : 0;
    +        result = 31 * result + (firstName != null ? firstName.hashCode() : 0);
    +        result = 31 * result + (lastName != null ? lastName.hashCode() : 0);
    +        return result;
    +    }
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Film.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Film.java
    new file mode 100644
    index 00000000..9a1b40e1
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Film.java
    @@ -0,0 +1,235 @@
    +package com.speedment.jpastreamer.integration.test.model;
    +
    +import com.speedment.jpastreamer.integration.test.model.groups.GroupA;
    +import com.speedment.jpastreamer.integration.test.model.groups.GroupB;
    +import jakarta.persistence.*;
    +
    +import javax.validation.constraints.NotNull;
    +import javax.validation.constraints.Size;
    +import java.io.Serializable;
    +import java.time.LocalDateTime;
    +import java.util.ArrayList;
    +import java.util.List;
    +import java.util.Objects;
    +
    +@Entity
    +@Table(name = "film", schema = "sakila")
    +public class Film implements Serializable {
    +
    +    public Film() {}
    +
    +    public Film(int filmId) {
    +        this.filmId = filmId;
    +    }
    +
    +    public Film(Integer filmId, String title) {
    +        this.filmId = filmId;
    +        this.title = title;
    +    }
    +
    +    @Id
    +    @GeneratedValue(strategy = GenerationType.IDENTITY)
    +    @Column(name = "film_id", nullable = false, updatable = false, columnDefinition = "smallint(5)")
    +    private Integer filmId;
    +
    +    @Column(name = "title", nullable = false, columnDefinition = "varchar(255)")
    +    //@NotEmpty(message = "Title may not be empty", groups = {GroupA.class, GroupB.class})
    +    @NotNull(message = "Title may not be null", groups = {GroupA.class, GroupB.class})
    +    private String title;
    +
    +    @Column(name = "description", nullable = false, columnDefinition = "text")
    +    private String description;
    +
    +    @ManyToOne
    +    @JoinColumn(name="language_id", nullable = false, updatable = false, insertable = false)
    +    private Language language;
    +
    +/*    @Column(name="language_id", nullable = false)
    +    private Language originalLanguageId;*/
    +
    +    @ManyToMany(cascade = { CascadeType.ALL })
    +    @JoinTable(
    +            name = "film_actor",
    +            joinColumns = { @JoinColumn(name = "film_id") },
    +            inverseJoinColumns = { @JoinColumn(name = "actor_id") }
    +    )
    +    private List actors = new ArrayList<>();
    +
    +    @Column(name = "rental_duration", columnDefinition = "smallint(5)")
    +    private Integer rentalDuration;
    +
    +    @Column(name = "rental_rate", columnDefinition = "decimal(4,2)")
    +    private Float rentalRate;
    +
    +    @Column(name = "length", columnDefinition = "smallint(5)")
    +    //@NotEmpty(message = "Length may not be empty", groups = {GroupA.class, GroupB.class})
    +    //@NotEmpty(message = "Length may not be empty", groups = {GroupA.class})
    +    //@NotNull(message = "Length may not be null", groups = {GroupA.class, GroupB.class})
    +    @Size(min = 1, max = 300, message = "Length must be between 1 and 300 minutes characters long")
    +    private Integer length;
    +
    +    @Column(name = "replacement_cost", columnDefinition = "decimal(5,2)")
    +    private Float replacementCost;
    +
    +    @Column(name = "rating", columnDefinition = "enum('G','PG','PG-13','R','NC-17')")
    +    private String rating;
    +
    +    @Column(name = "special_features", columnDefinition = "set('Trailers','Commentaries','Deleted Scenes','Behind the Scenes')")
    +    private String specialFeatures; // Should be Set
    +
    +    @Column(name = "last_update", nullable = false, columnDefinition = "timestamp")
    +    private LocalDateTime lastUpdate;
    +
    +    public Integer getFilmId() {
    +        return filmId;
    +    }
    +
    +    public void setFilmId(Integer filmId) {
    +        this.filmId = filmId;
    +    }
    +
    +    public String getTitle() {
    +        return title;
    +    }
    +
    +    public void setTitle(String title) {
    +        this.title = title;
    +    }
    +
    +    public String getDescription() {
    +        return description;
    +    }
    +
    +    public void setDescription(String description) {
    +        this.description = description;
    +    }
    +
    +    public Language getLanguage() {
    +        return language;
    +    }
    +
    +    public void setOriginalLanguage(Language language) {
    +        this.language = language;
    +    }
    +
    +    public List getActors() {
    +        return actors;
    +    }
    +
    +    public void setActors(List actors) {
    +        this.actors = actors;
    +    }
    +
    +    public Integer getRentalDuration() {
    +        return rentalDuration;
    +    }
    +
    +    public void setRentalDuration(Integer rentalDuration) {
    +        this.rentalDuration = rentalDuration;
    +    }
    +
    +    public Float getRentalRate() {
    +        return rentalRate;
    +    }
    +
    +    public void setRentalRate(Float rentalRate) {
    +        this.rentalRate = rentalRate;
    +    }
    +
    +    public Integer getLength() {
    +        return length;
    +    }
    +
    +    public void setLength(Integer length) {
    +        this.length = length;
    +    }
    +
    +    public Float getReplacementCost() {
    +        return replacementCost;
    +    }
    +
    +    public void setReplacementCost(Float replacementCost) {
    +        this.replacementCost = replacementCost;
    +    }
    +
    +    public String getRating() {
    +        return rating;
    +    }
    +
    +    public void setRating(String rating) {
    +        this.rating = rating;
    +    }
    +
    +    public String getSpecialFeatures() {
    +        return specialFeatures;
    +    }
    +
    +    public void setSpecialFeatures(String specialFeatures) {
    +        this.specialFeatures = specialFeatures;
    +    }
    +
    +    public LocalDateTime getLastUpdate() {
    +        return lastUpdate;
    +    }
    +
    +    public void setLastUpdate(LocalDateTime lastUpdate) {
    +        this.lastUpdate = lastUpdate;
    +    }
    +
    +    @Override
    +    public String toString() {
    +        return "Film{" +
    +                "filmId=" + filmId +
    +                ", title='" + title + '\'' +
    +                ", description='" + description + '\'' +
    +                ", language=" + language +
    +                ", actors=" + actors +
    +                ", rentalDuration=" + rentalDuration +
    +                ", rentalRate=" + rentalRate +
    +                ", length=" + length +
    +                ", replacementCost=" + replacementCost +
    +                ", rating='" + rating + '\'' +
    +                ", specialFeatures='" + specialFeatures + '\'' +
    +                ", lastUpdate=" + lastUpdate +
    +                '}';
    +    }
    +
    +    @Override
    +    public boolean equals(Object o) {
    +        if (this == o) return true;
    +        if (o == null || getClass() != o.getClass()) return false;
    +
    +        Film film = (Film) o;
    +
    +        if (!Objects.equals(filmId, film.filmId)) return false;
    +        if (!Objects.equals(title, film.title)) return false;
    +        if (!Objects.equals(description, film.description)) return false;
    +        //if (originalLanguageId != null ? !originalLanguageId.equals(film.originalLanguageId) : film.originalLanguageId != null) return false;
    +        if (!Objects.equals(rentalDuration, film.rentalDuration))
    +            return false;
    +        if (!Objects.equals(rentalRate, film.rentalRate)) return false;
    +        if (!Objects.equals(length, film.length)) return false;
    +        if (!Objects.equals(replacementCost, film.replacementCost))
    +            return false;
    +        if (!Objects.equals(rating, film.rating)) return false;
    +        if (!Objects.equals(specialFeatures, film.specialFeatures))
    +            return false;
    +        return Objects.equals(lastUpdate, film.lastUpdate);
    +    }
    +
    +    @Override
    +    public int hashCode() {
    +        int result = filmId != null ? filmId.hashCode() : 0;
    +        result = 31 * result + (title != null ? title.hashCode() : 0);
    +        result = 31 * result + (description != null ? description.hashCode() : 0);
    +        //result = 31 * result + (originalLanguageId != null ? originalLanguageId.hashCode() : 0);
    +        result = 31 * result + (rentalDuration != null ? rentalDuration.hashCode() : 0);
    +        result = 31 * result + (rentalRate != null ? rentalRate.hashCode() : 0);
    +        result = 31 * result + (length != null ? length.hashCode() : 0);
    +        result = 31 * result + (replacementCost != null ? replacementCost.hashCode() : 0);
    +        result = 31 * result + (rating != null ? rating.hashCode() : 0);
    +        result = 31 * result + (specialFeatures != null ? specialFeatures.hashCode() : 0);
    +        result = 31 * result + (lastUpdate != null ? lastUpdate.hashCode() : 0);
    +        return result;
    +    }
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Language.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Language.java
    new file mode 100644
    index 00000000..1ac0becd
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Language.java
    @@ -0,0 +1,86 @@
    +package com.speedment.jpastreamer.integration.test.model;
    +
    +
    +import jakarta.persistence.*;
    +
    +import java.io.Serializable;
    +import java.util.Objects;
    +import java.util.Set;
    +
    +@Entity
    +@Table(name = "language", schema = "sakila")
    +public class Language implements Serializable {
    +
    +    public Language() {}
    +
    +    public Language(Integer languageId) {
    +        this.languageId = languageId;
    +    }
    +
    +    public Language(Integer languageId, String name) {
    +        this.languageId = languageId;
    +        this.name = name;
    +    }
    +
    +    @Id
    +    @GeneratedValue(strategy = GenerationType.IDENTITY)
    +    @Column(name = "language_id", nullable = false, updatable = false, columnDefinition = "tinyint(3)")
    +    private Integer languageId;
    +
    +    @Column(name = "name", nullable = false, columnDefinition = "char(20)")
    +    private String name;
    +
    +    @OneToMany(mappedBy = "language")
    +    private Set films;
    +
    +    @ManyToMany
    +    public Integer getLanguageId() {
    +        return languageId;
    +    }
    +
    +    public void setLanguageId(Integer language_id) {
    +        this.languageId = language_id;
    +    }
    +
    +    public String getName() {
    +        return name;
    +    }
    +
    +    public void setName(String name) {
    +        this.name = name;
    +    }
    +
    +    public Set getFilms() {
    +        return films;
    +    }
    +
    +    public void setFilms(Set films) {
    +        this.films = films;
    +    }
    +
    +    @Override
    +    public String toString() {
    +        return "Language{" +
    +                "languageId=" + languageId +
    +                ", name='" + name + '\'' +
    +                '}';
    +    }
    +
    +    @Override
    +    public boolean equals(Object o) {
    +        if (this == o) return true;
    +        if (o == null || getClass() != o.getClass()) return false;
    +
    +        Language language = (Language) o;
    +
    +        if (!Objects.equals(languageId, language.languageId)) return false;
    +        return Objects.equals(name, language.name);
    +    }
    +
    +    @Override
    +    public int hashCode() {
    +        int result = languageId != null ? languageId.hashCode() : 0;
    +        result = 31 * result + (name != null ? name.hashCode() : 0);
    +        return result;
    +    }
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupA.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupA.java
    new file mode 100644
    index 00000000..50ded61a
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupA.java
    @@ -0,0 +1,4 @@
    +package com.speedment.jpastreamer.integration.test.model.groups;
    +
    +public interface GroupA {
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupB.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupB.java
    new file mode 100644
    index 00000000..bc25413b
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupB.java
    @@ -0,0 +1,3 @@
    +package com.speedment.jpastreamer.integration.test.model.groups;
    +public interface GroupB {
    +}
    diff --git a/integration-tests/src/test/resources/META-INF/persistence.xml b/integration-tests/src/test/resources/META-INF/persistence.xml
    new file mode 100644
    index 00000000..97bce3bb
    --- /dev/null
    +++ b/integration-tests/src/test/resources/META-INF/persistence.xml
    @@ -0,0 +1,24 @@
    +
    +
    +
    +    
    +        Test
    +        org.hibernate.jpa.HibernatePersistenceProvider
    +        
    +            
    +            
    +            
    +            
    +            
    +            
    +            
    +            
    +            
    +
    +        
    +    
    +
    
    From 9523193c72a351dc7643314d4368a5ec0e9ba227 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Fri, 30 Jun 2023 13:01:58 +0200
    Subject: [PATCH 20/29] Fix illegal reuse of restrictions for count-queries,
     fix #352
    
    ---
     .../standard/internal/StandardRenderer.java   | 50 +++++++++++++++----
     1 file changed, 39 insertions(+), 11 deletions(-)
    
    diff --git a/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java
    index 707121d8..3db45cf2 100644
    --- a/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java
    +++ b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java
    @@ -12,16 +12,20 @@
      */
     package com.speedment.jpastreamer.renderer.standard.internal;
     
    +import static com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType.FILTER;
     import static java.util.Objects.requireNonNull;
     
     import com.speedment.jpastreamer.criteria.Criteria;
     import com.speedment.jpastreamer.criteria.CriteriaFactory;
    +import com.speedment.jpastreamer.criteria.PredicateFactory;
    +import com.speedment.jpastreamer.field.predicate.SpeedmentPredicate;
     import com.speedment.jpastreamer.interopoptimizer.IntermediateOperationOptimizerFactory;
     import com.speedment.jpastreamer.merger.CriteriaMerger;
     import com.speedment.jpastreamer.merger.MergerFactory;
     import com.speedment.jpastreamer.merger.QueryMerger;
     import com.speedment.jpastreamer.pipeline.Pipeline;
     import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperation;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType;
     import com.speedment.jpastreamer.pipeline.terminal.TerminalOperationType;
     import com.speedment.jpastreamer.projection.Projection;
     import com.speedment.jpastreamer.renderer.RenderResult;
    @@ -33,20 +37,22 @@
     import jakarta.persistence.EntityManager;
     import jakarta.persistence.EntityManagerFactory;
     import jakarta.persistence.TypedQuery;
    -import jakarta.persistence.criteria.CompoundSelection;
    -import jakarta.persistence.criteria.CriteriaQuery;
    -import jakarta.persistence.criteria.Path;
    +import jakarta.persistence.criteria.*;
     
    +import java.util.LinkedList;
    +import java.util.List;
     import java.util.Optional;
     import java.util.ServiceLoader;
     import java.util.function.Supplier;
     import java.util.stream.BaseStream;
    +import java.util.stream.Collectors;
     import java.util.stream.Stream;
     
     final class StandardRenderer implements Renderer {
     
         private final EntityManager entityManager;
         private final CriteriaFactory criteriaFactory;
    +    private final PredicateFactory predicateFactory;
     
         private final IntermediateOperationOptimizerFactory intermediateOperationOptimizerFactory;
         private final TerminalOperationModifierFactory terminalOperationModifierFactory;
    @@ -60,6 +66,7 @@ final class StandardRenderer implements Renderer {
         StandardRenderer(final Supplier entityManagerSupplier) {
             this.entityManager = requireNonNull(entityManagerSupplier).get();
             this.criteriaFactory = RootFactory.getOrThrow(CriteriaFactory.class, ServiceLoader::load);
    +        this.predicateFactory = RootFactory.getOrThrow(PredicateFactory.class, ServiceLoader::load); 
             this.intermediateOperationOptimizerFactory = RootFactory.getOrThrow(IntermediateOperationOptimizerFactory.class, ServiceLoader::load);
             this.terminalOperationModifierFactory = RootFactory.getOrThrow(TerminalOperationModifierFactory.class, ServiceLoader::load);
             this.mergerFactory = RootFactory.getOrThrow(MergerFactory.class, ServiceLoader::load);
    @@ -68,6 +75,7 @@ final class StandardRenderer implements Renderer {
         StandardRenderer(final EntityManager entityManager) {
             this.entityManager = entityManager; 
             this.criteriaFactory = RootFactory.getOrThrow(CriteriaFactory.class, ServiceLoader::load);
    +        this.predicateFactory = RootFactory.getOrThrow(PredicateFactory.class, ServiceLoader::load);
             this.intermediateOperationOptimizerFactory = RootFactory.getOrThrow(IntermediateOperationOptimizerFactory.class, ServiceLoader::load);
             this.terminalOperationModifierFactory = RootFactory.getOrThrow(TerminalOperationModifierFactory.class, ServiceLoader::load);
             this.mergerFactory = RootFactory.getOrThrow(MergerFactory.class, ServiceLoader::load);
    @@ -102,10 +110,13 @@ public > RenderResult render(final Pip
             streamConfiguration.joins()
                     .forEach(joinConfiguration -> criteria.getRoot().fetch(joinConfiguration.field().columnName(), joinConfiguration.joinType()));
     
    +        List> filters = pipeline.intermediateOperations()
    +                .stream().filter(io -> io.type() == IntermediateOperationType.FILTER)
    +                .collect(Collectors.toList()); 
             criteriaMerger.merge(pipeline, criteria);
     
             if (pipeline.terminatingOperation().type() == TerminalOperationType.COUNT && pipeline.intermediateOperations().isEmpty()) {
    -            final Criteria countCriteria = createCountCriteria(criteria);
    +            final Criteria countCriteria = createCountCriteria(criteria, filters);
     
                 final TypedQuery typedQuery = entityManager.createQuery(countCriteria.getQuery());
     
    @@ -140,7 +151,7 @@ public > RenderResult render(final Pip
             );
         }
     
    -    private  Criteria createCountCriteria(final Criteria criteria) {
    +    private  Criteria createCountCriteria(final Criteria criteria, final List> filters) {
             final CriteriaQuery criteriaQuery = criteria.getQuery();
     
             final Criteria countCriteria = criteriaFactory.createCriteria(
    @@ -148,17 +159,20 @@ private  Criteria createCountCriteria(final Criteria criteria)
                 criteriaQuery.getResultType(),
                 Long.class
             );
    -
    -        criteria.getQueryParameters().forEach(countCriteria::addQueryParameter);
    -
    +        
             countCriteria.getRoot().alias(criteria.getRoot().getAlias());
     
             final CriteriaQuery countQuery = countCriteria.getQuery();
     
             countQuery.select(countCriteria.getBuilder().count(countCriteria.getRoot()));
    -
    -        if (criteriaQuery.getRestriction() != null) {
    -            countQuery.where(criteriaQuery.getRestriction());
    +        
    +        if (!filters.isEmpty()) {
    +            // There can only be one JPAStreamer filter after the filter merge (see FilterCriteriaModifier). 
    +            IntermediateOperation filter = filters.stream().findFirst().get();
    +            this.getPredicate(filter).ifPresent(speedmentPredicate -> {
    +                final Predicate predicate = predicateFactory.createPredicate(countCriteria, speedmentPredicate);
    +                countQuery.where(predicate);
    +            });
             }
     
             countQuery.distinct(criteriaQuery.isDistinct());
    @@ -198,4 +212,18 @@ private  void optimizePipeline(final Pipeline pipeline) {
         public void close() {
             entityManager.close();
         }
    +
    +    private  Optional> getPredicate(final IntermediateOperation operation) {
    +        final Object[] arguments = operation.arguments();
    +
    +        if (arguments.length != 1) {
    +            return Optional.empty();
    +        }
    +
    +        if (arguments[0] instanceof SpeedmentPredicate) {
    +            return Optional.of((SpeedmentPredicate) arguments[0]);
    +        }
    +
    +        return Optional.empty();
    +    }
     }
    
    From c30688cb623477a58a2b7dfe30f61c7abdf0598d Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Mon, 10 Jul 2023 10:18:35 +0200
    Subject: [PATCH 21/29] Add integration tests
    
    ---
     .../integration/test/CountTest.java           |  38 ++-
     .../integration/test/JPAStreamerTest.java     |   9 +
     .../integration/test/ManyToManyTest.java      |  33 +++
     .../integration/test/ManyToOneTest.java       |  33 +++
     .../integration/test/MapCustomClassTest.java  |  50 ++++
     .../integration/test/MapToIntTest.java        |  35 +++
     .../integration/test/OneToManyTest.java       |  45 ++++
     .../integration/test/PaginationTest.java      |  37 +++
     .../integration/test/PartitionTest.java       |  33 +++
     .../integration/test/PivotTest.java           |  32 +++
     .../integration/test/ProjectionTest.java      |  56 +++++
     .../integration/test/ReorderTest.java         | 216 ++++++++++++++++++
     .../integration/test/SquashTest.java          |  34 +++
     .../integration/test/TermOpTest.java          |  60 +++++
     .../integration/test/UnionTest.java           |  47 ++++
     15 files changed, 752 insertions(+), 6 deletions(-)
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/JPAStreamerTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToManyTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToOneTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapCustomClassTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapToIntTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/OneToManyTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PaginationTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PartitionTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PivotTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ProjectionTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/TermOpTest.java
     create mode 100644 integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/UnionTest.java
    
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java
    index c69e98af..fd55bb72 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java
    @@ -1,9 +1,9 @@
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.application.JPAStreamer;
    +import com.speedment.jpastreamer.application.StreamSupplier;
     import com.speedment.jpastreamer.integration.test.model.Film;
     import com.speedment.jpastreamer.integration.test.model.Film$;
    -import org.junit.jupiter.api.BeforeAll;
     import org.junit.jupiter.api.Test;
     
     import java.util.List;
    @@ -11,16 +11,42 @@
     
     import static org.junit.jupiter.api.Assertions.assertEquals;
     
    -class CountTest {
    -    
    -    final private JPAStreamer jpaStreamer = JPAStreamer.of("sakila"); 
    +class CountTest extends JPAStreamerTest {
         
         @Test
         void countTest() {
    +        
             final List collect = jpaStreamer.stream(Film.class).collect(Collectors.toList());
    -        final long expected = collect.stream().filter(f -> f.getTitle().startsWith("A")).count(); 
    -        final long actual = jpaStreamer.stream(Film.class).filter(Film$.title.startsWith("A")).count(); 
    +        
    +        final long expected = collect.stream()
    +                .filter(f -> f.getTitle().startsWith("A"))
    +                .count(); 
    +        
    +        final long actual = jpaStreamer.stream(Film.class)
    +                .filter(Film$.title.startsWith("A"))
    +                .count();
    +        
             assertEquals(expected, actual);
         }
         
    +    @Test 
    +    void optimizedCountTest() {
    +        
    +        try (final StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +
    +            final long actual = supplier.stream()
    +                    .filter(Film$.title.startsWith("A"))
    +                    .sorted(Film$.filmId) // optimized away
    +                    .map(Film$.title) // optimized away
    +                    .count();
    +
    +            final long expected = supplier.stream()
    +                    .filter(f -> f.getTitle().startsWith("A"))
    +                    .count();
    +
    +            assertEquals(expected, actual);
    +        }
    +        
    +    }
    +    
     }
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/JPAStreamerTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/JPAStreamerTest.java
    new file mode 100644
    index 00000000..cd0ead44
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/JPAStreamerTest.java
    @@ -0,0 +1,9 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.application.JPAStreamer;
    +
    +public class JPAStreamerTest {
    +
    +    final static protected JPAStreamer jpaStreamer = JPAStreamer.of("sakila");
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToManyTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToManyTest.java
    new file mode 100644
    index 00000000..e686de1a
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToManyTest.java
    @@ -0,0 +1,33 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.integration.test.model.Actor;
    +import com.speedment.jpastreamer.integration.test.model.Actor$;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Comparator;
    +import java.util.List;
    +import java.util.stream.Collectors;
    +
    +import static com.speedment.jpastreamer.streamconfiguration.StreamConfiguration.of;
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
    +public class ManyToManyTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void manyToManyTest() {
    +        List expected = jpaStreamer.stream(of(Actor.class).joining(Actor$.films)).collect(Collectors.toList());
    +
    +        expected = expected.stream()
    +                .filter(a -> a.getFirstName().startsWith("A"))
    +                .sorted(Comparator.comparing(Actor::getLastName))
    +                .collect(Collectors.toList()); 
    +        
    +        List actual = jpaStreamer.stream(of(Actor.class).joining(Actor$.films))
    +                .filter(Actor$.firstName.startsWith("A"))
    +                .sorted(Actor$.lastName)
    +                .collect(Collectors.toList());
    +        
    +        assertEquals(expected, actual);
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToOneTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToOneTest.java
    new file mode 100644
    index 00000000..c97cd5ef
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToOneTest.java
    @@ -0,0 +1,33 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Comparator;
    +import java.util.List;
    +import java.util.stream.Collectors;
    +
    +import static com.speedment.jpastreamer.streamconfiguration.StreamConfiguration.of;
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
    +public class ManyToOneTest extends JPAStreamerTest {
    +
    +    @Test
    +    void manyToOneTest() {
    +        List expected = jpaStreamer.stream(of(Film.class).joining(Film$.language)).collect(Collectors.toList());
    +
    +        expected = expected.stream()
    +                .filter(f -> f.getRating().equals("PG-13"))
    +                .sorted(Comparator.comparing(Film::getTitle))
    +                .collect(Collectors.toList());
    +        
    +        List actual = jpaStreamer.stream(of(Film.class).joining(Film$.language))
    +                .filter(Film$.rating.equal("PG-13"))
    +                .sorted(Film$.title)
    +                .collect(Collectors.toList());
    +        
    +        assertEquals(expected, actual);
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapCustomClassTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapCustomClassTest.java
    new file mode 100644
    index 00000000..b3a7e404
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapCustomClassTest.java
    @@ -0,0 +1,50 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Optional;
    +
    +import static org.junit.jupiter.api.Assertions.assertTrue;
    +
    +public class MapCustomClassTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void mapCustomClass() {
    +        // Verifies that the custom mapping does not cause failures
    +        Optional first = jpaStreamer.stream(Film.class)
    +                .map(TitleLength::new)
    +                .findFirst();
    +
    +        assertTrue(first.isPresent());
    +    }
    +
    +
    +    public static final class TitleLength {
    +
    +        private final String title;
    +        private final int length;
    +
    +        public TitleLength(Film film) {
    +            this.title = film.getTitle();
    +            this.length= film.getLength();
    +        }
    +
    +        public String title() {
    +            return title;
    +        }
    +
    +        public int length() {
    +            return length;
    +        }
    +
    +        @Override
    +        public String toString() {
    +            return "TitleLength{" +
    +                    "title='" + title + '\'' +
    +                    ", length=" + length +
    +                    '}';
    +        }
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapToIntTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapToIntTest.java
    new file mode 100644
    index 00000000..804902a9
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapToIntTest.java
    @@ -0,0 +1,35 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Comparator;
    +import java.util.List;
    +import java.util.OptionalInt;
    +import java.util.stream.Collectors;
    +
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
    +public class MapToIntTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void mapToInt() {
    +
    +        final List films = jpaStreamer.stream(Film.class).collect(Collectors.toList());
    +        int expectedMax = films.stream()
    +                .sorted(Comparator.comparing(Film::getLength))
    +                .limit(15)
    +                .mapToInt(Film::getLength)
    +                .max().orElse(0); 
    +
    +        int actualMax = jpaStreamer.stream(Film.class)
    +                .sorted(Film$.length)
    +                .limit(15)
    +                .mapToInt(Film$.length.asInt().orElse(0))
    +                .max().orElse(0);
    +        
    +        assertEquals(expectedMax, actualMax);
    +        
    +    }
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/OneToManyTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/OneToManyTest.java
    new file mode 100644
    index 00000000..9e4f1110
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/OneToManyTest.java
    @@ -0,0 +1,45 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import com.speedment.jpastreamer.integration.test.model.Language;
    +import com.speedment.jpastreamer.integration.test.model.Language$;
    +import org.junit.jupiter.api.Disabled;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Comparator;
    +import java.util.List;
    +import java.util.stream.Collectors;
    +
    +import static com.speedment.jpastreamer.streamconfiguration.StreamConfiguration.of;
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
    +public class OneToManyTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void oneToMany() {
    +        
    +        final List languages = jpaStreamer.stream(of(Language.class).joining(Language$.films)).collect(Collectors.toList());
    +
    +        List expectedFilms = languages.stream()
    +                .sorted(Comparator.comparing(Language::getName))
    +                .flatMap(l -> l.getFilms().stream())
    +                .sorted(Comparator.comparing(Film::getLength))
    +                .map(Film::getTitle)
    +                .filter(t -> t.startsWith("A"))
    +                .limit(10)
    +                .collect(Collectors.toList());
    +
    +       List actualFilms = jpaStreamer.stream(of(Language.class).joining(Language$.films))
    +                .sorted(Language$.name)
    +                .flatMap(l -> l.getFilms().stream())
    +                .sorted(Film$.length)
    +                .map(Film$.title)
    +                .filter(t -> t.startsWith("A"))
    +                .limit(10)
    +                .collect(Collectors.toList());
    +        
    +        assertEquals(expectedFilms, actualFilms); 
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PaginationTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PaginationTest.java
    new file mode 100644
    index 00000000..350cd0e5
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PaginationTest.java
    @@ -0,0 +1,37 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.application.StreamSupplier;
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Comparator;
    +import java.util.List;
    +import java.util.stream.Collectors;
    +
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
    +public class PaginationTest extends JPAStreamerTest {
    +    
    +    @Test 
    +    void pagination() {
    +        
    +        try (final StreamSupplier filmSupplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List films = filmSupplier.stream().collect(Collectors.toList());
    +            final List expectedPage = films.stream()
    +                    .sorted(Comparator.comparing(Film::getTitle))
    +                    .skip(25)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            final List actualPage = jpaStreamer.stream(Film.class)
    +                    .sorted(Film$.title)
    +                    .skip(25)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +            
    +            assertEquals(expectedPage, actualPage); 
    +        }
    +        
    +    }
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PartitionTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PartitionTest.java
    new file mode 100644
    index 00000000..b4107f34
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PartitionTest.java
    @@ -0,0 +1,33 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.application.StreamSupplier;
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.List;
    +import java.util.Map;
    +import java.util.stream.Collectors;
    +
    +import static java.util.stream.Collectors.partitioningBy;
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
    +public class PartitionTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void partitioning() {
    +        try(final StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            
    +            final List films = supplier.stream().collect(Collectors.toList()); 
    +            final Map> expectedMap = films.stream()
    +                    .collect(partitioningBy(f -> f.getLength() > 120)); 
    +        
    +            final Map> actualMap = supplier.stream()
    +                    .collect(partitioningBy(Film$.length.greaterThan(120)));
    +            
    +            assertEquals(expectedMap, actualMap);
    +            
    +        }
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PivotTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PivotTest.java
    new file mode 100644
    index 00000000..cc3aa56f
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PivotTest.java
    @@ -0,0 +1,32 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.integration.test.model.Actor;
    +import com.speedment.jpastreamer.integration.test.model.Actor$;
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Map;
    +import java.util.function.Function;
    +
    +import static com.speedment.jpastreamer.streamconfiguration.StreamConfiguration.of;
    +import static java.util.stream.Collectors.*;
    +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
    +
    +public class PivotTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void pivotTest() {
    +        assertDoesNotThrow(() -> {
    +            Map> pivot = jpaStreamer.stream(of(Actor.class).joining(Actor$.films))
    +                    .collect(
    +                            groupingBy(
    +                                    Function.identity(),
    +                                    flatMapping(
    +                                            a -> a.getFilms().stream(),
    +                                            groupingBy(Film::getRating, counting())
    +                                    )
    +                            )
    +                    );
    +        }); 
    +    }
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ProjectionTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ProjectionTest.java
    new file mode 100644
    index 00000000..6df3fe45
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ProjectionTest.java
    @@ -0,0 +1,56 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.application.StreamSupplier;
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import com.speedment.jpastreamer.projection.Projection;
    +import com.speedment.jpastreamer.streamconfiguration.StreamConfiguration;
    +import jakarta.persistence.Tuple;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.List;
    +import java.util.stream.Collectors;
    +
    +import static java.util.Comparator.*;
    +import static org.junit.jupiter.api.Assertions.*;
    +
    +public class ProjectionTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void projection() {
    +        StreamConfiguration sc = StreamConfiguration.of(Film.class).selecting(Projection.select(Film$.filmId, Film$.title));
    +        try(final StreamSupplier filmSupplier = jpaStreamer.createStreamSupplier(sc))  {
    +            
    +            // Check that the rating column is not available
    +            assertThrows(NullPointerException.class, () -> {
    +                final List films = filmSupplier.stream().filter(f -> f.getRating().equals("PG-13")).collect(Collectors.toList());
    +            });
    +
    +            // Confirm that the id and title columns are available
    +            assertDoesNotThrow(() -> {
    +                final List first10 = filmSupplier.stream().filter(f -> f.getFilmId() < 10).collect(Collectors.toList());
    +                final List startsWithA = filmSupplier.stream().filter(f -> f.getTitle().startsWith("A")).collect(Collectors.toList());
    +            });
    +            
    +        }
    +        
    +       /* List actualFilms = jpaStreamer.stream(Film.class)
    +                .sorted(Film$.length)
    +                .limit(3)
    +                .map(Projection.select(Film$.filmId, Film$.title))
    +                .collect(Collectors.toList());
    +
    +         final List expectedFilms = jpaStreamer.stream(Film.class)
    +                .sorted(comparing(Film::getLength))
    +                .limit(3)
    +                .map(f -> new Film(f.getFilmId(), f.getTitle()))
    +                .collect(Collectors.toList());
    +
    +        for (int i = 0; i < 3; i++) {
    +            assertEquals(expectedFilms.get(i).getFilmId(), actualFilms.get(i).get(0, Integer.class));
    +            assertEquals(expectedFilms.get(i).getTitle(), actualFilms.get(i).get(1, String.class));
    +        }*/
    +        
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    new file mode 100644
    index 00000000..1d94e8d1
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    @@ -0,0 +1,216 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.application.StreamSupplier;
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Comparator;
    +import java.util.List;
    +import java.util.stream.Collectors;
    +
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
    +public class ReorderTest extends JPAStreamerTest {
    +
    +    @Test
    +    void reorderTest1() {
    +        
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .sorted(Film$.length)
    +                    .filter(Film$.title.startsWith("A"))
    +                    .distinct()
    +                    .collect(Collectors.toList());
    +            
    +            final List expected = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .filter(f -> f.getTitle().startsWith("A"))
    +                    .distinct()
    +                    .collect(Collectors.toList());
    +            
    +            assertEquals(expected, actual); 
    +        }
    +        
    +    }
    +    
    +    @Test 
    +    void reorderTest2() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .sorted(Film$.length)
    +                    .filter(Film$.title.startsWith("A"))
    +                    .map(Film$.title)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .map(Film::getTitle)
    +                    .filter(title -> title.startsWith("A"))
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +        
    +    }
    +
    +    @Test
    +    void reorderTest3() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .limit(10)
    +                    .sorted(Film$.length)
    +                    .filter(Film$.title.startsWith("A"))
    +                    .map(Film$.title)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .limit(10)
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .filter(f -> f.getTitle().startsWith("A"))
    +                    .map(Film::getTitle)
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +
    +    }
    +
    +    @Test
    +    void reorderTest4() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .map(Film$.title)
    +                    .limit(10)
    +                    .sorted(Comparator.comparing(String::valueOf))
    +                    .filter(t -> t.contains("E"))
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .map(Film::getTitle)
    +                    .limit(10)
    +                    .sorted(Comparator.comparing(String::valueOf))
    +                    .filter(t -> t.contains("E"))
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +
    +    }
    +
    +    @Test
    +    void reorderTest5() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .filter(Film$.title.startsWith("A"))
    +                    .skip(10)
    +                    .filter(f -> f.getLength() > 120)
    +                    .sorted(Film$.length)
    +                    .limit(10)
    +                    .map(Film$.title)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .filter(f -> f.getTitle().startsWith("A"))
    +                    .skip(10)
    +                    .filter(f -> f.getLength() > 120)
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .limit(10)
    +                    .map(Film::getTitle)
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +
    +    }
    +
    +    @Test
    +    void reorderTest6() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .sorted(Film$.length)
    +                    .limit(10)
    +                    .filter(Film$.title.startsWith("A"))
    +                    .map(Film$.title)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .limit(10)
    +                    .map(Film::getTitle)
    +                    .filter(title -> title.startsWith("A"))
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +
    +    }
    +
    +    @Test
    +    void reorderTest7() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .distinct()
    +                    .filter(Film$.title.startsWith("A"))
    +                    .map(Film$.title)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .distinct()
    +                    .map(Film::getTitle)
    +                    .filter(title -> title.startsWith("A"))
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +
    +    }
    +
    +    @Test
    +    void reorderTest8() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .filter(f -> f.getTitle().endsWith("A"))
    +                    .filter(Film$.length.greaterThan(120))
    +                    .distinct()
    +                    .sorted(Comparator.comparing(Film::getTitle))
    +                    .sorted(Film$.length)
    +                    .map(Film$.title)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .filter(f -> f.getTitle().endsWith("A"))
    +                    .filter(f -> f.getLength() > 120)
    +                    .distinct()
    +                    .sorted(Comparator.comparing(Film::getTitle))
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .map(Film::getTitle)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java
    new file mode 100644
    index 00000000..12bf8838
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java
    @@ -0,0 +1,34 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.application.StreamSupplier;
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.List;
    +import java.util.stream.Collectors;
    +
    +public class SquashTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void squashTest() {
    +        
    +        try(final StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            
    +            final List actual = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .filter(Film$.title.startsWith("A"))
    +                    .limit(10)
    +                    .map(Film$.title)
    +                    .collect(Collectors.toList());
    +
    +            final List ex = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .filter(Film$.title.startsWith("A"))
    +                    .limit(10)
    +                    .map(Film$.title)
    +                    .collect(Collectors.toList());
    +
    +        }
    +    }
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/TermOpTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/TermOpTest.java
    new file mode 100644
    index 00000000..0231c7df
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/TermOpTest.java
    @@ -0,0 +1,60 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Optional;
    +
    +import static org.junit.jupiter.api.Assertions.assertFalse;
    +import static org.junit.jupiter.api.Assertions.assertTrue;
    +
    +public class TermOpTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void findAnyTest() {
    +        Optional anyFilm = jpaStreamer.stream(Film.class)
    +                .filter(Film$.length.greaterThan(100).and(Film$.title.startsWith("C")))
    +                .map(Film$.title)
    +                .findAny();
    +        
    +        assertTrue(anyFilm.isPresent());
    +    }
    +
    +    @Test
    +    void findFirstTest() {
    +        Optional firstFilm = jpaStreamer.stream(Film.class)
    +                .filter(Film$.length.greaterThan(100).and(Film$.title.startsWith("C")))
    +                .map(Film$.title)
    +                .findFirst();
    +
    +        assertTrue(firstFilm.isPresent());
    +    }
    +
    +    @Test
    +    void anyMatchTest() {
    +        boolean anyLongFilm = jpaStreamer.stream(Film.class)
    +                .anyMatch(Film$.length.greaterThan(180));
    +
    +        assertTrue(anyLongFilm);
    +
    +        boolean anyVeryLongFilm = jpaStreamer.stream(Film.class)
    +                .anyMatch(Film$.length.greaterThan(2000));
    +
    +        assertFalse(anyVeryLongFilm);
    +    }    
    +    
    +    @Test
    +    void noneMatchTest() {
    +        boolean noneMatch = jpaStreamer.stream(Film.class)
    +                .noneMatch(Film$.length.greaterThan(180));
    +
    +        assertFalse(noneMatch);
    +
    +        boolean noneMatchVeryLong = jpaStreamer.stream(Film.class)
    +                .noneMatch(Film$.length.greaterThan(2000));
    +
    +        assertTrue(noneMatchVeryLong);
    +    }
    +    
    +}
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/UnionTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/UnionTest.java
    new file mode 100644
    index 00000000..7dcede93
    --- /dev/null
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/UnionTest.java
    @@ -0,0 +1,47 @@
    +package com.speedment.jpastreamer.integration.test;
    +
    +import com.speedment.jpastreamer.application.JPAStreamer;
    +import com.speedment.jpastreamer.application.StreamSupplier;
    +import com.speedment.jpastreamer.integration.test.model.Film;
    +import com.speedment.jpastreamer.integration.test.model.Film$;
    +import com.speedment.jpastreamer.streamconfiguration.StreamConfiguration;
    +import org.junit.jupiter.api.Test;
    +
    +import java.util.Comparator;
    +import java.util.List;
    +import java.util.function.Function;
    +import java.util.stream.Collectors;
    +import java.util.stream.Stream;
    +
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
    +public class UnionTest extends JPAStreamerTest {
    +    
    +    @Test
    +    void unionTest() {
    +
    +        StreamConfiguration configuration = StreamConfiguration.of(Film.class)
    +                .joining(Film$.actors)
    +                .joining(Film$.language);
    +         
    +        try (final StreamSupplier supplier = jpaStreamer.createStreamSupplier(configuration)) {
    +            
    +            List actual = Stream.of(
    +                            supplier.stream().filter(Film$.length.greaterThan(120)),
    +                            supplier.stream().filter(Film$.rating.equal("PG-13"))
    +                    )
    +                    .flatMap(Function.identity())
    +                    .distinct()
    +                    .sorted(Comparator.comparing(Film::getFilmId))
    +                    .collect(Collectors.toList());
    +
    +            List expected = jpaStreamer.stream(configuration)
    +                    .filter(f -> f.getLength() > 120 || f.getRating().equals("PG-13"))
    +                    .sorted(Comparator.comparing(Film::getFilmId))
    +                    .collect(Collectors.toList());
    +            
    +            assertEquals(expected, actual); 
    +            
    +        }
    +    }
    +}
    
    From 28e1d5fb46055f67b15c685033c7cec7306c5154 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Mon, 10 Jul 2023 10:20:33 +0200
    Subject: [PATCH 22/29] Add terminal operation optimizer to core module
    
    ---
     jpastreamer.core/pom.xml                                     | 5 +++++
     jpastreamer.core/src/main/java/module-info.java              | 1 +
     .../standard/StandardTerminalOperationOptimizerFactory.java  | 1 +
     3 files changed, 7 insertions(+)
    
    diff --git a/jpastreamer.core/pom.xml b/jpastreamer.core/pom.xml
    index 4a70a0b3..a84b9e3c 100644
    --- a/jpastreamer.core/pom.xml
    +++ b/jpastreamer.core/pom.xml
    @@ -122,6 +122,11 @@
                 ${jpa-streamer.version}
             
     
    +        
    +            com.speedment.jpastreamer
    +            termopoptimizer-standard
    +        
    +        
             
                 com.speedment.jpastreamer
                 announcer
    diff --git a/jpastreamer.core/src/main/java/module-info.java b/jpastreamer.core/src/main/java/module-info.java
    index 23cfd3a9..5a20bd1b 100644
    --- a/jpastreamer.core/src/main/java/module-info.java
    +++ b/jpastreamer.core/src/main/java/module-info.java
    @@ -24,6 +24,7 @@
         requires jpastreamer.builder.standard;
         requires jpastreamer.renderer.standard;
         requires jpastreamer.interopoptimizer.standard;
    +    requires jpastreamer.termopoptimizer.standard;
         requires jpastreamer.merger.standard;
         requires jpastreamer.criteria.standard;
         requires jpastreamer.analytics.standard;
    diff --git a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactory.java b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactory.java
    index 28f7e497..ade90db1 100644
    --- a/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactory.java
    +++ b/jpastreamer.provider/jpastreamer.termopoptimizer.standard/src/main/java/com/speedment/jpastreamer/termopoptimizer/standard/StandardTerminalOperationOptimizerFactory.java
    @@ -24,4 +24,5 @@ public final class StandardTerminalOperationOptimizerFactory implements Terminal
         public TerminalOperationOptimizer get() {
             return delegate.get();
         }
    +    
     }
    
    From fd1ca5fc58a01fa0f4a3e2518c24b9a49ece60de Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Mon, 10 Jul 2023 10:33:11 +0200
    Subject: [PATCH 23/29] Prevent merging of anonymous lambdas, fix #355
    
    ---
     .../abstracts/AbstractSingleValueSquash.java  | 12 ++-
     .../internal/strategy/SquashFilterTest.java   | 81 ++++++++++++-------
     2 files changed, 61 insertions(+), 32 deletions(-)
    
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java
    index c28fa30c..0bf61d96 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java
    @@ -12,11 +12,16 @@
      */
     package com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.squash.abstracts;
     
    +import com.speedment.jpastreamer.field.predicate.SpeedmentPredicate;
     import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.squash.SingleValueSquash;
     import com.speedment.jpastreamer.pipeline.Pipeline;
     import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperation;
    +import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType;
     
     import java.util.LinkedList;
    +import java.util.Optional;
    +
    +import static com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType.FILTER;
     
     public abstract class AbstractSingleValueSquash implements SingleValueSquash {
     
    @@ -44,9 +49,11 @@ public  Pipeline optimize(final Pipeline pipeline) {
     
                     if (valueClass().isAssignableFrom(intermediateOperation.arguments()[0].getClass())) {
                         S value = (S) intermediateOperation.arguments()[0];
    -                    result = squash().apply(value, result);
    +                    if (operationType() != FILTER || value instanceof SpeedmentPredicate) {
    +                        result = squash().apply(value, result);
     
    -                    intermediateOperations.remove(i);
    +                        intermediateOperations.remove(i);
    +                    }
                     }
     
                     continue;
    @@ -67,4 +74,5 @@ public  Pipeline optimize(final Pipeline pipeline) {
     
             return pipeline;
         }
    +    
     }
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilterTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilterTest.java
    index 36c14a24..a1d4ca47 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilterTest.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashFilterTest.java
    @@ -14,6 +14,8 @@
     
     import static org.junit.jupiter.api.Assertions.assertEquals;
     
    +import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.model.Film;
    +import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.model.Film$;
     import com.speedment.jpastreamer.pipeline.Pipeline;
     import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperation;
     
    @@ -21,7 +23,7 @@
     import java.util.stream.IntStream;
     import java.util.stream.Stream;
     
    -final class SquashFilterTest extends SquashTest> {
    +final class SquashFilterTest extends SquashTest> {
     
         @Override
         SquashFilter getSquashInstance() {
    @@ -29,87 +31,105 @@ SquashFilter getSquashInstance() {
         }
     
         @Override
    -    Class getEntityClass() {
    -        return String.class;
    +    Class getEntityClass() {
    +        return Film.class;
         }
     
         @Override
    -    protected Stream> pipelines() {
    +    protected Stream> pipelines() {
             return Stream.of(
                 noFilter(),
                 filterN(1), filterN(2), filterN(3), filterN(10), filterN(100),
                 filterOther(),
                 filter2Other2(),
    -            filter2OtherFilter2()
    +            filter2OtherFilter2(), 
    +            filterAndLambdaFilter2()
             );
         }
     
    -    private PipelineTestCase noFilter() {
    -        final Pipeline noFilter = createPipeline(
    +    private PipelineTestCase noFilter() {
    +        final Pipeline noFilter = createPipeline(
                 operationFactory.createSkip(1)
             );
     
    -        final Pipeline noFilterExpected = createPipeline(
    +        final Pipeline noFilterExpected = createPipeline(
                 operationFactory.createSkip(1)
             );
     
             return new PipelineTestCase<>("No Filter", noFilter, noFilterExpected);
         }
     
    -    private PipelineTestCase filterN(int n) {
    -        IntermediateOperation[] operations = IntStream.range(0, n).mapToObj(i -> operationFactory.createFilter(x -> i % 2 == 0)).toArray(IntermediateOperation[]::new);
    +    private PipelineTestCase filterN(int n) {
    +        IntermediateOperation[] operations = IntStream.range(0, n).mapToObj(i -> operationFactory.createFilter(Film$.title.startsWith("A"))).toArray(IntermediateOperation[]::new);
     
    -        final Pipeline filter = createPipeline(operations);
    +        final Pipeline filter = createPipeline(operations);
     
    -        final Pipeline filterExpected = createPipeline(operationFactory.createFilter(x -> n == 1));
    +        final Pipeline filterExpected = createPipeline(operationFactory.createFilter(Film$.title.startsWith("A")));
     
             return new PipelineTestCase<>("Filter " + n, filter, filterExpected);
         }
     
    -    private PipelineTestCase filterOther() {
    -        final Pipeline filterOther = createPipeline(
    -            operationFactory.createFilter(x -> true),
    +    private PipelineTestCase filterOther() {
    +        final Pipeline filterOther = createPipeline(
    +            operationFactory.createFilter(Film$.title.startsWith("A")),
                 operationFactory.createSkip(1)
             );
     
    -        final Pipeline filterOtherExpected = createPipeline(
    -            operationFactory.createFilter(x -> true),
    +        final Pipeline filterOtherExpected = createPipeline(
    +            operationFactory.createFilter(Film$.title.startsWith("A")),
                 operationFactory.createSkip(1)
             );
     
             return new PipelineTestCase<>("Filter, Other", filterOther, filterOtherExpected);
         }
     
    -    private PipelineTestCase filter2Other2() {
    -        final Pipeline filter2Other2 = createPipeline(
    -            operationFactory.createFilter(x -> true), operationFactory.createFilter(x -> true),
    +    private PipelineTestCase filter2Other2() {
    +        final Pipeline filter2Other2 = createPipeline(
    +            operationFactory.createFilter(Film$.title.startsWith("A")), operationFactory.createFilter(Film$.title.endsWith("B")),
                 operationFactory.createSkip(1), operationFactory.createSkip(1)
             );
     
    -        final Pipeline filter2Other2Expected = createPipeline(
    -            operationFactory.createFilter(x -> true),
    +        final Pipeline filter2Other2Expected = createPipeline(
    +            operationFactory.createFilter(Film$.title.startsWith("A").and(Film$.title.endsWith("B"))),
                 operationFactory.createSkip(1), operationFactory.createSkip(1)
             );
     
             return new PipelineTestCase<>("Filter 2, Other 2", filter2Other2, filter2Other2Expected);
         }
     
    -    private PipelineTestCase filter2OtherFilter2() {
    -        final Pipeline filter2OtherFilter2 = createPipeline(
    -            operationFactory.createFilter(x -> true), operationFactory.createFilter(x -> true),
    +    private PipelineTestCase filter2OtherFilter2() {
    +        final Pipeline filter2OtherFilter2 = createPipeline(
    +            operationFactory.createFilter(Film$.title.startsWith("T")), operationFactory.createFilter(Film$.title.endsWith("C")),
                 operationFactory.createLimit(1),
    -            operationFactory.createFilter(x -> true), operationFactory.createFilter(x -> false)
    +            operationFactory.createFilter(Film$.title.startsWith("A")), operationFactory.createFilter(Film$.title.startsWith("B"))
             );
     
    -        final Pipeline filter2OtherFilter2Expected = createPipeline(
    -            operationFactory.createFilter(x -> true),
    +        final Pipeline filter2OtherFilter2Expected = createPipeline(
    +            operationFactory.createFilter(Film$.title.startsWith("T").and(Film$.title.endsWith("C"))),
                 operationFactory.createLimit(1),
    -            operationFactory.createFilter(x -> false)
    +            operationFactory.createFilter(Film$.title.startsWith("A").and(Film$.title.endsWith("B")))
             );
     
             return new PipelineTestCase<>("Filter 2, Other, Filter 2", filter2OtherFilter2, filter2OtherFilter2Expected);
         }
     
    +    private PipelineTestCase filterAndLambdaFilter2() {
    +        final Pipeline filter2OtherFilter2 = createPipeline(
    +                operationFactory.createFilter(Film$.title.startsWith("T")), operationFactory.createFilter(x -> true),
    +                operationFactory.createLimit(1),
    +                operationFactory.createFilter(Film$.title.startsWith("A")), operationFactory.createFilter(Film$.title.startsWith("B"))
    +        );
    +
    +        final Pipeline filter2OtherFilter2Expected = createPipeline(
    +                operationFactory.createFilter(Film$.title.startsWith("T")),
    +                operationFactory.createFilter(x -> true),
    +                operationFactory.createLimit(1),
    +                operationFactory.createFilter(Film$.title.startsWith("A").and(Film$.title.endsWith("B")))
    +        );
    +
    +        return new PipelineTestCase<>("Filter and Lambda, Filter 2", filter2OtherFilter2, filter2OtherFilter2Expected);
    +    }
    +
         @Override
         @SuppressWarnings({"rawtypes", "unchecked"})
         protected void assertArguments(Object[] expected, Object[] actual) {
    @@ -117,7 +137,8 @@ protected void assertArguments(Object[] expected, Object[] actual) {
                 final Predicate expectedPredicate = (Predicate) expected[0];
                 final Predicate actualPredicate = (Predicate) actual[0];
     
    -            assertEquals(expectedPredicate.test(null), actualPredicate.test(null));
    +            final Film film = new Film((short) 1234, "TITANIC", "About a ship that sank.");
    +            assertEquals(expectedPredicate.test(film), actualPredicate.test(film));
             } else {
                 super.assertArguments(expected, actual);
             }
    
    From 17b4edcf2b42fa0368c5c446ac35b241d197923e Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Mon, 10 Jul 2023 10:56:47 +0200
    Subject: [PATCH 24/29] Activate anonymous lambda reordering, #35
    
    ---
     .../jpastreamer.renderer.standard/pom.xml                 | 8 +++++++-
     .../renderer/standard/internal/StandardRenderer.java      | 5 +++++
     .../src/main/java/module-info.java                        | 3 +++
     3 files changed, 15 insertions(+), 1 deletion(-)
    
    diff --git a/jpastreamer.provider/jpastreamer.renderer.standard/pom.xml b/jpastreamer.provider/jpastreamer.renderer.standard/pom.xml
    index 2ae14815..be1e0ae0 100644
    --- a/jpastreamer.provider/jpastreamer.renderer.standard/pom.xml
    +++ b/jpastreamer.provider/jpastreamer.renderer.standard/pom.xml
    @@ -71,12 +71,18 @@
                 termopmodifier
             
     
    +        
    +            com.speedment.jpastreamer
    +            termopoptimizer
    +        
    +
    +        
             
                 jakarta.persistence
                 jakarta.persistence-api
                 ${jakarta.version}
             
    -
    +        
         
     
     
    diff --git a/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java
    index 3db45cf2..5f65cb71 100644
    --- a/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java
    +++ b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/com/speedment/jpastreamer/renderer/standard/internal/StandardRenderer.java
    @@ -34,6 +34,7 @@
     import com.speedment.jpastreamer.streamconfiguration.StreamConfiguration;
     
     import com.speedment.jpastreamer.termopmodifier.TerminalOperationModifierFactory;
    +import com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizerFactory;
     import jakarta.persistence.EntityManager;
     import jakarta.persistence.EntityManagerFactory;
     import jakarta.persistence.TypedQuery;
    @@ -56,6 +57,7 @@ final class StandardRenderer implements Renderer {
     
         private final IntermediateOperationOptimizerFactory intermediateOperationOptimizerFactory;
         private final TerminalOperationModifierFactory terminalOperationModifierFactory;
    +    private final TerminalOperationOptimizerFactory terminalOperationOptimizerFactory;
     
         private final MergerFactory mergerFactory;
     
    @@ -69,6 +71,7 @@ final class StandardRenderer implements Renderer {
             this.predicateFactory = RootFactory.getOrThrow(PredicateFactory.class, ServiceLoader::load); 
             this.intermediateOperationOptimizerFactory = RootFactory.getOrThrow(IntermediateOperationOptimizerFactory.class, ServiceLoader::load);
             this.terminalOperationModifierFactory = RootFactory.getOrThrow(TerminalOperationModifierFactory.class, ServiceLoader::load);
    +        this.terminalOperationOptimizerFactory = RootFactory.getOrThrow(TerminalOperationOptimizerFactory.class, ServiceLoader::load);
             this.mergerFactory = RootFactory.getOrThrow(MergerFactory.class, ServiceLoader::load);
         }
         
    @@ -78,6 +81,7 @@ final class StandardRenderer implements Renderer {
             this.predicateFactory = RootFactory.getOrThrow(PredicateFactory.class, ServiceLoader::load);
             this.intermediateOperationOptimizerFactory = RootFactory.getOrThrow(IntermediateOperationOptimizerFactory.class, ServiceLoader::load);
             this.terminalOperationModifierFactory = RootFactory.getOrThrow(TerminalOperationModifierFactory.class, ServiceLoader::load);
    +        this.terminalOperationOptimizerFactory = RootFactory.getOrThrow(TerminalOperationOptimizerFactory.class, ServiceLoader::load);
             this.mergerFactory = RootFactory.getOrThrow(MergerFactory.class, ServiceLoader::load);
         }
     
    @@ -206,6 +210,7 @@ private  void modifyPipeline(final Pipeline pipeline) {
         
         private  void optimizePipeline(final Pipeline pipeline) {
             intermediateOperationOptimizerFactory.stream().forEach(intermediateOperationOptimizer -> intermediateOperationOptimizer.optimize(pipeline));
    +        terminalOperationOptimizerFactory.get().optimize(pipeline);
         }
     
         @Override
    diff --git a/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/module-info.java b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/module-info.java
    index 3e216b7d..417626b4 100644
    --- a/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/module-info.java
    +++ b/jpastreamer.provider/jpastreamer.renderer.standard/src/main/java/module-info.java
    @@ -3,6 +3,7 @@
     import com.speedment.jpastreamer.merger.MergerFactory;
     import com.speedment.jpastreamer.renderer.RendererFactory;
     import com.speedment.jpastreamer.renderer.standard.StandardRendererFactory;
    +import com.speedment.jpastreamer.termopoptimizer.TerminalOperationOptimizerFactory;
     
     /*
      * JPAstreamer - Express JPA queries with Java Streams
    @@ -26,10 +27,12 @@
         requires jpastreamer.merger;
         requires jpastreamer.interopoptimizer;
         requires jpastreamer.termopmodifier;
    +    requires jpastreamer.termopoptimizer;
         
         uses CriteriaFactory;
         uses MergerFactory;
         uses IntermediateOperationOptimizerFactory; 
    +    uses TerminalOperationOptimizerFactory; 
     
         provides RendererFactory with StandardRendererFactory;
     }
    
    From 49b9b17a16a8a8cdbc19e76f7c9e8dd190351b16 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Mon, 10 Jul 2023 10:58:19 +0200
    Subject: [PATCH 25/29] Prevent reordering of operations when merging
    
    ---
     .../criteria/InternalCriteriaMerger.java      | 23 +++++++++++--------
     .../internal/query/InternalQueryMerger.java   |  2 +-
     2 files changed, 15 insertions(+), 10 deletions(-)
    
    diff --git a/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/InternalCriteriaMerger.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/InternalCriteriaMerger.java
    index 4dfe6f96..0ff1e683 100644
    --- a/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/InternalCriteriaMerger.java
    +++ b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/InternalCriteriaMerger.java
    @@ -12,9 +12,7 @@
      */
     package com.speedment.jpastreamer.merger.standard.internal.criteria;
     
    -import static com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType.DISTINCT;
    -import static com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType.FILTER;
    -import static com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType.SORTED;
    +import static com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType.*;
     import static java.util.Objects.requireNonNull;
     
     import com.speedment.jpastreamer.criteria.Criteria;
    @@ -65,14 +63,21 @@ public  CriteriaMergeResult merge(
     
                 final CriteriaModifier criteriaModifier = mergingStrategies.get(operationType);
     
    -            if (criteriaModifier == null) {
    -                continue;
    -            }
    +            if (criteriaModifier != null) {
     
    -            final IntermediateOperationReference operationReference =
    -                    IntermediateOperationReference.createReference(operation, i, intermediateOperations);
    +                final IntermediateOperationReference operationReference =
    +                        IntermediateOperationReference.createReference(operation, i, intermediateOperations);
     
    -            criteriaModifier.modifyCriteria(operationReference, criteria, mergingTracker);
    +                criteriaModifier.modifyCriteria(operationReference, criteria, mergingTracker);
    +                
    +            }
    +
    +            if (!mergingTracker.mergedOperations().contains(operationType)) {
    +                // If the current operation was not merged, the following operations cannot be merged
    +                // as that risks changing the order in which the operations are applied
    +                break;
    +            }
    +            
             }
     
             mergingTracker.forRemoval()
    diff --git a/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/InternalQueryMerger.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/InternalQueryMerger.java
    index 06487cc4..6001b130 100644
    --- a/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/InternalQueryMerger.java
    +++ b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/query/InternalQueryMerger.java
    @@ -63,7 +63,7 @@ public  QueryMergeResult merge(final Pipeline pipeline, final Query que
                 final QueryModifier queryModifier = mergingStrategies.get(operationType);
     
                 if (queryModifier == null) {
    -                continue;
    +                break;
                 }
     
                 final IntermediateOperationReference operationReference =
    
    From 524aca1d0377452c991400b7f63276115cf569f1 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Mon, 10 Jul 2023 15:31:03 +0200
    Subject: [PATCH 26/29] Add test cases to validate squash and reordering
    
    ---
     .../integration/test/ReorderTest.java         | 32 +++++++++++++++-
     .../integration/test/SquashTest.java          | 37 ++++++++++++++++++-
     2 files changed, 67 insertions(+), 2 deletions(-)
    
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    index 1d94e8d1..b00db739 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    @@ -196,6 +196,7 @@ void reorderTest8() {
                         .sorted(Film$.length)
                         .map(Film$.title)
                         .limit(10)
    +                    .limit(10)
                         .collect(Collectors.toList());
     
                 final List expected = supplier.stream()
    @@ -206,11 +207,40 @@ void reorderTest8() {
                         .sorted(Comparator.comparing(Film::getLength))
                         .map(Film::getTitle)
                         .limit(10)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +
    +    }
    +
    +    @Test
    +    void reorderTest9() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .filter(f -> f.getTitle().endsWith("A"))
    +                    .filter(Film$.length.greaterThan(120))
    +                    .distinct()
    +                    .sorted(Film$.length)
    +                    .sorted(Comparator.comparing(Film::getTitle))
    +                    .map(Film$.title)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .filter(f -> f.getTitle().endsWith("A"))
    +                    .filter(f -> f.getLength() > 120)
    +                    .distinct()
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .sorted(Comparator.comparing(Film::getTitle))
    +                    .map(Film::getTitle)
    +                    .limit(10)
                         .collect(Collectors.toList());
     
                 assertEquals(expected, actual);
             }
     
         }
    -    
     }
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java
    index 12bf8838..7ede1535 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java
    @@ -5,9 +5,12 @@
     import com.speedment.jpastreamer.integration.test.model.Film$;
     import org.junit.jupiter.api.Test;
     
    +import java.util.Comparator;
     import java.util.List;
     import java.util.stream.Collectors;
     
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +
     public class SquashTest extends JPAStreamerTest {
         
         @Test
    @@ -22,12 +25,44 @@ void squashTest() {
                         .map(Film$.title)
                         .collect(Collectors.toList());
     
    -            final List ex = supplier.stream()
    +            final List expected = supplier.stream()
                         .filter(f -> f.getLength() > 120)
                         .filter(Film$.title.startsWith("A"))
                         .limit(10)
                         .map(Film$.title)
                         .collect(Collectors.toList());
    +            
    +            assertEquals(expected, actual);
    +
    +        }
    +    }
    +
    +    @Test
    +    void squashTest2() {
    +
    +        try(final StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +
    +            final List actual = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .filter(Film$.title.startsWith("A"))
    +                    .sorted(Film$.rating)
    +                    .sorted(Comparator.comparing(Film::getTitle))
    +                    .sorted(Film$.length)
    +                    .limit(50)
    +                    .map(Film$.title)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .filter(f -> f.getTitle().startsWith("A"))
    +                    .sorted(Comparator.comparing(Film::getRating))
    +                    .sorted(Comparator.comparing(Film::getTitle))
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .limit(50)
    +                    .map(Film$.title)
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
     
             }
         }
    
    From bfe91fc4d36e316b06ea0609f97b2f2251d3c9dc Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Mon, 10 Jul 2023 15:31:54 +0200
    Subject: [PATCH 27/29] Squash adjacent JPAStreamer operations, fix #355
    
    ---
     .../abstracts/AbstractSingleValueSquash.java  | 12 ++-
     .../internal/strategy/SquashSortedTest.java   | 79 ++++++++++++-------
     .../strategy/SortedCriteriaModifier.java      |  2 +-
     3 files changed, 61 insertions(+), 32 deletions(-)
    
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java
    index 0bf61d96..a7f275c3 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/squash/abstracts/AbstractSingleValueSquash.java
    @@ -12,16 +12,19 @@
      */
     package com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.squash.abstracts;
     
    +import com.speedment.jpastreamer.field.ComparableField;
     import com.speedment.jpastreamer.field.predicate.SpeedmentPredicate;
     import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.squash.SingleValueSquash;
     import com.speedment.jpastreamer.pipeline.Pipeline;
     import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperation;
     import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType;
     
    +import java.util.Comparator;
     import java.util.LinkedList;
     import java.util.Optional;
     
     import static com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType.FILTER;
    +import static com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperationType.SORTED;
     
     public abstract class AbstractSingleValueSquash implements SingleValueSquash {
     
    @@ -48,15 +51,16 @@ public  Pipeline optimize(final Pipeline pipeline) {
                     }
     
                     if (valueClass().isAssignableFrom(intermediateOperation.arguments()[0].getClass())) {
    -                    S value = (S) intermediateOperation.arguments()[0];
    -                    if (operationType() != FILTER || value instanceof SpeedmentPredicate) {
    +                    S value = (S) intermediateOperation.arguments()[0]; 
    +                    if ((operationType() != FILTER && operationType() != SORTED) || 
    +                            value instanceof SpeedmentPredicate ||
    +                            value instanceof ComparableField ) {
                             result = squash().apply(value, result);
     
                             intermediateOperations.remove(i);
    +                        continue;
                         }
                     }
    -
    -                continue;
                 }
     
                 if (result != checkValue()) {
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSortedTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSortedTest.java
    index 8bdcd161..8987f295 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSortedTest.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/SquashSortedTest.java
    @@ -14,6 +14,8 @@
     
     import static org.junit.jupiter.api.Assertions.assertEquals;
     
    +import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.model.Film;
    +import com.speedment.jpastreamer.interopoptimizer.standard.internal.strategy.model.Film$;
     import com.speedment.jpastreamer.pipeline.Pipeline;
     import com.speedment.jpastreamer.pipeline.intermediate.IntermediateOperation;
     
    @@ -21,7 +23,7 @@
     import java.util.stream.IntStream;
     import java.util.stream.Stream;
     
    -final class SquashSortedTest extends SquashTest> {
    +final class SquashSortedTest extends SquashTest> {
     
         @Override
         SquashSorted getSquashInstance() {
    @@ -29,12 +31,12 @@ SquashSorted getSquashInstance() {
         }
     
         @Override
    -    Class getEntityClass() {
    -        return String.class;
    +    Class getEntityClass() {
    +        return Film.class;
         }
     
         @Override
    -    protected Stream> pipelines() {
    +    protected Stream> pipelines() {
             return Stream.of(
                 noSorted(),
                 sortedN(1), sortedN(2), sortedN(3), sortedN(10), sortedN(100),
    @@ -44,52 +46,52 @@ protected Stream> pipelines() {
             );
         }
     
    -    private PipelineTestCase noSorted() {
    -        final Pipeline noSorted = createPipeline(
    +    private PipelineTestCase noSorted() {
    +        final Pipeline noSorted = createPipeline(
                 operationFactory.createSkip(1)
             );
     
    -        final Pipeline noSortedExpected = createPipeline(
    +        final Pipeline noSortedExpected = createPipeline(
                 operationFactory.createSkip(1)
             );
     
             return new PipelineTestCase<>("No Sorted", noSorted, noSortedExpected);
         }
     
    -    private PipelineTestCase sortedN(int n) {
    -        IntermediateOperation[] operations = IntStream.range(0, n).mapToObj(i -> operationFactory.createSorted((o1, o2) -> 0)).toArray(IntermediateOperation[]::new);
    +    private PipelineTestCase sortedN(int n) {
    +        IntermediateOperation[] operations = IntStream.range(0, n).mapToObj(i -> operationFactory.createSorted(Film$.length)).toArray(IntermediateOperation[]::new);
     
    -        final Pipeline sorted = createPipeline(operations);
    +        final Pipeline sorted = createPipeline(operations);
     
    -        final Pipeline sortedExpected = createPipeline(operationFactory.createSorted((o1, o2) -> 0));
    +        final Pipeline sortedExpected = createPipeline(operationFactory.createSorted(Film$.length));
     
             return new PipelineTestCase<>("Sorted " + n, sorted, sortedExpected);
         }
     
    -    private PipelineTestCase sortedOther() {
    -        final Pipeline sortedOther = createPipeline(
    -            operationFactory.createSorted(((o1, o2) -> 0)),
    +    private PipelineTestCase sortedOther() {
    +        final Pipeline sortedOther = createPipeline(
    +            operationFactory.createSorted(Film$.length),
                 operationFactory.createSkip(1)
             );
     
    -        final Pipeline sortedOtherExpected = createPipeline(
    -            operationFactory.createSorted((o1, o2) -> 0),
    +        final Pipeline sortedOtherExpected = createPipeline(
    +            operationFactory.createSorted(Film$.length),
                 operationFactory.createSkip(1)
             );
     
             return new PipelineTestCase<>("Sorted, Other", sortedOther, sortedOtherExpected);
         }
     
    -    private PipelineTestCase sorted2Other2() {
    -        final Comparator first = (o1, o2) -> 0;
    -        final Comparator second = (o1, o2) -> 1;
    +    private PipelineTestCase sorted2Other2() {
    +        final Comparator first = Film$.length;
    +        final Comparator second = Film$.title;
     
    -        final Pipeline sorted2Other2 = createPipeline(
    +        final Pipeline sorted2Other2 = createPipeline(
                 operationFactory.createSorted(first), operationFactory.createSorted(second),
                 operationFactory.createSkip(1), operationFactory.createSkip(1)
             );
     
    -        final Pipeline sorted2Other2Expected = createPipeline(
    +        final Pipeline sorted2Other2Expected = createPipeline(
                 operationFactory.createSorted(first.thenComparing(second)),
                 operationFactory.createSkip(1), operationFactory.createSkip(1)
             );
    @@ -97,18 +99,18 @@ private PipelineTestCase sorted2Other2() {
             return new PipelineTestCase<>("Sorted 2, Other 2", sorted2Other2, sorted2Other2Expected);
         }
     
    -    private PipelineTestCase sorted2OtherSorted2() {
    -        final Comparator first = (o1, o2) -> 0;
    -        final Comparator second = (o1, o2) -> 1;
    +    private PipelineTestCase sorted2OtherSorted2() {
    +        final Comparator first = Film$.length;
    +        final Comparator second = Film$.title;
     
    -        final Pipeline sorted2OtherSorted2 = createPipeline(
    +        final Pipeline sorted2OtherSorted2 = createPipeline(
                 operationFactory.createSorted(first), operationFactory.createSorted(second),
                 operationFactory.createLimit(1),
                 operationFactory.createSorted(second), operationFactory.createSorted(first)
             );
     
     
    -        final Pipeline sorted2OtherSorted2Expected = createPipeline(
    +        final Pipeline sorted2OtherSorted2Expected = createPipeline(
                 operationFactory.createSorted(first.thenComparing(second)),
                 operationFactory.createLimit(1),
                 operationFactory.createSorted(second.thenComparing(first))
    @@ -117,6 +119,26 @@ private PipelineTestCase sorted2OtherSorted2() {
             return new PipelineTestCase<>("Sorted 2, Other, Sorted 2", sorted2OtherSorted2, sorted2OtherSorted2Expected);
         }
     
    +    private PipelineTestCase sortedLambdaOtherLambdaSorted() {
    +        final Comparator first = Film$.length;
    +        final Comparator second = Comparator.comparing(Film::getTitle); 
    +        
    +        final Pipeline sorted2OtherSorted2 = createPipeline(
    +                operationFactory.createSorted(first), operationFactory.createSorted(second),
    +                operationFactory.createLimit(1),
    +                operationFactory.createSorted(second), operationFactory.createSorted(first)
    +        );
    +
    +
    +        final Pipeline sorted2OtherSorted2Expected = createPipeline(
    +                operationFactory.createSorted(first), operationFactory.createSorted(second),
    +                operationFactory.createLimit(1),
    +                operationFactory.createSorted(second), operationFactory.createSorted(first)
    +        );
    +
    +        return new PipelineTestCase<>("Sorted, Lambda, Other, Lambda, Sorted", sorted2OtherSorted2, sorted2OtherSorted2Expected);
    +    }
    +
         @Override
         @SuppressWarnings({"rawtypes", "unchecked"})
         protected void assertArguments(Object[] expected, Object[] actual) {
    @@ -124,7 +146,10 @@ protected void assertArguments(Object[] expected, Object[] actual) {
                 final Comparator expectedPredicate = (Comparator) expected[0];
                 final Comparator actualPredicate = (Comparator) actual[0];
     
    -            assertEquals(expectedPredicate.compare(null, null), actualPredicate.compare(null, null));
    +            final Film film1 = new Film((short) 1, "Titanic", "A film about a boat.");
    +            final Film film2 = new Film((short) 2, "Star Wars", "A film about war in space.");
    +            
    +            assertEquals(expectedPredicate.compare(film1, film2), actualPredicate.compare(film1, film2));
             } else {
                 super.assertArguments(expected, actual);
             }
    diff --git a/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/SortedCriteriaModifier.java b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/SortedCriteriaModifier.java
    index 30c9dfba..3c5d092d 100644
    --- a/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/SortedCriteriaModifier.java
    +++ b/jpastreamer.provider/jpastreamer.merger.standard/src/main/java/com/speedment/jpastreamer/merger/standard/internal/criteria/strategy/SortedCriteriaModifier.java
    @@ -81,7 +81,7 @@ public  void modifyCriteria(
                 criteria.getQuery().orderBy(previousOrders);
     
                 /*
    -            * If a Stream::sorted sequence contains a operation without a specified comparator
    +            * If a Stream::sorted sequence contains an operation without a specified comparator
                 * we cannot squash that sequence into a single operation. Because of this, we should
                 * only mark the operation as merged if it's the last one in the sequence.
                 * */
    
    From de0fe87529522a6ce8848dac322f0126a023ba07 Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Mon, 10 Jul 2023 17:14:02 +0200
    Subject: [PATCH 28/29] Improve reordering and add complementary tests
    
    ---
     .../integration/test/ReorderTest.java         | 84 +++++++++++++++++--
     ...IntermediateOperationOptimizerFactory.java |  4 +-
     .../MoveAnonymousLambdaOperations.java        | 44 ++++++----
     .../MoveAnonymousLambdaOperationsTest.java    | 41 +++++++--
     4 files changed, 141 insertions(+), 32 deletions(-)
    
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    index b00db739..d93744a9 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    @@ -15,7 +15,7 @@ public class ReorderTest extends JPAStreamerTest {
     
         @Test
         void reorderTest1() {
    -        
    +
             try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
                 final List actual = supplier.stream()
                         .filter(f -> f.getLength() > 120)
    @@ -23,20 +23,20 @@ void reorderTest1() {
                         .filter(Film$.title.startsWith("A"))
                         .distinct()
                         .collect(Collectors.toList());
    -            
    +
                 final List expected = supplier.stream()
                         .filter(f -> f.getLength() > 120)
                         .sorted(Comparator.comparing(Film::getLength))
                         .filter(f -> f.getTitle().startsWith("A"))
                         .distinct()
                         .collect(Collectors.toList());
    -            
    -            assertEquals(expected, actual); 
    +
    +            assertEquals(expected, actual);
             }
    -        
    +
         }
    -    
    -    @Test 
    +
    +    @Test
         void reorderTest2() {
     
             try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    @@ -58,7 +58,7 @@ void reorderTest2() {
     
                 assertEquals(expected, actual);
             }
    -        
    +
         }
     
         @Test
    @@ -243,4 +243,72 @@ void reorderTest9() {
             }
     
         }
    +
    +    @Test
    +    void reorderTest10() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .filter(Film$.length.greaterThan(120))
    +                    .filter(Film$.title.startsWith("A"))
    +                    .filter(Film$.rating.equal("PG-13"))
    +                    .distinct()
    +                    .sorted(Film$.length)
    +                    .skip(10)
    +                    .sorted(Film$.title)
    +                    .filter(Film$.filmId.greaterThan(20))
    +                    .map(Film$.title)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .filter(f -> f.getTitle().startsWith("A"))
    +                    .filter(f -> f.getRating().equals("PG-13"))
    +                    .distinct()
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .skip(10)
    +                    .sorted(Comparator.comparing(Film::getTitle))
    +                    .filter(f -> f.getFilmId() > 20)
    +                    .map(Film::getTitle)
    +                    .limit(10)
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +    }
    +
    +    @Test
    +    void reorderTest11() {
    +
    +        try (StreamSupplier supplier = jpaStreamer.createStreamSupplier(Film.class)) {
    +            final List actual = supplier.stream()
    +                    .filter(Film$.length.greaterThan(120))
    +                    .filter(Film$.title.startsWith("A"))
    +                    .distinct()
    +                    .sorted(Film$.length)
    +                    .filter(Film$.rating.equal("PG-13"))
    +                    .skip(10)
    +                    .sorted(Film$.title)
    +                    .filter(Film$.filmId.greaterThan(20))
    +                    .map(Film$.title)
    +                    .limit(40)
    +                    .collect(Collectors.toList());
    +
    +            final List expected = supplier.stream()
    +                    .filter(f -> f.getLength() > 120)
    +                    .filter(f -> f.getTitle().startsWith("A"))
    +                    .distinct()
    +                    .sorted(Comparator.comparing(Film::getLength))
    +                    .filter(f -> f.getRating().equals("PG-13"))
    +                    .skip(10)
    +                    .sorted(Comparator.comparing(Film::getTitle))
    +                    .filter(f -> f.getFilmId() > 20)
    +                    .map(Film::getTitle)
    +                    .limit(40)
    +                    .collect(Collectors.toList());
    +
    +            assertEquals(expected, actual);
    +        }
    +    }
     }
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java
    index bfa4bf44..9b2126e3 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/InternalIntermediateOperationOptimizerFactory.java
    @@ -42,13 +42,13 @@ public InternalIntermediateOperationOptimizerFactory() {
             intermediateOperationOptimizers.put(Priority.LOW, new ArrayList<>());
             intermediateOperationOptimizers.put(Priority.LOWEST, new ArrayList<>());
     
    -        registerOptimizer(new RemoveOrderAffectingOperations(), Priority.HIGH);
    +        registerOptimizer(new RemoveOrderAffectingOperations(), Priority.HIGHEST);
    +        registerOptimizer(new MoveAnonymousLambdaOperations(), Priority.HIGH);
             registerOptimizer(new SquashSkip(intermediateOperationFactory));
             registerOptimizer(new SquashLimit(intermediateOperationFactory));
             registerOptimizer(new SquashFilter<>(intermediateOperationFactory));
             registerOptimizer(new SquashSorted<>(intermediateOperationFactory));
             registerOptimizer(new SquashDistinct(intermediateOperationFactory));
    -        registerOptimizer(new MoveAnonymousLambdaOperations(), Priority.LOWEST);
         }
     
         @Override
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    index 1583cd4b..54eb2f73 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/main/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperations.java
    @@ -20,14 +20,15 @@ public  Pipeline optimize(Pipeline pipeline) {
             LinkedList> optimizedOperations = new LinkedList<>(); 
             for (int i = 0; i < intermediateOperations.size(); i++) {
                 final IntermediateOperation intermediateOperation = intermediateOperations.get(i); 
    -            if (i == 0 || !movable(intermediateOperation.type())) {
    +            if (i == 0 
    +                    || !movable(intermediateOperation)) {
                     optimizedOperations.add(intermediateOperation); 
                     continue; 
                 }
    -            int position = optimizedOperations.size(); // default - end of list 
    +            int position = optimizedOperations.size(); // default placement - end of list 
                 for(int j = optimizedOperations.size() - 1; j >= 0; j--) {
                     final IntermediateOperation currentOperation = optimizedOperations.get((j)); 
    -                if(swappable(intermediateOperation.type(), currentOperation.type()) && anonymousLambda(currentOperation)) {
    +                if(shouldSwap(intermediateOperation, currentOperation)) {
                         position = j; 
                     } else {
                         break; 
    @@ -49,29 +50,38 @@ public  Pipeline optimize(Pipeline pipeline) {
             return pipeline;
         }
         
    -    private boolean movable(final IntermediateOperationType type) {
    -        return type == FILTER || type == SORTED || type == DISTINCT; 
    +    private boolean movable(final IntermediateOperation operation) {
    +        final IntermediateOperationType type = operation.type();
    +        return (type == FILTER || type == SORTED || type == DISTINCT) && jpaStreamerOperator(operation); 
         }
     
    -    private boolean swappable(final IntermediateOperationType type, final IntermediateOperationType nextType) {
    -        // Anonymous sorts and lambdas can be swapped with a distinct operator to allow the inclusion 
    -        // of the distinct operation in the query.
    -        if (type == FILTER) {
    -            return nextType == FILTER || nextType == SORTED || nextType == DISTINCT;
    -        } else if (type == SORTED) {
    -            return nextType == FILTER || nextType == DISTINCT;
    -        } else if (type == DISTINCT) {
    -            return nextType == FILTER || nextType == SORTED; 
    +    private boolean shouldSwap(final IntermediateOperation operation, final IntermediateOperation nextOperation) {
    +        final IntermediateOperationType type = operation.type();
    +        final IntermediateOperationType nextType = nextOperation.type();
    +        final boolean jpaStreamerOperation = jpaStreamerOperator(nextOperation);
    +        switch (type) {
    +            case FILTER:
    +                if (nextType == SORTED || nextType == DISTINCT) {
    +                    return true; 
    +                } else if (nextType == FILTER) {
    +                    return !jpaStreamerOperation;
    +                } 
    +                return false; 
    +            case SORTED:
    +                return (nextType == FILTER || nextType == DISTINCT) && !jpaStreamerOperation;
    +            case DISTINCT:
    +                return (nextType == FILTER || nextType == SORTED) && !jpaStreamerOperation;
    +            default:
    +                return false;
             }
    -        return false; 
         }
         
    -    private boolean anonymousLambda(final IntermediateOperation operation) {
    +    private boolean jpaStreamerOperator(final IntermediateOperation operation) {
             if (operation.type() == DISTINCT){
                 return true;
             }
             final Object[] arguments = operation.arguments();
    -        return !(arguments != null && (arguments[0] instanceof SpeedmentPredicate || arguments[0] instanceof Field));
    +        return (arguments != null && (arguments[0] instanceof SpeedmentPredicate || arguments[0] instanceof Field));
         }
         
     }
    diff --git a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperationsTest.java b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperationsTest.java
    index 9cc00797..162dedec 100644
    --- a/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperationsTest.java
    +++ b/jpastreamer.provider/jpastreamer.interopoptimizer.standard/src/test/java/com/speedment/jpastreamer/interopoptimizer/standard/internal/strategy/MoveAnonymousLambdaOperationsTest.java
    @@ -26,7 +26,8 @@ protected Stream> pipelines() {
                     test7(), 
                     test8(),
                     test9(),
    -                test10()
    +                test10(),
    +                test11()
             );
         }
     
    @@ -151,10 +152,10 @@ private PipelineTestCase test7() {
     
             final Pipeline optimized = createPipeline(
                     iof.createFilter(Film$.length.greaterThan((short) 120)),
    -                iof.createSorted(Comparator.comparing(Object::toString)),
    -                iof.createSorted(Film$.length),
                     iof.acquireDistinct(),
    -                iof.createFilter(f -> f.equals("b"))
    +                iof.createFilter(f -> f.equals("b")),
    +                iof.createSorted(Comparator.comparing(Object::toString)),
    +                iof.createSorted(Film$.length)
             );
     
             return new PipelineTestCase<>("Reorder Test 7", unoptimized, optimized);
    @@ -220,5 +221,35 @@ private PipelineTestCase test10() {
     
             return new PipelineTestCase<>("Reorder Test 10", unoptimized, optimized);
         }
    -    
    +
    +    private PipelineTestCase test11() {
    +        final Pipeline unoptimized = createPipeline(
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createFilter(Film$.title.startsWith("A")),
    +                iof.acquireDistinct(),
    +                iof.createSorted(Film$.length),
    +                iof.createFilter(Film$.rating.equal("PG-13")),
    +                iof.createSkip(10),
    +                iof.createSorted(Film$.title),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createMap(Film$.title),
    +                iof.createLimit(40)
    +        );
    +
    +        final Pipeline optimized = createPipeline(
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createFilter(Film$.title.startsWith("A")),
    +                iof.createFilter(Film$.rating.equal("PG-13")),
    +                iof.acquireDistinct(),
    +                iof.createSorted(Film$.length),
    +                iof.createSkip(10),
    +                iof.createFilter(Film$.length.greaterThan((short) 120)),
    +                iof.createSorted(Film$.title),
    +                iof.createMap(Film$.title),
    +                iof.createLimit(40)
    +        );
    +
    +        return new PipelineTestCase<>("Reorder Test 11", unoptimized, optimized);
    +    }
    +
     }
    
    From d1d3dbbde1ac80ead320a9a97190a06b157eed0f Mon Sep 17 00:00:00 2001
    From: Julia Gustafsson 
    Date: Mon, 10 Jul 2023 17:18:32 +0200
    Subject: [PATCH 29/29] Prepare for version bump to 3.0.3
    
    ---
     integration-tests/pom.xml                          | 14 ++++++++++++++
     integration-tests/src/main/java/Hello.java         | 12 ++++++++++++
     .../jpastreamer/integration/test/CountTest.java    | 12 ++++++++++++
     .../integration/test/JPAStreamerTest.java          | 12 ++++++++++++
     .../integration/test/ManyToManyTest.java           | 12 ++++++++++++
     .../integration/test/ManyToOneTest.java            | 12 ++++++++++++
     .../integration/test/MapCustomClassTest.java       | 12 ++++++++++++
     .../jpastreamer/integration/test/MapToIntTest.java | 12 ++++++++++++
     .../integration/test/OneToManyTest.java            | 12 ++++++++++++
     .../integration/test/PaginationTest.java           | 12 ++++++++++++
     .../integration/test/PartitionTest.java            | 12 ++++++++++++
     .../jpastreamer/integration/test/PivotTest.java    | 12 ++++++++++++
     .../integration/test/ProjectionTest.java           | 12 ++++++++++++
     .../jpastreamer/integration/test/ReorderTest.java  | 12 ++++++++++++
     .../jpastreamer/integration/test/SquashTest.java   | 12 ++++++++++++
     .../jpastreamer/integration/test/TermOpTest.java   | 12 ++++++++++++
     .../jpastreamer/integration/test/UnionTest.java    | 12 ++++++++++++
     .../jpastreamer/integration/test/model/Actor.java  | 12 ++++++++++++
     .../jpastreamer/integration/test/model/Film.java   | 12 ++++++++++++
     .../integration/test/model/Language.java           | 12 ++++++++++++
     .../integration/test/model/groups/GroupA.java      | 12 ++++++++++++
     .../integration/test/model/groups/GroupB.java      | 12 ++++++++++++
     .../src/test/resources/META-INF/persistence.xml    | 14 ++++++++++++++
     .../strategy/MoveAnonymousLambdaOperations.java    | 12 ++++++++++++
     .../internal/strategy/InternalOptimizerTest.java   | 12 ++++++++++++
     .../MoveAnonymousLambdaOperationsTest.java         | 12 ++++++++++++
     ...ndardTerminalOperationOptimizerFactoryTest.java | 12 ++++++++++++
     .../standard/internal/CountTest.java               | 12 ++++++++++++
     .../StandardTerminalOperationOptimizerTest.java    | 12 ++++++++++++
     29 files changed, 352 insertions(+)
    
    diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
    index 9be5a510..e9f5614b 100644
    --- a/integration-tests/pom.xml
    +++ b/integration-tests/pom.xml
    @@ -1,3 +1,17 @@
    +
     
         
    diff --git a/integration-tests/src/main/java/Hello.java b/integration-tests/src/main/java/Hello.java
    index ab56e8ee..133d79e0 100644
    --- a/integration-tests/src/main/java/Hello.java
    +++ b/integration-tests/src/main/java/Hello.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     public class Hello {
     
         public static void main(String[] args) {
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java
    index fd55bb72..c34adee2 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/CountTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.application.JPAStreamer;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/JPAStreamerTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/JPAStreamerTest.java
    index cd0ead44..c8152939 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/JPAStreamerTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/JPAStreamerTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.application.JPAStreamer;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToManyTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToManyTest.java
    index e686de1a..aeaaa238 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToManyTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToManyTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.integration.test.model.Actor;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToOneTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToOneTest.java
    index c97cd5ef..8b86763a 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToOneTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ManyToOneTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.integration.test.model.Film;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapCustomClassTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapCustomClassTest.java
    index b3a7e404..e279cb89 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapCustomClassTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapCustomClassTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.integration.test.model.Film;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapToIntTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapToIntTest.java
    index 804902a9..4a190132 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapToIntTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/MapToIntTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.integration.test.model.Film;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/OneToManyTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/OneToManyTest.java
    index 9e4f1110..ec7af671 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/OneToManyTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/OneToManyTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.integration.test.model.Film;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PaginationTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PaginationTest.java
    index 350cd0e5..f4da0530 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PaginationTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PaginationTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.application.StreamSupplier;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PartitionTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PartitionTest.java
    index b4107f34..a4f9ba04 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PartitionTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PartitionTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.application.StreamSupplier;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PivotTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PivotTest.java
    index cc3aa56f..10e46e6e 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PivotTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/PivotTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.integration.test.model.Actor;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ProjectionTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ProjectionTest.java
    index 6df3fe45..dfd4796e 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ProjectionTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ProjectionTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.application.StreamSupplier;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    index d93744a9..eb5ce426 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/ReorderTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.application.StreamSupplier;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java
    index 7ede1535..6e414666 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/SquashTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.application.StreamSupplier;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/TermOpTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/TermOpTest.java
    index 0231c7df..b850a209 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/TermOpTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/TermOpTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.integration.test.model.Film;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/UnionTest.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/UnionTest.java
    index 7dcede93..65019f33 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/UnionTest.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/UnionTest.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test;
     
     import com.speedment.jpastreamer.application.JPAStreamer;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Actor.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Actor.java
    index 7120af01..290f21f1 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Actor.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Actor.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test.model;
     
     import jakarta.persistence.*;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Film.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Film.java
    index 9a1b40e1..1661a8fd 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Film.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Film.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test.model;
     
     import com.speedment.jpastreamer.integration.test.model.groups.GroupA;
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Language.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Language.java
    index 1ac0becd..5bdf45d6 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Language.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/Language.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test.model;
     
     
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupA.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupA.java
    index 50ded61a..90b5e2f7 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupA.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupA.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test.model.groups;
     
     public interface GroupA {
    diff --git a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupB.java b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupB.java
    index bc25413b..daf01777 100644
    --- a/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupB.java
    +++ b/integration-tests/src/test/java/com/speedment/jpastreamer/integration/test/model/groups/GroupB.java
    @@ -1,3 +1,15 @@
    +/*
    + * JPAstreamer - Express JPA queries with Java Streams
    + * Copyright (c) 2020-2022, Speedment, Inc. All Rights Reserved.
    + *
    + * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
    + *
    + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    + * See the GNU Lesser General Public License for more details.
    + *
    + * See: https://github.com/speedment/jpa-streamer/blob/master/LICENSE
    + */
     package com.speedment.jpastreamer.integration.test.model.groups;
     public interface GroupB {
     }
    diff --git a/integration-tests/src/test/resources/META-INF/persistence.xml b/integration-tests/src/test/resources/META-INF/persistence.xml
    index 97bce3bb..f707a062 100644
    --- a/integration-tests/src/test/resources/META-INF/persistence.xml
    +++ b/integration-tests/src/test/resources/META-INF/persistence.xml
    @@ -1,4 +1,18 @@
     
    +