Skip to content

Releases: termermc/Twine

2.2

01 Aug 00:31
Compare
Choose a tag to compare

This is a minor Twine release which fixes an issue with JSON request body parsing, and updates dependencies to their latest versions.

Changes

  • Fixed no max form attributes size being provided, which was required for the new Vert.x version

Javadoc: https://termer.net/javadoc/twine/2.2/index.html

To compile: ./gradlew build

Maven:

<dependency>
  <groupId>net.termer.twine</groupId>
  <artifactId>twine</artifactId>
  <version>2.2</version>
  <type>module</type>
</dependency>

Gradle:

implementation 'net.termer.twine:twine:2.2'

2.1

28 Jul 01:26
Compare
Choose a tag to compare
2.1

This is a minor Twine release which fixes an issue with JSON request body parsing, and updates dependencies to their latest versions.

Changes

  • Fixed NullPointerException caused by null values in JSON request bodies
  • Fixed JSON objects and arrays being serialized as Java Maps and Lists instead of JSON in JSON request bodies
  • Updated all libraries to latest version, including Vert.x to 4.1.2 (Some small breaking changes), and Kotlin (stdlib v1.4.21, coroutines v1.5.1)
  • Upgraded build system to Gradle 7.1.1

Javadoc: https://termer.net/javadoc/twine/2.1/index.html

Note that there are some breaking changes between Vert.x 4.0.0 and 4.1.2, notably "jwt" being renamed to "token" in JWT handling, so make sure that is accounted for before upgrading.

To compile: ./gradlew shadowJar

Maven:

<dependency>
  <groupId>net.termer.twine</groupId>
  <artifactId>twine</artifactId>
  <version>2.1b</version>
  <type>module</type>
</dependency>

Gradle:

implementation 'net.termer.twine:twine:2.1b'

New Major Release + Vert.x 4.0.0

24 Dec 22:11
Compare
Choose a tag to compare

This is the second major release of Twine, streamlining configuration and updating Vert.x to 4.0.0

There are too many changes to list here (see CHANGELOG), but here are some highlights:

  • Moved all configuration to twine.yml
  • Upgraded to Vert.x 4.0.0
  • Added much more fine-grained control for domains
  • Fixed many bugs

Javadoc: https://termer.net/javadoc/twine/2.0/index.html

To compile: ./gradlew shadowJar

Maven:

<dependency>
  <groupId>net.termer.twine</groupId>
  <artifactId>twine</artifactId>
  <version>2.0</version>
  <type>module</type>
</dependency>

Gradle:

implementation 'net.termer.twine:twine:2.0'

1.5

22 May 19:58
Compare
Choose a tag to compare
1.5

Bugfix release + updated several libraries, including Vert.x (to 3.8.5)

  • Added MODULES_LOADED, MODULES_PREINITIALIZED and MODULES_INITIALIZED events
  • Added ModuleManager.modules() and ModuleManager.modules(Priority) methods to return loaded modules
  • Added configuration through environment variables (such as TW_CONF_port=8080)
  • Made Events.fire(Events.Type) method public
  • Server now emits CLUSTER_JOIN event when it has initialized if clustering is enabled
  • Updated all libraries to latest version, including Vert.x to 3.9.1 (Possibly breaking)
  • Replaced deprecated BridgeOptions with SockJSBridgeOptions (Breaking, changes TwineWebsocket.bridgeOptions method return type from BridgeOptions to SockJSBridgeOptions)
  • Replaced ArgParser option String values with ArrayLists of Strings (Breaking, changes ArgParser.options() return type to HashMap<String, ArrayList>)
  • Expanded max value for Twine.INSTANCE_ID to Integer.MAX_VALUE
  • Fixed very poor threading in Events class
  • Fixed issues in Javadoc
  • Fixed occasional failures to write error document

Javadoc: https://termer.net/javadoc/twine/1.5/index.html

To compile: ./gradlew shadowJar

Maven:

<dependency>
  <groupId>net.termer.twine</groupId>
  <artifactId>twine</artifactId>
  <version>1.5b</version>
  <type>module</type>
</dependency>

Gradle:

implementation 'net.termer.twine:twine:1.5b'

Note: b has been added on this release version because 1.5 was incorrectly uploaded to Maven Central. It is not a new or different release.

1.4

14 Mar 18:18
Compare
Choose a tag to compare
1.4

Bugfix release + updated several libraries, including Vert.x (to 3.8.5)

  • Fix NullPointException being thrown when passing null to RequestUtils.domain
  • Updated Vert.x to 3.8.5
  • Updated many other libraries to their latest versions

Javadoc: https://termer.net/javadoc/twine/1.4/index.html

To compile: ./gradlew shadowJar

1.3

19 Dec 02:38
Compare
Choose a tag to compare
1.3

Upkeep release + Slight improvement to module class

  • Add preinitialize() method to TwineModule to execute before any handlers/middleware are registered
  • Add getters for instance's StaticHandler and SessionHandler classes
  • Include vertx-lang-kotlin-coroutines library for better Kotlin development with coroutines
  • Fix Twine.shutdown() method hanging and not destroying the process

Javadoc: https://termer.net/javadoc/twine/1.3/index.html

To compile: ./gradlew shadowJar

1.2

05 Dec 23:06
Compare
Choose a tag to compare
1.2

Bugfix release + Kotlin support

  • Fix errors in Module initialize() methods causing a ConcurrentModificationException
  • Update Vert.x to latest version (3.8.4)
  • Include Kotlin stdlib and coroutines libraries
  • Include Vert.x Kotlin library

Javadoc: https://termer.net/javadoc/twine/1.2/index.html
(Javadoc is being included for the sake of consistency, but nothing has changed in it at all)

To compile: ./gradlew shadowJar

1.1

18 Nov 23:17
Compare
Choose a tag to compare
1.1

Very small bugfix release.

  • Fix issue with "+" being included Module twineVersion() methods causing Twine to error out
  • Fix exception being thrown when shutting down the server when the -m option is used

Javadoc: https://termer.net/javadoc/twine/1.1/index.html
(Javadoc is being included for the sake of consistency, but nothing has changed in it at all)

To compile: ./gradlew shadowJar

1.0

16 Nov 19:39
Compare
Choose a tag to compare
1.0

First stable release of Twine.

  • Fix media streaming for domain files
  • Improve module loading
  • Improve handling of server errors
  • Allow the size of the Vert.x worker pool to be configured
  • Fix some domain file loading actions not being done in a non-blocking fashion
  • Allow registration of different types of extensions to be treated as scriptable (and processable) documents
  • Add Documents.blockingProcessor(processor) to register blocking document processors
  • Additional misc. bugfixes

Note that this release is not backwards compatible with alpha releases. The major breaking change is with how the Documents class works, so if you need to use any older modules that don't deal with that class, you can enable ignoreModuleCheck in twine.yml to use modules created for alpha releases of Twine.

Javadoc: https://termer.net/javadoc/twine/1.0/index.html

To compile: ./gradlew shadowJar

1.2-alpha

09 Nov 07:05
Compare
Choose a tag to compare
1.2-alpha Pre-release
Pre-release

Final alpha release of Twine, mostly bugfixes.

  • Gracefully shutdown on terminal Ctrl+C
  • Send proper headers on HEAD requests
  • Enable caching headers on domain files
  • Fix all issues loading module dependencies
  • Add Twine.versionInt() to get Twine version number

Javadoc: https://termer.net/javadoc/twine/1.2-alpha/index.html

To compile: ./gradlew shadowJar