Fulcrum is a collection of components originally part of the Turbine core project that are suitable for use in any environment. They are designed to be used within any Avalon-compatible container.
Apache Fulcrum components might be used standalone, e.g. Fulcrum Crypto, but most components work best in an environment which uses the Fulcrum Yaafi service framework (which is using the Avalon service lifecycle interfaces aka Avalon container).
You can find a web framework, which is powered by Fulcrum here: Apache Turbine.
You must have Maven 3.x
Building the Fulcrum from SVN is very easy. Fulcrum has been Maven-enabled. Please refer to the Maven Getting Started document for instructions on building. This document is available here:
You could use git to checkout current trunk:
git clone https://github.com/apache/turbine-fulcrum.git git checkout -b remote-trunk remotes/origin/trunk
Check it out with
svn co https://svn.apache.org/repos/asf/turbine/fulcrum/trunk fulcrum-trunk
Each component has its section here.
Fulcrum Components requires Java 8. Older components might require Java 7 only.
mvn deploy -Papache-release
Verify gpg.homedir, gpg.useagent, gpg.passphrase. Check, if -Dgpg.useagent=false is needed, see below comment to pinentry. You may need to add additional profiles, e.g. -Papache-release,java8 or add -Dgpg.passphrase=
mvn clean site install -Papache-release
mvn release:prepare -DdryRun=true -DautoVersionSubmodules=true -Papache-release
Optional security check after mvn clean install:
mvn org.owasp:dependency-check-maven:aggregate -Ddependency.check.skip=false -DskipTests=true.
If dependency check is skipped by default, do mvn org.owasp:dependency-check-maven:check -Ddependency.check.skip=false Since Turbine Parent 8 security check is enabled by default.
mvn release:prepare -DdryRun=true -Papache-release
mvn release:prepare -DautoVersionSubmodules=true -P apache-release
Important: Success will be on the master build, the others are skipped.
mvn release:prepare -Papache-release
Helpful hint from Apache Website: If you're located in Europe then release:prepare may fail with ‘Unable to tag SCM’ and ' svn: No such revision X '. Wait 10 seconds and run mvn release:prepare again.
If you get a 401 error on the upload to repository.apache.org, make sure that your mvn security settings are in place ~/.m2/settings.xml and ~/.m2/settings-security.xml
For more information on setting up security see the encryption guide:
This performs an upload to repository.apache.org/service/local/staging/deploy/maven2/
Hint: Add -Dgpg.useagent=false helps, if running from a windows machine to avoid hanging while gpg plugin signing process .. this may happen, if you do not define the pinentry-program in gpg-agent.conf correctly ..
You could find more information here: Book Reference Staging
Login and close in Nexus Repo:
More information available: CLOSE STAGE.
Fetch the URL for the tagged Repo from target/checkout with
6a Promote / Release
Drop “reverse merge” the release prepare. If backup files (from release:prepare) are still there:
which will delete the tag in svn repo (since version 3.0.0.-M1, that is does a svn delete ..) and revert to the pre-release state. Otherwise revert the commits in your checked out workspace and delete the tag manually.
Drop staged repository in nexus and start again with step 1.
Don't forget to refer to the failed vote Message-ID in the commit messages (svn, nexus).
Checkout the tagged released release and run:
mvn clean install package -Papache-release
Generate checksums with UNIX tool shasum, Windows certutil or other tools and copy artifacts and sha-files to dist source/binaries folder.
If not all jars are included (assembly plugin SHOULD run after jar generation), run a second time without clean. If no sha1 files are in the target folder, check local repo.
After repos/dist is updated an automatic email will be generated, if no update of the release database is done:
SVN Checkout source. Generate and Publish Site: IMPORTANT: You may have to clean up the checkoutDirectory of maven-scm-publish-plugin plugin after doing a dry run!
mvn site site:stage scm-publish:publish-scm -Dscmpublish.dryRun=true
Omit site:stage, which reqires site element definition in distributionManagement
mvn site scm-publish:publish-scm -Dscmpublish.dryRun=true mvn clean site scm-publish:publish-scm -Dusername=<username> -Dpassword=<pw>
Apache Fulcrum is distributed under the Apache License, version 2.0.