Skip to content

Commit

Permalink
Update SCP port for website deployment and prepare release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
beikov committed Sep 16, 2019
1 parent 3139ade commit 6d14548
Show file tree
Hide file tree
Showing 10 changed files with 115 additions and 11 deletions.
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,22 @@ Not yet released

### New features

None

### Bug fixes

None

### Backwards-incompatible changes

None

## 1.4.0-Alpha2

10/09/2019 - [Release tag](https://github.com/Blazebit/blaze-persistence/releases/tag/1.4.0-Alpha2) [Resolved issues](https://github.com/Blazebit/blaze-persistence/issues?utf8=%E2%9C%93&q=is%3Aissue+milestone%3A1.4.0+is%3Aclosed+closed%3A%3C2019-09-17)

### New features

* Introduce support for adding whole predicates to predicate builders via `whereExpression`/`whereExpressionSubqueries` etc.
* Add support for subquery expression in the `ON` clause
* Introduce new comparison methods in predicate builders to allow making use of literal rendering in a type safe way
Expand All @@ -24,12 +40,21 @@ Not yet released
* Add support for MySQL 8
* Move `ConfigurationProperties` classes to API artifacts
* Add support for view property sorting in Spring Data
* Complete the set of date extraction, date diff and date arithmetic functions
* Add `ANY` as alias for the `OR_AGG` function
* Add support for using entity views as parameters in Spring Data repositories
* Add support for boolean wrapper type when using `is` method prefix
* Add support for Date and Calendar to Instant conversion for entity views

### Bug fixes

* Fix Hibernate Envers issues with JPA Criteria implementation
* Fix a NPE happening due to doing a manual select in an exists subquery that joins associations
* Avoid a NPE happening when trying to render a parameter as literal that has no literal representation
* Fix wrong instantiation of inheritance base type when null is expected
* Fix an issue with using a sub-association as correlation basis
* Don't treat creatable or updatable subtypes for mutable attributes as readonly
* Prevent cache trashing object builder cache when macros don't support caching

### Backwards-incompatible changes

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,18 @@ public void testRequirementForFullyQualifyingSubqueryAlias() {
pcb.getResultList();
}

@Test
public void testPaginationWithOuterAttributeInSubquery() {
CriteriaBuilder<Document> cb = cbf.create(em, Document.class)
.whereExists()
.from(Person.class)
.where("id").eqExpression("owner.id")
.end();

// It is disallowed to refer to implicitly refer to attributes of the outer query root
verifyException(cb, IllegalArgumentException.class).getQueryString();
}

@Test
// NOTE: Datanucleus has a bug here: https://github.com/datanucleus/datanucleus-core/issues/173
@Category({ NoDatanucleus.class })
Expand Down
8 changes: 4 additions & 4 deletions creating-a-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ A release involves various steps which are outlined here and should be kept up-t
. Make sure you have GPG installed and the executable is available on PATH
. Make sure your Maven settings.xml has credentials for the server `sonatype-nexus-staging` configured
. Make sure your Maven settings.xml has a profile called `blazebit-release` with the property `gpg.passphrase`
. Make sure your `JAVA_HOME` points to a JDK 8 with e.g. `set JAVA_HOME="C:\Program Files\Java\jdk-9.0.4"`
. Make sure your `MAVEN_OPTS` contain a memory configuration with a big heap size with e.g. `set MAVEN_OPTS="-Xmx1536m -XX:MaxMetaspaceSize=512m"`
. Edit the `README.md` and update the property `blaze-persistence.version` to the latest released version, also update the archetype versions for the quickstarts
. Make sure your `JAVA_HOME` points to a JDK 8 with e.g. `set JAVA_HOME="C:\Program Files\Java\jdk-9.0.4"` or `$env:JAVA_HOME="C:\Program Files\Java\jdk-9.0.4"`
. Make sure your `MAVEN_OPTS` contain a memory configuration with a big heap size with e.g. `set MAVEN_OPTS="-Xmx1536m -XX:MaxMetaspaceSize=512m"` or `$env:MAVEN_OPTS="-Xmx1536m -XX:MaxMetaspaceSize=512m"`
. Edit the `README.md` and update the property `blaze-persistence.version` to the latest released version, also update the archetype versions for the quick-starts
. Make sure `CHANGELOG.md` contains all relevant changes and links to the release tags in GitHub, prepare the next changelog entry for the next version
. Check the `roadmap.asciidoc` and add big ticket features that might have been added during development but forgotten to be included there
. Open `website/src/main/jbake/content/downloads.adoc` and update the releases table for the released branch
Expand All @@ -24,5 +24,5 @@ A release involves various steps which are outlined here and should be kept up-t
. Commit the changes and push the branch `git push origin`, as well as the created tag `git push origin TAG`
. Create a GitHub release from the tag and use the same content as in `website/src/main/jbake/content/news/CURRENT_YEAR/blaze-persistence-VERSION-release.adoc` and add the _tar.gz_ and _zip_ artifacts of `blaze-persistence-distribution` as binaries to the release
. Push the new website changes only if you are working on the latest version series and first to the staging server by invoking `./build-deploy-website.sh staging` and if everything is alright push to production with `./build-deploy-website.sh prod`
. If you want to push just the documentation changes use `./build-deploy-documentation.sh staging` and if everything is alright push to production with `./build-deploy-documentation.sh prod` instead
. If you want to push just the documentation changes use `./build-deploy-documentation.sh staging` and if everything is alright also push to production with `./build-deploy-documentation.sh prod`
. Create tweet about new version
4 changes: 2 additions & 2 deletions documentation/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@
<site>
<id>staging-persistence.blazebit.com</id>
<name>persistence.blazebit.com Staging</name>
<url>scp://staging-persistence.blazebit.com/var/www/virtual/staging-persistence.blazebit.com/htdocs</url>
<url>scp://staging-persistence.blazebit.com:10022/var/www/virtual/staging-persistence.blazebit.com/htdocs</url>
</site>
</distributionManagement>
</profile>
Expand All @@ -254,7 +254,7 @@
<site>
<id>persistence.blazebit.com</id>
<name>persistence.blazebit.com</name>
<url>scp://persistence.blazebit.com/var/www/virtual/persistence.blazebit.com/htdocs</url>
<url>scp://persistence.blazebit.com:10022/var/www/virtual/persistence.blazebit.com/htdocs</url>
</site>
</distributionManagement>
</profile>
Expand Down
2 changes: 1 addition & 1 deletion entity-view/testsuite/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>com.blazebit</groupId>
<artifactId>blaze-persistence-entity-view</artifactId>
<version>1.4.0-SNAPSHOT</version>
<version>1.4.0-Alpha2</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*
* Copyright 2014 - 2019 Blazebit.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.blazebit.persistence.view.testsuite;

/**
* Newer Javadoc versions don't package empty javadocs anymore.
*
* @author Christian Beikov
* @since 1.4.0
*/
public class Dummy {

}
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,6 @@ public void testEntityViewSettingCustomRoot() {
assertEquals("pers2", result.get(0).getName());
assertEquals("pers2", result.get(1).getName());
}

// TODO: needs more tests
}
4 changes: 2 additions & 2 deletions website/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
<site>
<id>staging-persistence.blazebit.com</id>
<name>persistence.blazebit.com Staging</name>
<url>scp://staging-persistence.blazebit.com/var/www/virtual/blazebit.com/staging-persistence/htdocs</url>
<url>scp://staging-persistence.blazebit.com:10022/var/www/virtual/blazebit.com/staging-persistence/htdocs</url>
</site>
</distributionManagement>
<build>
Expand Down Expand Up @@ -163,7 +163,7 @@
<site>
<id>persistence.blazebit.com</id>
<name>persistence.blazebit.com</name>
<url>scp://persistence.blazebit.com/var/www/virtual/blazebit.com/persistence/htdocs</url>
<url>scp://persistence.blazebit.com:10022/var/www/virtual/blazebit.com/persistence/htdocs</url>
</site>
</distributionManagement>
<build>
Expand Down
2 changes: 1 addition & 1 deletion website/src/main/jbake/content/downloads.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

