Skip to content

Releases: CadixDev/Bombe

0.4.4

09 Feb 18:06
f722060
Compare
Choose a tag to compare

Bombe 0.4.4 is a small release introducing some new APIs to bolster the
capabilities of the jar transformation framework, namely allowing entries to be
introduced. To accomplish this, a JarEntryTransformer#additions() method has
been introduced. A release of Atlas will be made shortly to implement this
feature.

The remapping transformer will additionally strip signature files and entries
in the manifest. This transformer may in future be available standalone.

0.3.5

09 Feb 17:48
3036806
Compare
Choose a tag to compare

Bombe 0.3.5 is a small release introducing some new APIs to bolster the
capabilities of the jar transformation framework, namely allowing entries to be
introduced. To accomplish this, a JarEntryTransformer#additions() method has
been introduced. The Jars utility has been updated to support this, and a
release of Atlas will be made shortly to implement this feature.

The Jars utility has been deprecated in this version, advising consumers to
switch to Atlas. Jars was removed in 0.4.0, so this just serves as a final
notice to any lingering applications using the utility.

The remapping transformer will additionally strip signature files and entries
in the manifest. This transformer may in future be available standalone.

0.4.3

19 Aug 10:26
8f1f261
Compare
Choose a tag to compare

Bombe 0.4.3 resolves a regression made when splitting up the previous systems in
Bombe 0.2.x, specifically a NullPointerException that can occur when using
ClassLoaderClassProvider.

An equivalent change was made in Bombe 0.3.4.

0.3.4

19 Aug 10:14
24b088e
Compare
Choose a tag to compare
0.3.4 Pre-release
Pre-release

Bombe 0.3.4 resolves a regression made when splitting up the previous systems in
Bombe 0.2.x, specifically a NullPointerException that can occur when using
ClassLoaderClassProvider.

As Bombe 0.3.x is still in use by the latest version of Lorenz and Atlas, and
used in software running today - this is why a further release to 0.3 is being
made
.

0.4.2

11 Aug 20:05
0c7bd12
Compare
Choose a tag to compare
0.4.2 Pre-release
Pre-release

Bombe 0.4.2 resolves an oversight when bumping to ASM 7, notably that our
ClassProviderInheritanceProvider was still using ASM6 - this has now been
resolved to use ASM7, in addition to a new constructor to allow for
third-parties to specify which ASM API version they wish to use.

An equivalent change was made in Bombe 0.3.3.

0.3.3

11 Aug 20:04
fce2f16
Compare
Choose a tag to compare
0.3.3 Pre-release
Pre-release

Bombe 0.3.3 resolves an oversight when bumping to ASM 7, notably that our
ClassProviderInheritanceProvider was still using ASM6 - this has now been
resolved to use ASM7, in addition to a new constructor to allow for
third-parties to specify which ASM API version they wish to use.

As Bombe 0.3.x is still in use by the latest version of Lorenz and Atlas, and
used in software running today - this is why a further release to 0.3 is being
made
.

0.4.1

26 May 13:42
709d4c6
Compare
Choose a tag to compare
0.4.1 Pre-release
Pre-release

Bombe 0.4.1 resolves a critical bug with JarEntryRemappingTransformer where it
would crash given a manifest with no Main-Class.

An equivalent change was made in Bombe 0.3.2.

0.3.2

26 May 13:11
9a7b020
Compare
Choose a tag to compare
0.3.2 Pre-release
Pre-release

Bombe 0.3.2 resolves a critical bug with JarEntryRemappingTransformer where it
would crash given a manifest with no Main-Class.

As Bombe 0.3.x is still in use by the latest version of Lorenz and Atlas, and
used in software running today - this is why a further release to 0.3 is being
made.

0.4.0

28 Feb 22:17
Compare
Choose a tag to compare
0.4.0 Pre-release
Pre-release

Bombe 0.4.0 includes a small number of practical changes to our toolchain, to better serve
downstream projects and simplify our module offering across our projects.

Notable Changes

Classes and packages that have simply been relocated aren't listed here, please see the
included IntelliJ Migration Map.

  • Jars has been removed, projects are encouraged to migrate to Atlas.
  • AbstractReader has been removed, having been replaced by string.
    • There is no entry in the migration map for this, as StringReader in string is not
      1-to-1 compatible. Projects will need to take care in adapting for this change.

Modules

ASM Module

The ASM module is not more, opting for an optional dependency on ASM in Bombe instead,
which allows some classes which do not have a hard-dependency on ASM to be used by more
projects (classes that still have a hard dependency are packaged in asm packages).

Please refer to the IntelliJ Migration Map.

Jar Module

The jar package (with the exception of ClassProvider and its implementations) has been
migrated to a new bombe-jar module.

There are no relevant migrations for this change.

IntelliJ Migration Map

<?xml version="1.0" encoding="UTF-8"?>
<migrationMap>
  <name value="Bombe 0.3.x -&gt; 0.4.0" />
  <description value="Migrates Bombe 0.3.x usage to Bombe 0.4.0." />
  <entry
  	oldName="org.cadixdev.bombe.analysis.CascadingInheritanceProvider"
  	newName="org.cadixdev.bombe.analysis.CompositeInheritanceProvider" type="class" />
  <entry
  	oldName="org.cadixdev.bombe.asm.jar.ClassProvider"
  	newName="org.cadixdev.bombe.jar.ClassProvider" type="class" />
  <entry
  	oldName="org.cadixdev.bombe.asm.jar.ClassLoaderClassProvider"
  	newName="org.cadixdev.bombe.jar.ClassLoaderClassProvider" type="class" />
  <entry
  	oldName="org.cadixdev.bombe.asm.jar.JarFileClassProvider"
  	newName="org.cadixdev.bombe.jar.JarFileClassProvider" type="class" />
  <entry
  	oldName="org.cadixdev.bombe.asm.jar.JarEntryRemappingTransformer"
  	newName="org.cadixdev.bombe.jar.asm.JarEntryRemappingTransformer" type="class" />
  <entry
  	oldName="org.cadixdev.bombe.asm.analysis.ClassProviderInheritanceProvider"
  	newName="org.cadixdev.bombe.analysis.asm.ClassProviderInheritanceProvider" type="class" />
</migrationMap>

0.3.1

09 Sep 21:42
dc6ba55
Compare
Choose a tag to compare
0.3.1 Pre-release
Pre-release

Bombe 0.3.1 brings with it qualified references - a way to directly reference a member of
a class, or a class itself.

Example

import org.cadixdev.bombe.type.reference.FieldReference;
import org.cadixdev.bombe.type.reference.TopLevelClassReference;

final FieldReference field = new TopLevelClassReference("org/cadixdev/Demo")
        .getField("x", BaseType.INT);