Common classes for java, independent from other libraries
Go to file
JFronny 943041d488
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
feat: add Reflect.setAccessible to allow access to private fields
2024-07-19 21:02:42 +02:00
buildSrc feat: split unsafe backend into separate module from core flow to support possibility of different backends 2024-05-28 22:42:51 +02:00
commons feat(commons): do not use unnecessary getters in OSUtils.Type 2024-06-11 07:25:35 +02:00
commons-bom feat: add version catalog and bom 2024-04-22 11:11:10 +02:00
commons-catalog feat: add version catalog and bom 2024-04-22 11:11:10 +02:00
commons-flow fix(flow): resubmit prioritized runnables 2024-06-21 08:03:38 +02:00
commons-flow-asm fix: use correct coordinates for commons-flow-asm 2024-06-22 14:18:36 +02:00
commons-flow-backend-unsafe fix(flow): resubmit prioritized runnables 2024-06-21 08:03:38 +02:00
commons-gson chore: use provides with for service loader consistently 2024-05-28 21:34:20 +02:00
commons-http-client feat(http-client): implement simple online check 2024-06-10 20:01:38 +02:00
commons-http-server fix(http-server): Additional null check to fix an issue in native-image 2024-04-21 00:26:25 +02:00
commons-io feat(serialize): implement data binding 2024-04-12 20:04:15 +02:00
commons-logger chore: clean up STDOUT redirect code 2024-07-17 10:18:46 +02:00
commons-manifold feat: replace commons-logging with slf4j-based commons-logger and use type-safe dependency DSLs 2024-03-09 12:37:38 +01:00
commons-serialize fix(serialize): if view wasn't touched, run skipValue on close 2024-06-09 13:25:26 +02:00
commons-serialize-databind feat(serialize)!: extend reader/writer with single-item views to prevent adapters accidentally consuming more or less than intended 2024-06-09 12:46:03 +02:00
commons-serialize-databind-api feat(serialize)!: extend reader/writer with single-item views to prevent adapters accidentally consuming more or less than intended 2024-06-09 12:46:03 +02:00
commons-serialize-databind-sql feat(serialize)!: extend reader/writer with single-item views to prevent adapters accidentally consuming more or less than intended 2024-06-09 12:46:03 +02:00
commons-serialize-dsl fix(serialize-generator): Patch related components to use Exception instead of Throwable 2024-04-18 21:04:58 +02:00
commons-serialize-generator feat(serialize)!: extend reader/writer with single-item views to prevent adapters accidentally consuming more or less than intended 2024-06-09 12:46:03 +02:00
commons-serialize-generator-annotations feat(serialize): Initial work on porting gson-compile 2024-04-17 12:56:06 +02:00
commons-serialize-generator-core feat(serialize-generator): support @Ignore annotation 2024-04-23 22:27:39 +02:00
commons-serialize-json feat(serialize)!: extend reader/writer with single-item views to prevent adapters accidentally consuming more or less than intended 2024-06-09 12:46:03 +02:00
commons-serialize-xml fix(serialize-xml): prevent buffer underrun in XML reader 2024-06-25 11:54:47 +02:00
commons-unsafe feat: add Reflect.setAccessible to allow access to private fields 2024-07-19 21:02:42 +02:00
gradle feat: implement slf4j-to-jpl adapter 2024-07-06 18:32:48 +02:00
muscript chore(muscript): delete old implementation keeping redirects in place for docs 2024-04-07 17:25:47 +02:00
muscript-all fix(muscript-all): don't export dependency on modules 2024-04-24 20:41:10 +02:00
muscript-ast feat(muscript): Extend At operator to support behavior similar to charAt 2024-06-17 22:17:36 +02:00
muscript-core feat(muscript): support passing last closure argument outside of call (like in kotlin) 2024-06-18 15:26:48 +02:00
muscript-data-additional chore: use provides with for service loader consistently 2024-05-28 21:34:20 +02:00
muscript-data-dynamic fix(muscript): disable formatting for intentional exceptions 2024-04-07 17:17:53 +02:00
muscript-gson feat(muscript-gson): rename to muscript-json and port to commons-serialize-json 2024-04-12 21:19:36 +02:00
muscript-json feat(serialize)!: extend reader/writer with single-item views to prevent adapters accidentally consuming more or less than intended 2024-06-09 12:46:03 +02:00
muscript-optimizer feat(muscript): Extend At operator to support behavior similar to charAt 2024-06-17 22:17:36 +02:00
muscript-parser fix(muscript): support implicit calls with lambda in more situations 2024-07-03 09:05:15 +02:00
muscript-runtime fix(muscript): support implicit calls with lambda in more situations 2024-07-03 09:05:15 +02:00
muscript-serialize fix(muscript-serialize): add support for implicit calls in decompiler 2024-07-03 08:47:40 +02:00
slf4j-over-jpl feat: implement slf4j-to-jpl adapter 2024-07-06 18:32:48 +02:00
.gitignore 0.1.0 2022-04-28 20:52:32 +02:00
.woodpecker.yml ci: revert manual clone inclusion (turned out to be a woodpecker issue that is now fixed) 2024-06-09 13:50:29 +02:00
build.gradle.kts build: utilize jf autoversion 2024-06-09 12:50:41 +02:00
README.md feat: implement slf4j-to-jpl adapter 2024-07-06 18:32:48 +02:00
settings.gradle.kts feat: implement slf4j-to-jpl adapter 2024-07-06 18:32:48 +02:00