[.releases]
|===
| 1.4.0-Alpha1 | 2019-05-29 | https://github.com/Blazebit/blaze-persistence/releases/download/1.4.0-Alpha1/blaze-persistence-dist-1.4.0-Alpha1.zip[*Download*, window="_blank"] link:news/2019/blaze-persistence-1.4.0-Alpha1-release.html[More...]
| 1.4.0-Alpha2 | 2019-09-17 | https://github.com/Blazebit/blaze-persistence/releases/download/1.4.0-Alpha2/blaze-persistence-dist-1.4.0-Alpha2.zip[*Download*, window="_blank"] link:news/2019/blaze-persistence-1.4.0-Alpha2-release.html[More...]
| 1.3.2 | 2019-02-26 | https://github.com/Blazebit/blaze-persistence/releases/download/1.3.2/blaze-persistence-dist-1.3.2.zip[*Download*, window="_blank"] link:news/2019/blaze-persistence-1.3.2-release.html[More...]
| 1.2.1 | 2018-07-05 | https://github.com/Blazebit/blaze-persistence/releases/download/1.2.1/blaze-persistence-dist-1.2.1.zip[*Download*, window="_blank"] link:news/2018/blaze-persistence-1.2.1-and-1.3.0-Alpha1-release.html[More...]
| 1.1.1 | 2016-09-29 | https://github.com/Blazebit/blaze-persistence/releases/download/1.1.1/blaze-persistence-dist-1.1.1.zip[*Download*, window="_blank"] link:news/2016/blaze-persistence-1.1.1-release.html[More...]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
= Blaze-Persistence 1.4.0-Alpha2 Release
Christian Beikov
2019-09-17 0
:description: Blaze-Persistence version 1.4.0-Alpha2 was just released
:page: news
:icon: christian_head.png
:jbake-tags: announcement,release
:jbake-type: post
:jbake-status: published
:linkattrs:

