Skip to content

umjammer/vavi-commons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Release Java CI CodeQL Java

vavi-commons

Swiss-Army Knife

most functions are used by me for every development. so those are super reliable.

🧰 Contents

πŸ”§ Bit I/O

  • BitInputStream
  • BitOutputStream

πŸ”§ LittleEndian I/O

DataInputStream, DataOutputStream compatible

πŸ”§ Adaptive I/O Stream

Decorating io streams easily

  • OutputEngine, OutputEngineInputStream, InputEngine, InputEngineOutputStream

πŸ”§ Bean Manipulation

Manipulate beans easily.

πŸ”§ Easy Logging

Colorized good logging easily.

πŸ”§ XML Utilities

  • Pretty printer
  • XPath dumper

πŸ”§ Win32 Structures

  • useful win32 structures
    • wav, avi, datetime

πŸ”§ Easy Property Binding

  • DI for properties and environment variables

πŸ”§ Generic Event

  • usable for any observer pattern

πŸ”§ Instrumentation

  • easy instrumentation

πŸ”§ String Utilities

  • Levenshtein distance
  • Google DiffMatchPatch
  • Hex dump

πŸ”§ Binary I/O

  • ByteUtil

πŸ”§ Unit Test Helper

  • Delayed Worker

Install

Usage

instrumentation

install jar by pom.xml

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
        <version>3.1.1</version>
        <executions>
          <execution>
            <id>install-library</id>
            <phase>install</phase>
            <goals>
              <goal>install-file</goal>
            </goals>
            <configuration>
              <groupId>com.github.umjammer.vavi-commons</groupId>
              <artifactId>vavi-instrumentation</artifactId>
              <version>${project.version}</version>
              <packaging>jar</packaging>
              <file>${project.build.directory}/vavi-instrumentation-${project.version}.jar</file>
            </configuration>
          </execution>
        </executions>
      </plugin>

java runtime option

 $ java -javaagent ${project.build.directory}/vavi-instrumentation-${project.version}.jar ...

References

License

  • Engineering Solution

    • OutputEngine.java
    • OutputEngineInputStream.java
    • ReaderWriterOutputEngine.java
    • IOStreamOutputEngine.java

    GPL

TODO

  • deploy to bintray via github actions
  • exception
  • jar in jar loader
  • native jar -> NLL
  • use jpl for Debug
  • urlstreamhandler
    • use java11 urlstreamhandler spi
    • import image:data:base64 from jwinzip