diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 9f79cc9c2..35ed6d6a0 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -14,12 +14,12 @@ 1.0 - 1.0 - 12.4.0 + 1.1 + 12.11.0 4.1 7.0 - 12.10.0 - 12.10.0 + 12.11.0 + 12.11.0 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index cfac597fa..3426582d3 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -52,13 +52,13 @@ io.avaje classpath-scanner - 4.2 + 6.0 io.ebean ebean-migration-auto - 1.0 + 1.1 diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index 4aa90ad13..d21f9967f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -397,6 +397,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { if (dbSchema != null) { migrationRunner.setDefaultDbSchema(dbSchema); } + migrationRunner.setPlatform(config.getDatabasePlatform().getPlatform().base().name().toLowerCase()); migrationRunner.loadProperties(config.getProperties()); migrationRunner.run(config.getDataSource()); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java index f7c1a5fea..aba5533e0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java @@ -1,6 +1,5 @@ package io.ebeaninternal.server.core.bootup; -import io.avaje.classpath.scanner.ClassFilter; import io.ebean.annotation.DocStore; import io.ebean.config.DatabaseConfig; import io.ebean.config.IdGenerator; @@ -27,27 +26,23 @@ import javax.persistence.Embeddable; import javax.persistence.Entity; import javax.persistence.Table; import java.lang.annotation.Annotation; -import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; +import java.util.function.Predicate; /** * Interesting classes for a EbeanServer such as Embeddable, Entity, * ScalarTypes, Finders, Listeners and Controllers. */ -public class BootupClasses implements ClassFilter { +public class BootupClasses implements Predicate> { private static final Logger logger = LoggerFactory.getLogger(BootupClasses.class); private final List> embeddableList = new ArrayList<>(); - private final List> entityList = new ArrayList<>(); - private final List>> scalarTypeList = new ArrayList<>(); - private final List>> scalarConverterList = new ArrayList<>(); - private final List>> attributeConverterList = new ArrayList<>(); // The following objects are instantiated on first request @@ -55,19 +50,12 @@ public class BootupClasses implements ClassFilter { // instance list, that holds the instance. Once a class is instantiated // (or added) it will get removed from the candidate list private final List> idGeneratorCandidates = new ArrayList<>(); - private final List> beanPersistControllerCandidates = new ArrayList<>(); - private final List> beanPostLoadCandidates = new ArrayList<>(); - private final List> beanPostConstructListenerCandidates = new ArrayList<>(); - private final List> beanFindControllerCandidates = new ArrayList<>(); - private final List> beanPersistListenerCandidates = new ArrayList<>(); - private final List> beanQueryAdapterCandidates = new ArrayList<>(); - private final List> serverConfigStartupCandidates = new ArrayList<>(); private final List idGeneratorInstances = new ArrayList<>(); @@ -98,7 +86,7 @@ public class BootupClasses implements ClassFilter { public BootupClasses(List> list) { if (list != null) { for (Class cls : list) { - isMatch(cls); + test(cls); } } } @@ -188,13 +176,11 @@ public class BootupClasses implements ClassFilter { } public void addChangeLogInstances(DatabaseConfig config) { - readAuditPrepare = config.getReadAuditPrepare(); readAuditLogger = config.getReadAuditLogger(); changeLogPrepare = config.getChangeLogPrepare(); changeLogListener = config.getChangeLogListener(); changeLogRegister = config.getChangeLogRegister(); - // if not already set create the implementations found // via classpath scanning if (readAuditPrepare == null && readAuditPrepareClass != null) { @@ -341,18 +327,14 @@ public class BootupClasses implements ClassFilter { } @Override - public boolean isMatch(Class cls) { - + public boolean test(Class cls) { if (isEmbeddable(cls)) { embeddableList.add(cls); - } else if (isEntity(cls)) { entityList.add(cls); - } else { return isInterestingInterface(cls); } - return true; } @@ -364,7 +346,6 @@ public class BootupClasses implements ClassFilter { */ @SuppressWarnings("unchecked") private boolean isInterestingInterface(Class cls) { - if (Modifier.isAbstract(cls.getModifiers())) { // do not include abstract classes as we can // not instantiate them diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index d7267945e..4035af5f2 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -22,7 +22,7 @@ io.ebean ebean-migration - 12.4.0 + 12.11.0 diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java index 7f2a90558..5bb40fa08 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java @@ -281,7 +281,7 @@ public class DefaultDbMigration implements DbMigration { public String generateMigration() throws IOException { final String version = generateMigrationFor(false); if (includeIndex) { - generateIndex(version); + generateIndex(); } return version; } @@ -289,15 +289,14 @@ public class DefaultDbMigration implements DbMigration { /** * Generate the {@code idx_platform.migrations} file. */ - private void generateIndex(String version) throws IOException { - final boolean overwrite = version != null; + private void generateIndex() throws IOException { final File topDir = migrationDirectory(false); if (!platforms.isEmpty()) { for (Pair pair : platforms) { - new IndexMigration(topDir, pair).generate(overwrite); + new IndexMigration(topDir, pair).generate(); } } else { - new IndexMigration(topDir, databasePlatform).generate(overwrite); + new IndexMigration(topDir, databasePlatform).generate(); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/IndexMigration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/IndexMigration.java index 215c18e72..baedb77b9 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/IndexMigration.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/IndexMigration.java @@ -43,10 +43,7 @@ class IndexMigration { return new File(topDir, name); } - void generate(boolean overwrite) throws IOException { - if (!overwrite && indexFile.exists()) { - return; - } + void generate() throws IOException { readSqlFiles(topDir); generateIndex(); } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/IndexMigrationTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/IndexMigrationTest.java index 5a04d8917..a22a42ec7 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/IndexMigrationTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/IndexMigrationTest.java @@ -24,7 +24,7 @@ public class IndexMigrationTest { } DatabasePlatform pg = new PostgresPlatform(); IndexMigration indexMigration = new IndexMigration(topDir, pg); - indexMigration.generate(true); + indexMigration.generate(); File expected = new File(topDir, "idx_postgres.migrations"); @@ -48,7 +48,7 @@ public class IndexMigrationTest { } DatabasePlatform pg = new H2Platform(); IndexMigration indexMigration = new IndexMigration(topDir, pg); - indexMigration.generate(true); + indexMigration.generate(); File expected = new File(topDir, "idx_h2.migrations"); assertThat(expected).exists(); diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 0ce9ce6ca..3f0b71546 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -45,7 +45,7 @@ io.avaje classpath-scanner - 4.2 + 6.0 diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/XmlMappingReader.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/XmlMappingReader.java index 2519ef8f1..8b28975ef 100644 --- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/XmlMappingReader.java +++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/XmlMappingReader.java @@ -6,7 +6,6 @@ import io.ebeaninternal.xmlmapping.model.XmEbean; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -59,7 +58,7 @@ public class XmlMappingReader { try { List mappings = new ArrayList<>(); for (Resource xmlMappingRes : resourceList) { - try (InputStream is = new FileInputStream(xmlMappingRes.getLocationOnDisk())) { + try (InputStream is = xmlMappingRes.inputStream()) { mappings.add(XmlMappingReader.read(is)); } }