We just released Blaze-Persistence version 1.4.0-Alpha2, this time, mostly with new features!
The most exciting feature of this release is obviously window function support and the new expression syntax support for it.

If you want to get the number of objects while fetching them and avoid the need for grouping or subqueries, you can now do something like

[source,java]
----
criteriaBuilder.select("count(*) over (partition by entity.id)")
----

We added support for the most common window functions, also see +++<!-- PREVIEW-SUFFIX --><!-- </p></div> --><!-- PREVIEW-END -->+++the new window function chapter: https://persistence.blazebit.com/documentation/core/manual/en_US/index.html#window-functions-2

Other new notable features are:

* https://github.com/Blazebit/blaze-persistence/issues/812[*#812*, window="_blank"] Temporal extraction, diff, truncation and arithmetic functions
* https://github.com/Blazebit/blaze-persistence/issues/803[*#803*, window="_blank"] Introduction of comparison methods that render literals
* https://github.com/Blazebit/blaze-persistence/issues/801[*#801*, window="_blank"] MySQL 8 support
* https://github.com/Blazebit/blaze-persistence/issues/797[*#797*, window="_blank"] EntityManager resolving in spring data integration is random
* https://github.com/Blazebit/blaze-persistence/issues/795[*#795*, window="_blank"] Move available configuration properties to API artifacts
* https://github.com/Blazebit/blaze-persistence/issues/793[*#793*, window="_blank"] Shade ANTLR into parser
Take a look into the https://github.com/Blazebit/blaze-persistence/blob/master/CHANGELOG.md#140-alpha2[changelog, window="_blank"] for a full list of changes and improvements.
A big thank you goes out to Jan-Willem Gmelig Meyling and his colleague Sayra Ranjha for implementing the initial window functions as well as the temporal functions!
The long awaited feature entity view lifecycle listeners will take some more time as I'm currently working on a new project called https://github.com/Blazebit/blaze-notify[blaze-notify, window="_blank"]
that will make it super easy to integrate transactional notifications(E-Mail, App notifications, etc.) into your own applications.
Unless someone works on a PR for other new features, the next release will be about preliminary support for entity view lifecycle listeners!

0 comments on commit 6d14548

Please sign in to comment.