JfCommons

Common code for my java projects. Uses my common build scripts.

Modules

  • commons: Common java code without a major theme or external dependencies
  • commons-io: Utility classes for caching, hashing, reading json, opening archives, etc.
  • commons-http-client: A simple http client
  • commons-http-server: A simple http server based on JLHTTP
  • commons-flow: A simple framework wrapping Continuation to support using iterators and pattern matching instead of visitors. Also provides support for virtual threads with custom schedulers including a default priority-based scheduler
  • commons-flow-backend-unsafe: A backend for commons-flow using commons-unsafe to access JVM internals

Serialization

  • commons-serialize: Provides the framework for serialization and deserialization. Describes SerializeWriter, SerializeReader, Transport and related classes.
  • commons-serialize-dsl: Provides a Kotlin DSL for serialization and deserialization wrapping commons-serialize
  • commons-serialize-json: Provides a json implementation for commons-serialize
  • commons-serialize-xml: Provides an xml implementation for commons-serialize
  • commons-serialize-databind: Provides data binding inspired by Gson for commons-serialize
  • commons-serialize-databind-api: Provides a thin API around commons-serialize-databind for use in other libraries that don't want to depend on commons-serialize-databind directly
  • commons-serialize-databind-sql: Provides TypeAdapters for SQL types for commons-serialize-databind (separate module because of the dependency on java.sql)
  • commons-serialize-generator-core: Provides a common core for annotation processors that generate serializers and deserializers. Not directly dependent on commons-serialize, as it is also used in libjf-config.
  • commons-serialize-generator-annotations: Provides the annotations used to configure commons-serialize-generator
  • commons-serialize-generator: Provides an annotation processor for generating serializers and deserializers for commons-serialize

muScript

(muscript is a simple scripting language, see here for more information

  • muscript-all: Non-JPMS module shadowing the parser, serializer, optimizer, runtime, and data modules.
  • muscript-core: Core classes for muscript. Required by all other muscript modules.
  • muscript-ast: Implements the AST for muscript as algebraic data types. Contains no logic.
  • muscript-data-dynamic: Implements the dynamic data model for muscript.
  • muscript-data-additional: Implements additional data types for muscript, including the standard library.
  • muscript-parser: Implements the parser for muscript. Originally based on StarScript, it also provides conversion from code targeting that.
  • muscript-serialize: Implements a Decompiler for muscript. It is called this because it can be used to serialize Dynamic data.
  • muscript-optimizer: Implements a simple optimizer for muscript. Entirely optional.
  • muscript-runtime: Implements a runtime for muscript, based on muscript-data-dynamic for runtime data representation but with optimizations for typed expressions.
  • muscript-json: Glue code for manipulating json with muscript

Interop

  • commons-logger: A simple logging framework for System.Logger supporting hot reloading and slightly improved APIs
  • commons-manifold: Some common code using the features of manifold-ext. Mainly extension classes.
  • commons-gson: Provides some utility classes around my fork of gson and an implementation of the Serializer interface
  • commons-unsafe: Provides wrappers around sun.misc.Unsafe and the LambdaMetaFactory
  • commons-bom: A maven BOM to make using multiple modules easier
  • commons-catalog: A gradle version catalog to make using multiple modules easier
  • commons-flow-asm: A wrapper around ASM using commons-flow to make generating bytecode easier
  • slf4j-over-jpl: A simple SLF4J implementation redirecting all logs to a System.Logger