pavly-gerges
released this
08 Aug 04:22
·
5 commits
to master
since this release
What's Changed So Far...?
1.0.0-zeta-3...1.0.0-zeta...1.0.0-stable PR #30 by @pavly-gerges:
- Removed the Anti-pattern of throwing the superimposed business exceptions on top of the other thrown Java Platform Exceptions.
- Simplified the exception throwing techniques on FileLocators and FileExtractors using a Validator API.
- Removed the major regression of nullary file locator stream providers for the classpath routines; as a result of using
Class#getResourceAsStream(...)
and notClassLoader.getSystemLoader().getResourcesAsStream(...)
. - Removed the hassle of using the
ZipCompressionType
Anti-patterns (non-thread safe - bindable between exclusive objects). - Optimized the file locator routines in a functional table with clear patterns enabling locating other files (images or assets) using the classpath routines.
- FileLocator#initialize(...): merged the validation strategy into the exceptions handling block.
- For the external compression routines file locators: dispatched
close()
on the ZipFile resources itself (which closes all the associated enteries' streams) and not a single file entry of it. - Introduced
DirectoryPath
for external path extraction to avoid nullary arguments. - Memory logging optimizations for external file streams initializers.
Caution
Breaking changes:
- Changes to the
LibraryInfo
constructors signature have been attained, check the test examples to know how to use.
1.0.0-epsilon release notes:
- Testing 1.0.0-epsilon version using snap-jolt by @stephengold.
- Epsilon-patch: introduced a sanity-check of the stream provider handler for other File locator routines by @pavly-gerges in #29
- Scaling-plan: A scaling plan applied to scale the API for professional use-cases by @pavly-gerges in #20
- snap-jolt by @stephengold: testing jolt-jni with jSnapLoader on Linux-x86, Linux-arm, Windows-x86, MacOS-x86, and MacOS-arm in #20 and issue #21.
- snaploader-examples: introduced an example using java.nio.file APIs by @pavly-gerges in #22
- TestBasicFeatures2.java: platform-dependent extraction paths by @pavly-gerges in #23
- README.md: first order logic analysis using predicate calculus by @pavly-gerges in #24
- Optimizations against memory leaks and file locator failure by @pavly-gerges in #25
- Final optimizations: Logging API - StreamProviders API - Memory Logging by @pavly-gerges in #27
- Migrated to electrostatic4j as a part of the binding API by @pavly-gerges in #28
Caution
Breaking changes:
- Migration of the root package from
electrostatic.snaploader
toelectrostatic4j.snaploader
. - Migration of the
ExtractionListener
interface toFileExtractionListener
interface.
1.0.0-delta release notes:
- Warning: this is a testing release on the PR branch for scaling the API for professional use-cases.
- The
delta
version adds the following on thegamma
version:- FileLocalizingListener interface to bind user APIs to the FileLocator API lifecycle.
- Validation of the FileLocator streams at the FileLocator levels with the suppression with business exceptions to avoid cryptic formats.
- NativeDynamicLibrary.(...): allows for full directory path designation by overwriting the basename from
LibraryInfo
. - NativeDynamicLibrary#initPlatformLibrary(LibraryInfo): removed the prefixed value
lib
for Windows runtime as a part of the standardization of Windows DLL files.
1.0.0-gamma release notes:
- This is a testing release on the PR branch for scaling the API for professional use-cases.
- The gamma version adds the following:
- Compilation for earlier Java versions down-to Java-8.
- LibraryInfo enhancements.
- Fixed
PlatformPredicate.MACOS_X86_64
faulty propositions.
1.0.0-beta release notes:
- This is a testing release on the PR branch for scaling the API for professional use-cases.
1.0.0-alpha release notes:
- platform-dependent API: added platform-dependent
PropertiesProvider
by @pavly-gerges in #12
Full Changelog: 1.0.0-alpha...1.0.0-stable
In order to utilize in your project, add the API to your dependencies and make sure mavenCentral() is defined:
repositories {
mavenCentral()
}
dependencies {
implementation "io.github.electrostat-lab:snaploader:1.0.0-stable"
}