diff --git a/.github/workflows/build-and-test-2.13.yml b/.github/workflows/build-and-test-2.13.yml
index 20a4d5ff4a51..92aa2f3fa671 100644
--- a/.github/workflows/build-and-test-2.13.yml
+++ b/.github/workflows/build-and-test-2.13.yml
@@ -25,7 +25,7 @@ jobs:
java-version: '11'
cache: 'maven'
- name: Set Scala version
- run: ./build/change-scala-version.sh 2.13
+ run: ./build/scripts/change-scala-version.sh 2.13
- name: Build with Maven
run: ./build/mvn clean install $MAVEN_CLI_OPTS -DskipTests -T4
- name: Unit tests
diff --git a/.github/workflows/integration-tests-2.13.yml b/.github/workflows/integration-tests-2.13.yml
index 7ba1454be812..bb34bbbd8216 100644
--- a/.github/workflows/integration-tests-2.13.yml
+++ b/.github/workflows/integration-tests-2.13.yml
@@ -25,7 +25,7 @@ jobs:
java-version: '11'
cache: 'maven'
- name: Set Scala version
- run: ./build/change-scala-version.sh 2.13
+ run: ./build/scripts/change-scala-version.sh 2.13
- name: Build with Maven
run: ./build/mvn clean install $MAVEN_CLI_OPTS -DskipTests -T4
- name: Integration Tests
diff --git a/README.md b/README.md
index d619db5807eb..c91cce439c94 100644
--- a/README.md
+++ b/README.md
@@ -198,7 +198,7 @@ To run unit tests, omit the `-DskipTests` (note: requires `docker` to be availab
GeoMesa also provides experimental support for the [Bloop](https://scalacenter.github.io/bloop/) compile server,
which provides fast incremental compilation. To export the GeoMesa build to Bloop, run:
- ./build/bloop-export.sh
+ ./build/scripts/bloop-export.sh
For more information on using Bloop, refer to the
[Bloop documentation](https://scalacenter.github.io/bloop/docs/build-tools/maven).
@@ -221,7 +221,7 @@ environment variable to point to the root of your JDK. Example from a Mac:
To build for a different Scala version (e.g. 2.13), run the following script, then build as normal:
- ./build/change-scala-version.sh 2.13
+ ./build/scripts/change-scala-version.sh 2.13
### Building on OS X
diff --git a/build/cyclonedx-settings.xml b/build/cyclonedx-settings.xml
deleted file mode 100644
index a8a9afe475d4..000000000000
--- a/build/cyclonedx-settings.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
- cyclonedx
-
-
-
- central
- Maven Repository Switchboard
- default
- https://repo1.maven.org/maven2
-
- false
-
-
-
-
- osgeo
- https://repo.osgeo.org/repository/release
-
- false
-
-
-
-
- confluent
- https://packages.confluent.io/maven/
-
-
-
- locationtech-snapshots
- https://repo.eclipse.org/content/groups/snapshots
-
- false
-
-
- true
-
-
-
-
- osgeo-snapshots
- https://repo.osgeo.org/repository/snapshot
-
- false
-
-
- true
-
-
-
-
-
-
-
diff --git a/build/gt-30-api-changes.sed b/build/gt-30-api-changes.sed
deleted file mode 100644
index 4e85071402b2..000000000000
--- a/build/gt-30-api-changes.sed
+++ /dev/null
@@ -1,188 +0,0 @@
-# run with: find . -name "*.scala" -not -exec grep -q "import org.geotools.api.data._" {} \; -exec sed -E -i -f gt-30-api-changes.sed {} \;
-
-s/org\.geotools\.data\.DataStore/org.geotools.api.data.DataStore/g
-s/(import org\.geotools\.data\.)\{DataStore, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.DataStore\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), DataStore\}/import org.geotools.api.data.DataStore\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), DataStore, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.DataStore\n\1{\2, \3}/
-
-s/org\.geotools\.data\.Parameter/org.geotools.api.data.Parameter/g
-s/(import org\.geotools\.data\.)\{Parameter, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Parameter\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Parameter\}/import org.geotools.api.data.Parameter\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Parameter, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Parameter\n\1{\2, \3}/
-
-s/org.geotools.data.DataStoreFactorySpi/org.geotools.api.data.DataStoreFactorySpi/g
-s/(import org\.geotools\.data\.)\{DataStoreFactorySpi, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.DataStoreFactorySpi\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), DataStoreFactorySpi\}/import org.geotools.api.data.DataStoreFactorySpi\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), DataStoreFactorySpi, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.DataStoreFactorySpi\n\1{\2, \3}/
-
-s/org.geotools.data.DataStoreFinder/org.geotools.api.data.DataStoreFinder/g
-s/(import org\.geotools\.data\.)\{DataStoreFinder, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.DataStoreFinder\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), DataStoreFinder\}/import org.geotools.api.data.DataStoreFinder\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), DataStoreFinder, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.DataStoreFinder\n\1{\2, \3}/
-
-s/org.geotools.data.DelegatingFeatureReader/org.geotools.api.data.DelegatingFeatureReader/g
-s/(import org\.geotools\.data\.)\{DelegatingFeatureReader, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.DelegatingFeatureReader\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), DelegatingFeatureReader\}/import org.geotools.api.data.DelegatingFeatureReader\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), DelegatingFeatureReader, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.DelegatingFeatureReader\n\1{\2, \3}/
-
-s/org.geotools.data.FeatureEvent/org.geotools.api.data.FeatureEvent/g
-s/(import org\.geotools\.data\.)\{FeatureEvent, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureEvent\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureEvent\}/import org.geotools.api.data.FeatureEvent\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureEvent, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureEvent\n\1{\2, \3}/
-
-s/org.geotools.data.FeatureListener/org.geotools.api.data.FeatureListener/g
-s/(import org\.geotools\.data\.)\{FeatureListener, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureListener\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureListener\}/import org.geotools.api.data.FeatureListener\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureListener, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureListener\n\1{\2, \3}/
-
-s/org.geotools.data.FeatureLock/org.geotools.api.data.FeatureLock/g
-s/(import org\.geotools\.data\.)\{FeatureLock, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureLock\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureLock\}/import org.geotools.api.data.FeatureLock\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureLock, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureLock\n\1{\2, \3}/
-
-s/org.geotools.data.FeatureLocking/org.geotools.api.data.FeatureLocking/g
-s/(import org\.geotools\.data\.)\{FeatureLocking, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureLocking\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureLocking\}/import org.geotools.api.data.FeatureLocking\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureLocking, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureLocking\n\1{\2, \3}/
-
-s/org.geotools.data.FeatureReader/org.geotools.api.data.FeatureReader/g
-s/(import org\.geotools\.data\.)\{FeatureReader, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureReader\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureReader\}/import org.geotools.api.data.FeatureReader\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureReader, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureReader\n\1{\2, \3}/
-
-s/org.geotools.data.FeatureSource/org.geotools.api.data.FeatureSource/g
-s/(import org\.geotools\.data\.)\{FeatureSource, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureSource\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureSource\}/import org.geotools.api.data.FeatureSource\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureSource, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureSource\n\1{\2, \3}/
-
-s/org.geotools.data.FeatureStore/org.geotools.api.data.FeatureStore/g
-s/(import org\.geotools\.data\.)\{FeatureStore, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureStore\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureStore\}/import org.geotools.api.data.FeatureStore\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureStore, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureStore\n\1{\2, \3}/
-
-s/org.geotools.data.FeatureWriter/org.geotools.api.data.FeatureWriter/g
-s/(import org\.geotools\.data\.)\{FeatureWriter, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureWriter\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureWriter\}/import org.geotools.api.data.FeatureWriter\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FeatureWriter, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FeatureWriter\n\1{\2, \3}/
-
-s/org.geotools.data.FileDataStore/org.geotools.api.data.FileDataStore/g
-s/(import org\.geotools\.data\.)\{FileDataStore, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FileDataStore\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FileDataStore\}/import org.geotools.api.data.FileDataStore\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FileDataStore, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FileDataStore\n\1{\2, \3}/
-
-s/org.geotools.data.FileDataStoreFactorySpi/org.geotools.api.data.FileDataStoreFactorySpi/g
-s/(import org\.geotools\.data\.)\{FileDataStoreFactorySpi, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FileDataStoreFactorySpi\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FileDataStoreFactorySpi\}/import org.geotools.api.data.FileDataStoreFactorySpi\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FileDataStoreFactorySpi, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FileDataStoreFactorySpi\n\1{\2, \3}/
-
-s/org.geotools.data.FileStoreFactory/org.geotools.api.data.FileStoreFactory/g
-s/(import org\.geotools\.data\.)\{FileStoreFactory, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FileStoreFactory\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FileStoreFactory\}/import org.geotools.api.data.FileStoreFactory\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), FileStoreFactory, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.FileStoreFactory\n\1{\2, \3}/
-
-s/org.geotools.data.Join/org.geotools.api.data.Join/g
-s/(import org\.geotools\.data\.)\{Join, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Join\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Join\}/import org.geotools.api.data.Join\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Join, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Join\n\1{\2, \3}/
-
-s/org.geotools.data.LockingManager/org.geotools.api.data.LockingManager/g
-s/(import org\.geotools\.data\.)\{LockingManager, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.LockingManager\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), LockingManager\}/import org.geotools.api.data.LockingManager\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), LockingManager, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.LockingManager\n\1{\2, \3}/
-
-s/org.geotools.data.Parameter/org.geotools.api.data.Parameter/g
-s/(import org\.geotools\.data\.)\{Parameter, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Parameter\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Parameter\}/import org.geotools.api.data.Parameter\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Parameter, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Parameter\n\1{\2, \3}/
-
-s/org.geotools.data.Query/org.geotools.api.data.Query/g
-s/(import org\.geotools\.data\.)\{Query, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Query\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Query\}/import org.geotools.api.data.Query\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Query, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Query\n\1{\2, \3}/
-
-s/org.geotools.data.QueryCapabilities/org.geotools.api.data.QueryCapabilities/g
-s/(import org\.geotools\.data\.)\{QueryCapabilities, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.QueryCapabilities\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), QueryCapabilities\}/import org.geotools.api.data.QueryCapabilities\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), QueryCapabilities, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.QueryCapabilities\n\1{\2, \3}/
-
-s/org.geotools.data.Repository/org.geotools.api.data.Repository/g
-s/(import org\.geotools\.data\.)\{Repository, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Repository\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Repository\}/import org.geotools.api.data.Repository\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Repository, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Repository\n\1{\2, \3}/
-
-s/org.geotools.data.ResourceInfo/org.geotools.api.data.ResourceInfo/g
-s/(import org\.geotools\.data\.)\{ResourceInfo, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.ResourceInfo\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), ResourceInfo\}/import org.geotools.api.data.ResourceInfo\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), ResourceInfo, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.ResourceInfo\n\1{\2, \3}/
-
-s/org.geotools.data.ServiceInfo/org.geotools.api.data.ServiceInfo/g
-s/(import org\.geotools\.data\.)\{ServiceInfo, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.ServiceInfo\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), ServiceInfo\}/import org.geotools.api.data.ServiceInfo\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), ServiceInfo, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.ServiceInfo\n\1{\2, \3}/
-
-s/org.geotools.data.Transaction/org.geotools.api.data.Transaction/g
-s/(import org\.geotools\.data\.)\{Transaction, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Transaction\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Transaction\}/import org.geotools.api.data.Transaction\n\1{\2}/
-s/(import org\.geotools\.data\.)\{([a-zA-Z0-9, _]*), Transaction, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.Transaction\n\1{\2, \3}/
-
-s/org.geotools.data.simple.SimpleFeatureReader/org.geotools.api.data.SimpleFeatureReader/g
-s/(import org\.geotools\.data\.simple\.)\{SimpleFeatureReader, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.SimpleFeatureReader\n\1{\2}/
-s/(import org\.geotools\.data\.simple\.)\{([a-zA-Z0-9, _]*), SimpleFeatureReader\}/import org.geotools.api.data.SimpleFeatureReader\n\1{\2}/
-s/(import org\.geotools\.data\.simple\.)\{([a-zA-Z0-9, _]*), SimpleFeatureReader, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.SimpleFeatureReader\n\1{\2, \3}/
-
-s/org.geotools.data.simple.SimpleFeatureSource/org.geotools.api.data.SimpleFeatureSource/g
-s/(import org\.geotools\.data\.simple\.)\{SimpleFeatureSource, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.SimpleFeatureSource\n\1{\2}/
-s/(import org\.geotools\.data\.simple\.)\{([a-zA-Z0-9, _]*), SimpleFeatureSource\}/import org.geotools.api.data.SimpleFeatureSource\n\1{\2}/
-s/(import org\.geotools\.data\.simple\.)\{([a-zA-Z0-9, _]*), SimpleFeatureSource, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.SimpleFeatureSource\n\1{\2, \3}/
-
-s/org.geotools.data.simple.SimpleFeatureStore/org.geotools.api.data.SimpleFeatureStore/g
-s/(import org\.geotools\.data\.simple\.)\{SimpleFeatureStore, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.SimpleFeatureStore\n\1{\2}/
-s/(import org\.geotools\.data\.simple\.)\{([a-zA-Z0-9, _]*), SimpleFeatureStore\}/import org.geotools.api.data.SimpleFeatureStore\n\1{\2}/
-s/(import org\.geotools\.data\.simple\.)\{([a-zA-Z0-9, _]*), SimpleFeatureStore, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.SimpleFeatureStore\n\1{\2, \3}/
-
-s/org.geotools.data.simple.SimpleFeatureWriter/org.geotools.api.data.SimpleFeatureWriter/g
-s/(import org\.geotools\.data\.simple\.)\{SimpleFeatureWriter, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.SimpleFeatureWriter\n\1{\2}/
-s/(import org\.geotools\.data\.simple\.)\{([a-zA-Z0-9, _]*), SimpleFeatureWriter\}/import org.geotools.api.data.SimpleFeatureWriter\n\1{\2}/
-s/(import org\.geotools\.data\.simple\.)\{([a-zA-Z0-9, _]*), SimpleFeatureWriter, ([a-zA-Z0-9, _]*)\}/import org.geotools.api.data.SimpleFeatureWriter\n\1{\2, \3}/
-
-s/(import org\.geotools\.data\.)\{DataStore\}/import org.geotools.api.data.DataStore/
-s/(import org\.geotools\.data\.)\{FeatureLock\}/import org.geotools.api.data.FeatureLock/
-s/(import org\.geotools\.data\.)\{FeatureLocking\}/import org.geotools.api.data.FeatureLocking/
-s/(import org\.geotools\.data\.)\{FeatureReader\}/import org.geotools.api.data.FeatureReader/
-s/(import org\.geotools\.data\.)\{FeatureSource\}/import org.geotools.api.data.FeatureSource/
-s/(import org\.geotools\.data\.)\{FeatureStore\}/import org.geotools.api.data.FeatureStore/
-s/(import org\.geotools\.data\.)\{FeatureWriter\}/import org.geotools.api.data.FeatureWriter/
-s/(import org\.geotools\.data\.)\{FileDataStore\}/import org.geotools.api.data.FileDataStore/
-s/(import org\.geotools\.data\.)\{FileDataStoreFactorySpi\}/import org.geotools.api.data.FileDataStoreFactorySpi/
-s/(import org\.geotools\.data\.)\{FileStoreFactory\}/import org.geotools.api.data.FileStoreFactory/
-s/(import org\.geotools\.data\.)\{Parameter\}/import org.geotools.api.data.Parameter/
-s/(import org\.geotools\.data\.)\{DataStoreFactorySpi\}/import org.geotools.api.data.DataStoreFactorySpi/
-s/(import org\.geotools\.data\.)\{DataStoreFinder\}/import org.geotools.api.data.DataStoreFinder/
-s/(import org\.geotools\.data\.)\{DelegatingFeatureReader\}/import org.geotools.api.data.DelegatingFeatureReader/
-s/(import org\.geotools\.data\.)\{FeatureEvent\}/import org.geotools.api.data.FeatureEvent/
-s/(import org\.geotools\.data\.)\{FeatureListener\}/import org.geotools.api.data.FeatureListener/
-s/(import org\.geotools\.data\.)\{Join\}/import org.geotools.api.data.Join/
-s/(import org\.geotools\.data\.)\{LockingManager\}/import org.geotools.api.data.LockingManager/
-s/(import org\.geotools\.data\.)\{Parameter\}/import org.geotools.api.data.Parameter/
-s/(import org\.geotools\.data\.)\{Query\}/import org.geotools.api.data.Query/
-s/(import org\.geotools\.data\.)\{QueryCapabilities\}/import org.geotools.api.data.QueryCapabilities/
-s/(import org\.geotools\.data\.)\{Repository\}/import org.geotools.api.data.Repository/
-s/(import org\.geotools\.data\.)\{ResourceInfo\}/import org.geotools.api.data.ResourceInfo/
-s/(import org\.geotools\.data\.)\{ServiceInfo\}/import org.geotools.api.data.ServiceInfo/
-s/(import org\.geotools\.data\.)\{Transaction\}/import org.geotools.api.data.Transaction/
-s/(import org\.geotools\.data\.simple\.)\{SimpleFeatureReader\}/import org.geotools.api.data.SimpleFeatureReader/
-s/(import org\.geotools\.data\.simple\.)\{SimpleFeatureSource\}/import org.geotools.api.data.SimpleFeatureSource/
-s/(import org\.geotools\.data\.simple\.)\{SimpleFeatureStore\}/import org.geotools.api.data.SimpleFeatureStore/
-s/(import org\.geotools\.data\.simple\.)\{SimpleFeatureWriter\}/import org.geotools.api.data.SimpleFeatureWriter/
-
-s/import org\.geotools\.data\.\{_\}/import org.geotools.data._/
-s/import org\.geotools\.data\._/\0\nimport org.geotools.api.data._/
-
-s/org\.opengis\.geometry\.BoundingBox/org.geotools.api.geometry.BoundingBox/g
-s/org\.opengis\.geometry\.Geometry/org.locationtech.jts.geom.Geometry/g
-s/FilterFactory2/FilterFactory/g
-s/ReferencedEnvelope\.create/ReferencedEnvelope.envelope/g
-s/org\.geotools\.data\.DataAccessFactory\.Param/org.geotools.api.data.DataAccessFactory.Param/g
-s/DirectPosition/Position/g
-
-s/org.opengis/org.geotools.api/g
diff --git a/build/remove-opengis.xml b/build/remove-opengis.xml
deleted file mode 100644
index fa91472d0f09..000000000000
--- a/build/remove-opengis.xml
+++ /dev/null
@@ -1,573 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ... ${toString:@{package}.@{class}.remove}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ... ${toString:@{srcPackage}.@{class}.files}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ... ${toString:@{srcPackage}.files}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Update to GeoTools 30.x series
-
- UPDATE STARTING: ${project.dir}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- .getFilterFactory2(
- .getFilterFactory(
-
-
-
-
-
-
- FilterFactory.property(null)
-
-
-
-
-
- FilterFactory.beyond(null)
-
-
-
-
-
- FilterFactory.contains(null)
-
-
-
-
-
- Collecions.contains((String) possible conflicts
-
-
-
-
-
- FilterFactory.disjoint(null)
-
-
-
-
-
- FilterFactory.intersects(null)
-
-
-
-
-
- FilterFactory.overlaps(null)
-
-
-
-
-
- FilterFactory.equals(null)
-
-
-
-
-
- Object.equals((String) null) possible conflict
- FilterFactory.dwithin(null)
-
-
-
-
-
- FilterFactory.touches(null)
-
-
-
-
-
- FilterFactory.overlaps(null)
-
-
-
-
-
- FilterFactory.touches(null)
-
-
-
-
-
- FilterFactory.within(null)
-
-
-
-
-
-
-
-
-
-
-
-
- org.geotools.styling
- org.geotools.api.style
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ... ${toString:org.opengis.geometry.Envelope.safeFiles}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ... ${toString:org.opengis.geometry.Envelope.files}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.geotools.data
- org.geotools.data.simple
- org.geotools.api.data
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ... ${toString:services.files}
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.opengis.
- org.geotools.api.
-
-
-
-
-
-
-
-
- ... ${toString:services.files}
-
-
-
-
-
-
-
- UPDATE COMPLETED: ${project.dir}
-
- At the request of OGC https://www.ogc.org/standard/geoapi/ standard
- Your project has been refactored to change org.opengis to org.geotools.api
-
- You may have unsued imports to clean up, but we believe your project will compile!
-
-
diff --git a/build/bloop-export.sh b/build/scripts/bloop-export.sh
similarity index 73%
rename from build/bloop-export.sh
rename to build/scripts/bloop-export.sh
index 9c2de0532694..c1bdd87ba08b 100755
--- a/build/bloop-export.sh
+++ b/build/scripts/bloop-export.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-cd "$(dirname "$0")/.." || exit
+cd "$(dirname "$0")/../.." || exit
mvn -Pbloop initialize ch.epfl.scala:bloop-maven-plugin:2.0.0:bloopInstall
diff --git a/build/calculate-cqs.sh b/build/scripts/calculate-cqs.sh
similarity index 97%
rename from build/calculate-cqs.sh
rename to build/scripts/calculate-cqs.sh
index 7c712d05fab4..51ddb949863d 100755
--- a/build/calculate-cqs.sh
+++ b/build/scripts/calculate-cqs.sh
@@ -8,6 +8,8 @@
export LC_ALL=C # ensure stable sort order across different locales
+cd "$(dirname "$0")/../.." || exit
+
rm build/cqs.tsv 2>/dev/null
mvn dependency:tree -Dstyle.color=never > build/deps-raw
grep ':compile' build/deps-raw | grep -v 'omitted' | grep -v 'org.locationtech.geomesa' | sed -e 's/\[INFO\] //' -e 's/[\| +-]*//' -e 's/(.*)//' -e 's/ //g' -e 's/\(.*\):\(.*\):jar:\(.*\):\(\w*\)/\1:\2\t\3\t\4/' | sort | uniq > build/cqs.tsv
diff --git a/build/change-scala-version.sh b/build/scripts/change-scala-version.sh
similarity index 98%
rename from build/change-scala-version.sh
rename to build/scripts/change-scala-version.sh
index 721d87167c06..ffa86f07cc00 100755
--- a/build/change-scala-version.sh
+++ b/build/scripts/change-scala-version.sh
@@ -35,7 +35,7 @@ if [[ ($# -ne 1) || ( $1 == "--help") || $1 == "-h" ]]; then
usage
fi
-BASEDIR=$(dirname "$0")/..
+BASEDIR="$(dirname "$0")/../.."
TO_VERSION=$1
FULL_VERSION=""
diff --git a/build/scripts/do-release.sh b/build/scripts/do-release.sh
new file mode 100755
index 000000000000..d43897808de3
--- /dev/null
+++ b/build/scripts/do-release.sh
@@ -0,0 +1,99 @@
+#!/usr/bin/env bash
+
+set -e
+
+cd "$(dirname "$0")/../.." || exit
+
+usage() {
+ echo "Usage: $(basename "$0") [-h|--help]
+where :
+ -h| --help Display this help text
+" 1>&2
+ exit 1
+}
+
+if [[ ($# -ne 0) || ( $1 == "--help") || $1 == "-h" ]]; then
+ usage
+fi
+
+readReleaseProp() {
+ grep "^$1=" release.properties | head -n1 | sed "s/$1=//"
+}
+
+readPomVersion() {
+ grep '^ ' "$1" | head -n1 | sed -E 's|.*(.*).*|\1|'
+}
+
+copyReleaseArtifacts() {
+ while IFS= read -r -d '' file; do
+ pushd "$(dirname "$file")" >/dev/null
+ gpg --armor --detach-sign "$(basename "$file")"
+ sha256sum "$(basename "$file")" > "$(basename "$file").sha256"
+ popd >/dev/null
+ mv "$file"{,.sha256,.asc} "$RELEASE"
+ done < <(find geomesa-* -name '*-bin.tar.gz' -print0)
+}
+
+JAVA_VERSION="$(mvn help:evaluate -Dexpression=jdk.version -q -DforceStdout)"
+if ! [[ $(java -version 2>&1 | head -n 1 | cut -d'"' -f2) =~ ^$JAVA_VERSION.* ]]; then
+ echo "Error: invalid Java version - Java $JAVA_VERSION required"
+ exit 1
+fi
+
+if ! [[ $(which gpg) ]]; then
+ echo "Error: gpg executable not found"
+ exit 1
+fi
+
+# get current branch we're releasing off
+BRANCH="$(git branch --show-current)"
+
+# use the maven release plugin to prep the pom changes but use dryRun to skip commit and tag
+mvn release:prepare \
+ -DdryRun=true \
+ -DautoVersionSubmodules=true \
+ -Darguments="-DskipTests -Dmaven.javadoc.skip=true -Ppython" \
+ -Ppython
+
+RELEASE="$(readPomVersion pom.xml.tag)"
+TAG="$(readReleaseProp scm.tag)"
+NEXT="$(readPomVersion pom.xml.next)"
+
+# update README versions and commit
+for pom in pom.xml pom.xml.tag pom.xml.next; do
+ sed -i "s|.*|$RELEASE|" "$pom"
+ sed -i "s|.*|$NEXT|" "$pom"
+done
+mvn clean install -pl .
+git commit -am "Set version for release $RELEASE"
+
+# commit release tag
+find . -name pom.xml -exec mv {}.tag {} \;
+git commit -am "[maven-release-plugin] prepare release $TAG"
+git tag "$TAG"
+
+# commit next dev version
+find . -name pom.xml -exec mv {}.next {} \;
+git commit -am "[maven-release-plugin] prepare for next development iteration"
+
+# clean up leftover release artifacts
+mvn release:clean
+
+# deploy to maven central
+git checkout "$TAG"
+mkdir -p "$RELEASE"
+
+mvn clean deploy -Pcentral,python -DskipTests | tee build_2.12.log
+copyReleaseArtifacts
+
+./build/scripts/change-scala-version.sh 2.13
+mvn clean deploy -Pcentral,python -DskipTests | tee build_2.13.log
+copyReleaseArtifacts
+
+# reset pom changes
+./build/scripts/change-scala-version.sh 2.12
+
+# push commits and tags
+git checkout "$BRANCH"
+git push lt "$BRANCH"
+git push lt "$TAG"
diff --git a/build/update-copyright-year.sh b/build/scripts/update-copyright-year.sh
similarity index 93%
rename from build/update-copyright-year.sh
rename to build/scripts/update-copyright-year.sh
index 92644f6a5197..63034a81df15 100755
--- a/build/update-copyright-year.sh
+++ b/build/scripts/update-copyright-year.sh
@@ -2,7 +2,7 @@
to="$(date +%Y)"
from="$((to - 1))"
-dir="$(cd "$(dirname "$0")/.." || exit; pwd)"
+dir="$(dirname "$0")/../.."
sed -i "s|$from|$to|" "$dir/pom.xml"
diff --git a/build/README.md b/build/templates/README.md
similarity index 99%
rename from build/README.md
rename to build/templates/README.md
index 5981bc288b15..530c6171b2c3 100644
--- a/build/README.md
+++ b/build/templates/README.md
@@ -198,7 +198,7 @@ To run unit tests, omit the `-DskipTests` (note: requires `docker` to be availab
GeoMesa also provides experimental support for the [Bloop](https://scalacenter.github.io/bloop/) compile server,
which provides fast incremental compilation. To export the GeoMesa build to Bloop, run:
- ./build/bloop-export.sh
+ ./build/scripts/bloop-export.sh
For more information on using Bloop, refer to the
[Bloop documentation](https://scalacenter.github.io/bloop/docs/build-tools/maven).
@@ -221,7 +221,7 @@ environment variable to point to the root of your JDK. Example from a Mac:
To build for a different Scala version (e.g. 2.13), run the following script, then build as normal:
- ./build/change-scala-version.sh 2.13
+ ./build/scripts/change-scala-version.sh 2.13
### Building on OS X
diff --git a/build/maven-badge.svg b/build/templates/maven-badge.svg
similarity index 100%
rename from build/maven-badge.svg
rename to build/templates/maven-badge.svg
diff --git a/geomesa-spark/geomesa-spark-jupyter-vegas/pom.xml b/geomesa-spark/geomesa-spark-jupyter-vegas/pom.xml
index 37ec282e8a82..9882f364bcc1 100644
--- a/geomesa-spark/geomesa-spark-jupyter-vegas/pom.xml
+++ b/geomesa-spark/geomesa-spark-jupyter-vegas/pom.xml
@@ -3,7 +3,7 @@
geomesa-spark_2.12
org.locationtech.geomesa
- 5.0.0-SNAPSHOT
+ 5.1.0-SNAPSHOT
4.0.0
diff --git a/pom.xml b/pom.xml
index b9878bdbd8e2..340a9e5bf22d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -172,7 +172,7 @@
3.3.0
3.1.1
3.6.1
- 3.6.0
+ 3.7.1
3.5.1
3.4.4
@@ -300,61 +300,6 @@
false
-
-
-
-
- ossrh
- https://oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
- ossrh
- https://oss.sonatype.org/content/repositories/snapshots
-
-
-
-
-
- locationtech
-
-
- repo.eclipse.org
- GeoMesa Repository - Releases
- https://repo.eclipse.org/content/repositories/geomesa-releases/
-
-
- repo.eclipse.org
- GeoMesa Repository - Snapshots
- https://repo.eclipse.org/content/repositories/geomesa-snapshots/
-
-
-
-
-
- dash
-
-
- dash-licenses-releases
- https://repo.eclipse.org/content/repositories/dash-licenses-releases/
-
- false
-
-
-
-
-
-
- scoverage
-
-
- true
-
-
-
-
- cyclonedx
-
-
org.cyclonedx
cyclonedx-maven-plugin
@@ -375,6 +320,24 @@
+
+
+ ossrh
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+ ossrh
+ https://oss.sonatype.org/content/repositories/snapshots
+
+
+
+
+
+ scoverage
+
+
+ true
+
@@ -392,7 +355,7 @@
-
+
jitpack.io
https://jitpack.io
@@ -3405,7 +3368,7 @@
true
- build
+ build/templates
README.md
@@ -3426,9 +3389,9 @@
true
- build
+ build/templates
- *.svg
+ maven-badge.svg
true
@@ -3608,7 +3571,7 @@
scm:git:git@github.com:locationtech/geomesa.git
scm:git:git@github.com:locationtech/geomesa.git
https://github.com/locationtech/geomesa
- geomesa-5.0.0-m.0
+ HEAD
@@ -3622,6 +3585,11 @@
geomesa.org
https://www.geomesa.org/
+
+ repo.eclipse.org
+ GeoMesa Repository - Snapshots
+ https://repo.eclipse.org/content/repositories/geomesa-snapshots/
+
@@ -3705,4 +3673,26 @@
+
+
+
+ central
+ Central Repository
+ https://repo.maven.apache.org/maven2
+
+ never
+
+
+ false
+
+
+
+ dash-licenses-releases
+ https://repo.eclipse.org/content/repositories/dash-licenses-releases/
+
+ false
+
+
+
+