Menu

Tree [d29ed9] master /
 History

HTTPS access


File Date Author Commit
 buildSrc 2026-01-02 Carlos Amengual Carlos Amengual [c0ddb1] Bump year to 2026 in copyright notices
 doc 2021-11-23 Carlos Amengual Carlos Amengual [fd53a8] Gradle: add a modular javadoc generation task.
 etc 2022-11-25 Carlos Amengual Carlos Amengual [070dcc] Upgrade code format spec.
 gradle 2026-01-24 Carlos Amengual Carlos Amengual [d29ed9] Upgrade Gradle wrapper to 8.14.4
 jclf 2026-01-02 Carlos Amengual Carlos Amengual [c0ddb1] Bump year to 2026 in copyright notices
 jclf-core 2026-01-02 Carlos Amengual Carlos Amengual [c0ddb1] Bump year to 2026 in copyright notices
 jclf-io 2026-01-02 Carlos Amengual Carlos Amengual [c0ddb1] Bump year to 2026 in copyright notices
 jclf-linear3 2026-01-02 Carlos Amengual Carlos Amengual [c0ddb1] Bump year to 2026 in copyright notices
 jclf-net 2026-01-02 Carlos Amengual Carlos Amengual [c0ddb1] Bump year to 2026 in copyright notices
 jclf-text 2026-01-02 Carlos Amengual Carlos Amengual [c0ddb1] Bump year to 2026 in copyright notices
 jclf-util 2026-01-02 Carlos Amengual Carlos Amengual [c0ddb1] Bump year to 2026 in copyright notices
 .gitattributes 2023-11-29 Carlos Amengual Carlos Amengual [464466] Default to Linux line endings for source files
 .gitignore 2024-12-27 Carlos Amengual Carlos Amengual [72e21f] text: add a Jazzer-based fuzzer
 CHANGES.txt 2025-04-01 Carlos Amengual Carlos Amengual [c8c331] Release 5.0.3
 LICENSE.txt 2026-01-02 Carlos Amengual Carlos Amengual [c0ddb1] Bump year to 2026 in copyright notices
 README.md 2025-04-01 Carlos Amengual Carlos Amengual [c8c331] Release 5.0.3
 RELEASE_NOTES.txt 2025-04-01 Carlos Amengual Carlos Amengual [6e855f] Fix copyright & release notes dates
 gpgsign.sh 2022-01-24 Carlos Amengual Carlos Amengual [5b8ef1] gpgsign: fix signing of linear3 package.
 gradle.properties 2025-11-18 Carlos Amengual Carlos Amengual [5fa162] Upgrade to JUnit 5.14.1
 gradlew 2025-04-26 Carlos Amengual Carlos Amengual [629b67] Upgrade Gradle wrapper to 8.14
 gradlew.bat 2025-04-26 Carlos Amengual Carlos Amengual [629b67] Upgrade Gradle wrapper to 8.14
 settings.gradle 2021-05-16 Carlos Amengual Carlos Amengual [9624e0] Add Gradle build.

Read Me

JCLF

JCLF is a small library of generic utilities written in the Java™ language.

Beware that the code is very old and many of the classes are obsolete.

Building from source

Requirements

To build JCLF you need Java 11 or later, you can install Java from your favourite package manager or by downloading from Adoptium.


Building with Gradle

Open a shell at the distribution directory, then run gradlew build to build:

./gradlew build


Testing with Java 8

A build runs the tests with the JDK that you are using, but you can also run the tests with Java 8:

./gradlew testOn8


Fuzzing

This library includes a Jazzer-based
fuzzing test that can be run with

./gradlew fuzzer

as well as within your IDE (in the latter case you have to set the JAZZER_FUZZ
environment variable).


Deploying to a Maven repository

Use:

  • gradlew build publishToMavenLocal to install in your local Maven repository.
  • gradlew publish to deploy to a (generally remote) Maven repository.

Before deploying to a remote Maven repository, please read the publishing.repositories.maven block of io.sf.jclf.java-conventions.gradle (sourceforge.net) to learn which properties you need to set (like mavenReleaseRepoUrlor mavenRepoUsername), either at the command line (-P option) or your GRADLE_USER_HOME/gradle.properties file.


Creating a Jar with all packages

Sometimes, in non-modular projects it is useful to have a single Jar file with all the packages. Execute the alljar task to create it:

gradlew alljar

The file is to be found inside the jclf submodule build, at jclf/build/libs/jclf-<version>-all.jar.


Generating a multi-module javadoc

Execute the modularJavadoc task, and you'll have the javadocs in doc/api:

gradlew modularJavadoc

If you prefer a non-modular javadoc, then the task mergedJavadoc shall create it under the jclf submodule build, at jclf/build/docs/javadoc.


Open the project in your IDE

Modern IDEs are able to import Gradle projects and let it manage the dependencies. For example, in the Eclipse IDE:

File > Import... > Gradle > Existing Gradle Project

Eclipse shall ask you if you want to use a wrapper or its own instance of Gradle. If you created a wrapper after getting the sources, select the "wrapper" choice.


Usage from a Gradle project

If your Gradle project depends on JCLF, you can use CSS4J's Maven repository in a repositories section of your build file:

repositories {
    maven {
        url = "https://css4j.github.io/maven/"
        mavenContent {
            releasesOnly()
        }
        content {
            includeGroup 'io.sf.jclf'
        }
    }
}

please use that repository only for the artifact groups that it supplies (basically the io.sf.jclf and io.sf.carte groups).

Then, in your build.gradle file you can list the dependencies, for example:

dependencies {
    api "io.sf.jclf:jclf-core:${jclfVersion}"
}

or, if you want all of the modules:

dependencies {
    api "io.sf.jclf:jclf:${jclfVersion}"
}

where jclfVersion would be defined in a gradle.properties file (current version is 5.0.3).


Fuzzing

This library includes a Jazzer-based
fuzzing test that can be run with

./gradlew fuzzer

as well as within your IDE (in the latter case you have to set the JAZZER_FUZZ
environment variable).


Licensing

Unless otherwise specified, this software is available under a BSD license, please read the LICENSE.txt file.

MongoDB Logo MongoDB