Releases: CadixDev/Bombe
0.4.4
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
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
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
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
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
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
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
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
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.
- There is no entry in the migration map for this, as
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 -> 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
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);