Commons.unkrig.de
(→commons-net) |
(→Change Log) |
||
Line 132: | Line 132: | ||
== Change Log == | == Change Log == | ||
− | ; Version 1.2. | + | ; Version 1.2.7-SNAPSHOT (not yet released): |
− | :* | + | :* Added unit tests for the "Substitutor". |
+ | :* Adapted to the refactoring of "IoUtil". | ||
+ | :* PatternUtil: Extracted "PatternUtil.replaceAllFilterReader()" as the new "Substitutor" class. | ||
+ | :* Added TransformerUtil.chain(Transformer...)". | ||
+ | :* Added "StringTransformers", a collection of simple "Transformer<CharSequence, CharSequence>"s. | ||
+ | :* Moved many, many methods from "IoUtil" to the new utility classes "InputStreams", "OutputStreams", "Readers", "Writers" and "FransformingFilter(Reader|Writer)". | ||
+ | :* PatternUtil: PatternUtil: Added "replaceAllFilterWriter()". | ||
+ | :* PatternUtil: Added "replaceAllFilterReader()". | ||
+ | :* IoUtil: Added "singlingFilterReader()" and "singlingInputStream()". | ||
− | ; Version 1.2. | + | ; Version 1.2.6 2016-11-30: |
+ | :* commons-io: Added the "CharFilter", "CharFilterReader" and "CharFilterWrite", which are the char-wise equivalent of "ByteFilter(InputStream|OutputStream)?". | ||
+ | :* Glob: Added the "" special case for the "container match". | ||
+ | :* FileProcessings, ContentsProcessings: The "pathPredicate" was missing from content processors. | ||
+ | |||
+ | ; Version 1.2.5 2016-11-28: | ||
+ | :* Printers: Added "Printers.redirectToFile(Level|EnumSet<Level>)". | ||
+ | |||
+ | ; Version 1.2.4 2016-11-25: | ||
:* IoUtil: Fixed one MalformedURLException. | :* IoUtil: Fixed one MalformedURLException. | ||
:* Added the "ByteFilterOutputStream", as a complement to the "ByteFilterInputStream". | :* Added the "ByteFilterOutputStream", as a complement to the "ByteFilterInputStream". |
Revision as of 16:19, 6 December 2016
de.unkrig.commons is a versatile Java™ library that implements many useful container and utility classes
Contents |
Overview
de.unkrig.commons is structured in several modules who's names are aligned to the related packages in the JDK libraries.
Module Details
commons-asm
Helper classes that are useful in the context of ASM, a Java bytecode manipulation library.
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
commons-file
Functionality for processing or transforming trees of directories, files, compressed and archive files, and even nested compressed and archive files. Supports more than a dozen compression and archive formats.
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
commons-io
Functionality around byte streams and readers/writers, e.g. for converting a byte stream into a hex dump, or formatting an XML document
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
commons-lang
- Utility classes for exceptions, threads and runnables
- "Protocol" interfaces like Producer, Consumer, Predicate, Transformer
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
commons-math
de.unkrig.commons.math: A linear congruential generator; a random sequence generator
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
commons-net
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
commons-nullanalysis
- Annotations and utility classes for ECLIPSE annotation-base "null analysis".
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
commons-reflect
Various utilities for Java's reflection API
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
commons-text
- An expression evaluator
- A small framework for creating scanners and parsers
- A Glob class that combines the widely known elements of UNIX file name globbing with the power of regular expressions
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
commons-util
- CommandLineOptions makes parsing and documentation of command line options (e.g. for "
public static void main(String[])
") easy; see the tutorial. - TimeTable parses and implements a CRON-like specification string
- Various filters, handlers and formatters for java.util.logging
- The SimpleLogging facility for easy integration of java.util.logging within command line tools
Resources: JAVADOC, JAR file Download, Source code Download Maven POM
Source Code
The source code is available through SVN:
https://svn.code.sf.net/p/loggifier/code/de.unkrig.commons/
License
COMMONS.UNKRIG.DE is published under the "New BSD License".
Change Log
- Version 1.2.7-SNAPSHOT (not yet released)
-
- Added unit tests for the "Substitutor".
- Adapted to the refactoring of "IoUtil".
- PatternUtil: Extracted "PatternUtil.replaceAllFilterReader()" as the new "Substitutor" class.
- Added TransformerUtil.chain(Transformer...)".
- Added "StringTransformers", a collection of simple "Transformer<CharSequence, CharSequence>"s.
- Moved many, many methods from "IoUtil" to the new utility classes "InputStreams", "OutputStreams", "Readers", "Writers" and "FransformingFilter(Reader|Writer)".
- PatternUtil: PatternUtil: Added "replaceAllFilterWriter()".
- PatternUtil: Added "replaceAllFilterReader()".
- IoUtil: Added "singlingFilterReader()" and "singlingInputStream()".
- Version 1.2.6 2016-11-30
-
- commons-io: Added the "CharFilter", "CharFilterReader" and "CharFilterWrite", which are the char-wise equivalent of "ByteFilter(InputStream|OutputStream)?".
- Glob: Added the "" special case for the "container match".
- FileProcessings, ContentsProcessings: The "pathPredicate" was missing from content processors.
- Version 1.2.5 2016-11-28
-
- Printers: Added "Printers.redirectToFile(Level|EnumSet<Level>)".
- Version 1.2.4 2016-11-25
-
- IoUtil: Fixed one MalformedURLException.
- Added the "ByteFilterOutputStream", as a complement to the "ByteFilterInputStream".
- ContentsTransformations: Added methods "chain(ContentsTransformer, ContentsTransformer)", "asInputStream(InputStream delegate, ContentsTransformer, String)" and "asOutputStream(ContentsTransformer, OutputStream delegate, name)".
- Added "SelectiveContentsTransformer.create()", which can conduct many optimizations.
- Workover of the "Printers" API: A lot of functionality went from "Printers" to "AbstractPrinter"; the old methods, however, remain, and are now marked as @deprecated.
- IoUtil: Added methods "findOnPath(File[], String resourceName)" and "copyTree(URL, File)".
- Added "de.unkrig.commons.lang.ClassLoaders".
- Slightly clarified the wording of the license: Replaced "author" with "copyright holder and its contributors".
- Version 1.2.3, 2016-11-07
-
- commons-file: The "formats" files didn't make it into the JAR, because they were in "src/main/java" instead of "src/main/resource".
- Version 1.2.2, 2016-11-07
-
- XmlUtil.parse(): Detect and throw IOExceptions (esp. FileNotFoundException) properly.
- commons-junit4: Removed the unnecessary dependency on "org.apache.commons:commons-compress".
- For unknown reasons, the POM of org.apache.commons:commons-compress fails to declare the dependency on "org.tukaani:xz", although it definitely depends on it. Thus added the dependency in "de.unkrig.commons:commons-file"'s POM.
- "IoUtil.parallel()", as a side effect, caused the JVM to not terminate when it is shut down orderly (i.e. "main()" returns or "System.exit()" is invoked).
- Added "ThreadUtil.DAEMON_THREAD_FACTORY".
- Version 1.2.1, 2016-10-30
-
- Removed the nasty circular dependencies around "commons-junit".
- Version 1.2.0, 2016-10-24
-
- Replaced the old ANT build with MAVEN.
- Version 1.1.12, 2016-10-14
-
- Bug fixes in "ProducerUtil.cache()".
- Version 1.1.11, 2016-08-13
-
- ProducerUtil.cache...(): The "invalidationCondition" was treated the wrong way around in some places. Pulled things straigt.
- PredicateUtil: Added method "static synchronizedPredicate(Predicate)".
- Version 1.1.10, 2016-08-12
-
- ProducerUtil.cache(): When the first call of "delegate.produce()" threw an exception, then the NEXT invocation returned NULL (instead of calling "delegate.produce()" again).
- ProducerUtil: Added "cacheAsynchronously()" and "atMostEvery(ms, firstProduct, startAtTrueProduct)".
- Version 1.1.9, 2016-08-02
-
- Fixed the bounds of of the parameters of some "MapUtil()" methods, to make them more versatile.
- Version 1.1.8, 2016-07-26
-
- Moved various map-related methods from "CollectionUtil" to "MapUtil" (where they actually belong), marked the original methods with "@Deprecated" and replaced them with invocations of the "new" methods.
- Moved a few more fields and methods from "CollectionUtil" to "IterableUtil" and "IteratorUtil", where they belong.
- Added many missing bounds to method parameters to make the methods more flexible.
- Version 1.1.7, 2016-06-17
-
- Added "ObjectUtil.hashCode()".
- Added "PredicateUtil.always(boolean)".
- Added "PredicateUtil.xor()".
- "Predicate<T>" now extends "PredicateWhichThrows<T, RuntimeException>".
- Added "ProducerUtil.cache(delegate, condition)".
- "commons/doclet": Added support for the inline tags "{@docRoot}", "{@literal}", "{@constantsof}" and "{@constantsofplain}".
- CommandLineOptions: Initial support for "option cardinality" and "option group cardinality".
- Added "de.unkrig.commons.util.Enums".
- Added the "IdentityHashSet".
- Added methods "Pipe.read(byte[])" and "Pipe.write(byte[])".
- Changed type parameter "EX" of "(Consumer|Function|Predicate|Producer|Runnable|Transformer)WhichThrows" interfaces from "extends Exception" to "extends Throwable" to allow for seamless handlich of the "Longjump" throwable.
- Added a static "ignoreExceptions()" method to the "(Consumer|Function|Predicate|Producer|Runnable|Transformer)Util" classes.
- Longjump: Added various "catchLongjump()" methods for easy integration with Java 8 lambdas.
- Added the following methods:
- IoUtil.copy(File, File, CollisionStrategy)
- IoUtil.copyTree(File, File, CollisionStrategy)
- IoUtil.isContentIdentical(File, File)
- Version 1.1.6, 2016-03-21
-
- Added "ObjectUtil.almostNull()".
- Version 1.1.5, 2016-03-14
-
- de.unkrig.commons.io.IoUtil: Added "skip()" and "skipAll()".
- de.unkrig.commons.text.PatternUtil: Replaced the "Replacer" interface with a "Function<Matcher, String>".
- de.unkrig.commons.file.ExceptionHandler: Handler methods now have, for consistency with the other APIs, an additional parameter "String path".
- de.unkrig.commons.net: TcpServer(SSLContext): Remove several "cipher suites" from the SSL context because otherwise some modern browsers refuse to connect with this server.
- Version 1.1.4, 2015-11-11
-
- de.unkrig.commons.text: JavaScanner/JsonScanner: The CXX_COMMENT now INCLUDES the trailing line break.
- de.unkrig.commons.net: Added Utility class "UrlConnections", with the single method "followRedirects2()".
- de.unkrig.commons.text: Replaced "CamelCase" with the more versatile "Notations" helper class.
- de.unkrig.util.collections: Added the "Stack" interface and its implementation "ArrayStack".
- de.unkrig.commons.lang: Added the "FunctionWhichThrows" interface and the "Functions" utility class.
- Version 1.1.3, 2015-09-19
-
- de.unkrig.commons.doclet: Removed the concept of generating MEDIAWIKI markup - MEDIAWIKI is for COLLABORATION, not for documentation.
- Added "de.unkrig.commons.util.CommandLineOptions" for elegant command line processing.
- Added "de.unkrig.commons.util.concurrent.ByteStreamSequentializer" and "ObjectSequentializer".
- Version 1.1.2, 2015-08-31
-
- Added optional dependencies on 'xz' and APACHE COMPRESS.
- Added "de.unkrig.commons.doclet".
- Added "de.unkrig.commons.text.xml".
- Added "de.unkrig.commons.util.collections.IteratorUtil".
- Various bug fixes in de.unkrig.commons.file
- Added "de.unkrig.commons.file.contentstransformation.TextTransformer".
- "de.unkrig.commons.file.fileprocessing" now supports parallel execution.
- The "JavaScanner" now decodes unicode escapes - strictly speaking: wrong, but very useful in some situations.
- Version 1.1.1, 2015-02-24
-
- Gave up on Java 5 compatibility; Java >= 6 is now required.
- UPDATE no longer takes two separate paramaters 'glob' and 'update-file', but one parameter 'glob=update-file', which makes it possible to use variable references when creating the 'update-file' name.
- Push releases to OSSRH and eventually to MAVEN CENTRAL
- Version 1.1.0, 2015-02-04
-
- Major refactoring of 'de.unkrig.commons.file.fileprocessing' and 'de.unkrig.commons.file.contentsprocessing'.
- de.unkrig.commons.file.filetransformation: Thanks to apache.commons.compress, we now not only support the ZIP archive format and the GZIP compression algorithm, but also the AR, ARJ, CPIO, DUMP, JAR, TAR and SEVEN_Z archive formats and the BZIP2, PACK200, XZ, LZMA, SNAPPY and Z compression algorithms.
- Added 'de.unkrig.commons.lang.security.Sandbox'.
- Version 1.0.5, 2014-05-01
-
- Moved the <log>, <logging> and <simpleLogging> tasks from 'de.unkrig.commons.util' to 'de.unkrig.antcontrib'.
- Version 1.0.4, 2014-04-29
-
- 'keepOriginals' did not work for in-place file transformations.
- <simplelogging>: Added attribute 'spec="..."'.
- <simpleLogging>: Attribute 'debug="..."' no longer is boolean, but "FINE|FINER|FINEST".
- <logging>: Removed attribute 'parent="..."'
- <logging>: Added attribute 'clearFilter="true"'.
- Renamed task <simplelogging> to <simpleLogging> (with a big 'L').
- Versions 1.0.3 and earlier
- No change log available.