Coder Social home page Coder Social logo

commons-jvm's Introduction

ERI Commons - Language Extensions

Build

A "toolbox" of language extensions and utilities for JVM-based languages, like Java. Supports Java 8 and Java 11.

Maven

You can install this library from Jipack.io. Add the following repository to your POM:

<repositories>
   <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
   </repository>
</repositories>

And then the following dependency:

<dependency>
	<groupId>com.elderresearch.commons-jvm</groupId>
	<artifactId>commons-jvm</artifactId>
	<version>2.5.0</version>
</dependency>

for Java 11+ or

<dependency>
	<groupId>com.elderresearch.commons-jvm</groupId>
	<artifactId>commons-jvm-java8</artifactId>
	<version>2.5.0</version>
</dependency>

for Java 8.

Dependencies

This sends the following transitive dependencies:

Overview

Some of the utilities in this project include:

  • Config, YAMLConfig, and EnvironmentTree: Powerful configuration that supports a configuration bean via YAML (or any other supported Jackson format) with environment (environment variable and/or system property) overrides.
  • DaemonWorker: An easy to use wrapper around a daemon thread and a blocking queue for multithreaded, queueable tasks.
  • @Documentation: Annotation to facilitate code generation and documentation of system components that can be reflected at runtime
  • NumberExtractor and DateExtractor: General-purpose/robust number and date parser/extractor that uses all localized formats available to the JVM to extract values from text.
  • IteratorCloseable, IteratorMultithreaded, and IteratorWithSize: Variants on the standard Iterator pattern offering deterministic progress, closeability, and parallelism.
  • LambdaUtils: Utilities for using Java 8 lambdas
  • ReflectionUtils: Wrapper around the Java reflection APIs, simplifying their use and absorbing exceptions.
  • StatusMonitor/StatusListener: "Transactional" status API for long-running tasks. You can set the task state, progress, or message in atomic operations continually, but listeners will only be notified at fixed time intervals (or when certain state changes regardless of time). You can poll a status monitor to know if the user canceled the task.
  • StopWatch: Enhanced/improved version of Apache's stop watch functionality
  • StringMatcher: Utility for programmatically matching strings using starts with, ends with, contains, equals, regular expressions, and ignore case.
  • UnicodeChars: Constant declarations of most unicode characters

Contribution

We welcome pull requests and issues!

commons-jvm's People

Contributors

jdimeo avatar sodagremlin avatar dependabot[bot] avatar bryce-pilcher avatar kant avatar geoffreyrbecker avatar

Watchers

Jovon Packard avatar  avatar

commons-jvm's Issues

Configuration doesn't fall back to current directory if file isn't found.

The configuration file is looked up relative to the jar file, which is great for execution, but for local testing or running within an IDE, this leads to wild file paths. It would be great to check the jar path, then the current directory, then fall back on defaults if it isn't found in either location.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.