Skip to content

fingo/xactus

Repository files navigation

About

Xactus is FINGO's open-source XPath 2.0 processing library based on the Eclipse's XPath 2.0 implementation from the Eclipse Web Tools Platform Project's.

Contributing

Pull requests are welcome. We will respond as much as possible. For major changes please open an issue first to discuss what you would like to do.

To protect the rights of others, we use the Developer Certificate of Origin. If you want to develop the project with us, please confirm authorship by signing-off your commits. The procedure is verified using Probot: DCO.

License

The library is published under the Eclipse Public License v2.0 license, a copy you will find in the license file. If you received this library from another party, conditions other than those stated here might apply. Please check it with your Redistributor.

Development

Building

  • ./gradlew jar - builds the library.
  • ./gradlew sourcesJar - builds sources JAR.
  • ./gradlew javadoc - builds Javadocs.
  • ./gradlew javadocJar - builds Javadoc JAR.

Running tests

  • ./gradlew test - run all tests excluding JUnit 3 test suites.
  • ./gradlew testSuite - runs JUnit 3 test suites only.

Publishing

Version management

Xactus is using Axion Release Plugin for version management. Please refer to Axion's documentation for usage tips.

Automatic publications - GitHub Actions

Xactus has an automated release process created with GitHub Actions. Validate and publish workflow is responsible for validating the build and releasing artifacts to Sonatype. Snapshot versions are published to the Xactus Snapshot repo and release versions go to Maven Central repository.

For every commit pushed to master a new snapshot will be published. The version for the snapshot is determined using Axion's currentVersion Gradle task:

./gradlew cV

Release versions are automatically published whenever a release tag shows up in the repo (e.g. v1.2.3). The release tag can be created either manually or using Axions's ./gradlew release task:

./gradlew release

Successful test run is a prerequisite to all publications. Also be advised that both snapshot and release publications might become available with a delay (from a few minutes to a few hours after publication).

Manual publication

There are a few publishing targets:

  • local folder ('build/repos/releases' and 'build/repos/snapshots'):

    ./gradlew -Pversion=<publish version> publishToLocalRepository
    
  • M2 local cache:

    ./gradlew -Pversion=<publish version> publishToMavenLocal
    
  • Maven Central/Sonatype (requires OSSRH credentials to be set - see below):

    ./gradlew -Pversion=<publish version> publishToSonatype
    

Manual publication - PGP configuration

Publishing tasks require some project properties to be set:

  • pgpSecretKey - ascii-armored PGP secret key to sign the artifact.
  • pgpSecretKeyPassword - the password for the PGP secret key.
  • pgpKeyId (optional) - the id of the OpenPGP sub-key.

Specifying pgpSecretKey and pgpSecretKeyPassword causes the signing mechanism to use in-memory ascii armored keys or in-memory ascii-armored OpenPGP subkeys (when signing.pgp.keyId is set as well).

When neither of the pgpSecretKey and pgpSecretKeyPassword parameters are supplied then the default set of settings is taken into account.

Manual publication - Publishing to Maven Central

Command to publish Xactus to Maven Central:

  ./gradlew -Pversion=<publish version> publishToSonatype

You can also automatically close and release the staging repository after the release (thanks to Gradle Nexus Publish Plugin):

  ./gradlew -Pversion=<publish version> publishToSonatype closeAndReleaseSonatypeStagingRepository

This will publish Xactus to Maven Central automatically, without the need to use Sonatype Nexus UI.

To publish an artifact to Maven Central OSSRH credentials need to be supplied in addition to the PGP configuration:

  • ossrhUserName - OSSRH username to be used to deploy the artifact.
  • ossrhPassword - password for the OSSRH user.

Links

About

Xactus is FINGO's open-source XPath 2.0 processing library based on Eclipse's XPath 2.0 implementation from the Eclipse Web Tools Platform Project.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages