This is an automated email from the ASF dual-hosted git repository. gk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-build.git
commit a6b6d52e64f4c180084f0d2efca013639c34d56a Author: Georg Kallidis <[email protected]> AuthorDate: Tue Sep 21 16:36:50 2021 +0100 init master build Turbine Fulcrum maven multi module with git submodules --- .gitignore | 8 ++ .gitmodules | 60 ++++++++++++++ README.md | 255 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cache | 1 + crypto | 1 + factory | 1 + intake | 1 + json | 1 + localization | 1 + parser | 1 + pom.xml | 100 +++++++++++++++++++++++ pool | 1 + quartz | 1 + security | 1 + site | 1 + testcontainer | 1 + yaafi | 1 + yaafi-crypto | 1 + 18 files changed, 437 insertions(+) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8135ba5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +target/ +*.log +.classpath +.project +*.iml +*.patch +*.ser +*~ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..99baeb3 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,60 @@ +[submodule "turbine-fulcrum-cache"] + path = turbine-fulcrum-cache + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-cache.git + branch = master +[submodule "cache"] + path = cache + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-cache.git + branch = master +[submodule "factory"] + path = factory + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-factory.git + branch = master +[submodule "json"] + path = json + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-json.git + branch = master +[submodule "localization"] + path = localization + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-localization.git + branch = master +[submodule "parser"] + path = parser + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-parser.git + branch = master +[submodule "pool"] + path = pool + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git + branch = master +[submodule "quartz"] + path = quartz + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-quartz.git + branch = master +[submodule "security"] + path = security + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-security.git + branch = master +[submodule "site"] + path = site + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-site.git + branch = master +[submodule "testcontainer"] + path = testcontainer + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-testcontainer.git + branch = master +[submodule "yaafi"] + path = yaafi + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-yaafi.git + branch = master +[submodule "yaafi-crypto"] + path = yaafi-crypto + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-yaafi-crypto.git + branch = master +[submodule "crypto"] + path = crypto + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-crypto.git + branch = master +[submodule "intake"] + path = intake + url = https://gitbox.apache.org/repos/asf/turbine-fulcrum-intake.git + branch = master diff --git a/README.md b/README.md new file mode 100644 index 0000000..9b22ca5 --- /dev/null +++ b/README.md @@ -0,0 +1,255 @@ +# [Apache F U L C R U M](https://turbine.apache.org/fulcrum/) +-------------------------------------------------------------------------- + +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. + +## U S A G E + +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](https://turbine.apache.org/). + +## B U I L D I N G +-------------------------------------------------------------------------- +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: + +https://maven.apache.org/guides/getting-started/ + + +### GIT +------------------------------------------- + +You could use git to checkout current trunk: + + git clone --recurse-submodules https://github.com/apache/turbine-fulcrum-build.git + + +To update submodules: + + git pull --recurse-submodules + +To merge and fast-forward + + git submodule update --remote --merge + + +## Documentation +-------------------------------------------------------------------------- + +Each component has its section [here](https://turbine.apache.org/fulcrum/). + +## Requirements +-------------------------------------------------------------------------- + +Fulcrum Components requires Java 8. Older components might require Java 7 only. + + ----------------------------------------------------------------------- +## COMPONENT DEVELOPMENT +-------------------------------------------------------------------------- +### Publishing Workflow + +#### Prerequisites + +Deploy jars + + mvn deploy -Papache-release + +More Information: + - https://www.apache.org/dev/publishing-maven-artifacts.html#prepare-poms + - http://maven.apache.org/developers/website/deploy-component-reference-documentation.html + - https://infra.apache.org/publishing-maven-artifacts.html + +##### Steps + +1. Local Testing + + 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=<xx> + +```sh +mvn clean site install -Papache-release +``` + +**Multi Module** + + 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. + +**Single** + +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 + +And finally: + + mvn release:clean + +2. Remote Testing + +- May require explicit authentication with -Dusername=<username> -Dpassword=<pw> + +**Multi Module** + + mvn release:prepare -DautoVersionSubmodules=true -P apache-release + + +Important: Success will be on the master build, the others are skipped. + +**Single** + + 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. + +3. Release Preparing + +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: + - [GUIDE ENCRYPTION](http://maven.apache.org/guides/mini/guide-encryption.html). + +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 .. + + mvn release:perform + +You could find more information here: [Book Reference Staging](http://www.sonatype.com/books/nexus-book/reference/staging.html) + +4. Close the staging + +Login and close in Nexus Repo: + + - [Staging](https://repository.apache.org/index.html#stagingRepositories) + + More information available: [CLOSE STAGE](https://www.apache.org/dev/publishing-maven-artifacts.html#close-stage). + + Fetch the URL for the tagged Repo from target/checkout with + + svn info + git remote -v + + +5. Prepare Voting Information and Voting + + .... + +6. Either Promote / Publish or Drop and Restage + + - [PROMOTE INFO](http://www.apache.org/dev/publishing-maven-artifacts.html#promote) + - [DROP INFO](http://www.apache.org/dev/publishing-maven-artifacts.html#drop) + +6a Promote / Release + +- Release staged repository in nexus and proceed with next step. + +6b Revert + +- Drop "reverse merge" the release prepare. If backup files (from release:prepare) are still there: + + mvn release:rollback + +which will delete the tag in git branch/svn repo tag (since version 3.0.0.-M1, it 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). + + +7. Distribution + + - (http://www.apache.org/dev/release#upload-ci), + - http://www.apache.org/dev/release.html#host-GA and + - http://www.apache.org/dev/release-publishing.html#distribution + + + - Update branch asf-site in Fulcrum component root: Copy files from target/staging to the root of branch asf-site and commit. + This will trigger (with .asf.yaml configuration) an update to the distribution site. + + - SVN checkout target distribution from https://dist.apache.org/repos/dist/release/turbine/<...>/<...> + - SVN checkout released source from https://svn.apache.org/repos/asf/turbine/<..>/tags/<..> + - Generate artifacts (check local repo and target for artifacts) from released version: + +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. + +- SVN Add <binaries>, <sources> artifacts (jar/zip/tar.gz,asc,sha512 files) to target repo. +- SVN Remove old releases binaries and sources + + After repos/dist is updated an automatic email will be generated, if no update of the release database is done: + + - [ADD TO TURBINE RELEASE APACHE](https://reporter.apache.org/addrelease.html?turbine) + + + 8. Stage the latest documentation + +- [DEPLOY DOCU](http://maven.apache.org/developers/website/deploy-component-reference-documentation.html) + +Git Checkout <tagged release version> source. Generate and Publish Site + +### Description of the process + +- Generate the site (mvn site, single module, mvn site site:stage multi module) + +- checkout branch asf-site (verify proper settings in .asf.yaml) + +- copy content of target/site (single module), target/staging (multi module) to the root of the branch + +- commit and push (this trigers the site update, if not contact INFRA) + +### Maven (not used for Git) + +IMPORTANT: You may have to clean up the checkoutDirectory of maven-scm-publish-plugin plugin after doing a dry run! +This directory is configured in turbine-parent bydefault outside target folder: + + turbine.site.cache: ${user.home}/turbine-sites + +But check pom.xml configuration of properties. + +**Multi Module** + + mvn clean site site:stage + mvn scm-publish:publish-scm -Dscmpublish.dryRun=true + +**Single** + +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> + + +To deploy the site execute: + + mvn site-deploy + + +## License + +Apache Fulcrum is distributed under the [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). diff --git a/cache b/cache new file mode 160000 index 0000000..ad6c836 --- /dev/null +++ b/cache @@ -0,0 +1 @@ +Subproject commit ad6c8362dd73c795b31a1feb9010ef60fd66c289 diff --git a/crypto b/crypto new file mode 160000 index 0000000..ac6f4e9 --- /dev/null +++ b/crypto @@ -0,0 +1 @@ +Subproject commit ac6f4e9739e3d8a9a7d6f25561ac2322eadbec4a diff --git a/factory b/factory new file mode 160000 index 0000000..2876657 --- /dev/null +++ b/factory @@ -0,0 +1 @@ +Subproject commit 287665732b7ca32bae30c6d4307cbba56362fe18 diff --git a/intake b/intake new file mode 160000 index 0000000..c83c3f4 --- /dev/null +++ b/intake @@ -0,0 +1 @@ +Subproject commit c83c3f43e6c906852b3b68bbbbecc641e9079eca diff --git a/json b/json new file mode 160000 index 0000000..29a4a0f --- /dev/null +++ b/json @@ -0,0 +1 @@ +Subproject commit 29a4a0f56fd9d8e18f31d7db454db3e6479a08c9 diff --git a/localization b/localization new file mode 160000 index 0000000..f21dde1 --- /dev/null +++ b/localization @@ -0,0 +1 @@ +Subproject commit f21dde1c80476d0e707ad26f6d2762916880da94 diff --git a/parser b/parser new file mode 160000 index 0000000..196fc7d --- /dev/null +++ b/parser @@ -0,0 +1 @@ +Subproject commit 196fc7df5058518b826e0d1d34ec8fcd997d8f40 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..7e5f07f --- /dev/null +++ b/pom.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>turbine-parent</artifactId> + <groupId>org.apache.turbine</groupId> + <version>9-SNAPSHOT</version> + </parent> + <artifactId>fulcrum</artifactId> + <packaging>pom</packaging> + <version>1</version> + <name>Fulcrum Master Build</name> + <url>http://turbine.apache.org/fulcrum</url> + <inceptionYear>2001</inceptionYear> + + <modules> + + <!-- turbine / torque dependencies --> + + <module>cache</module> + <module>crypto</module> + <module>factory</module> + <module>intake</module> + <module>json</module> + <module>localization</module> + <module>parser</module> + <module>pool</module> + <module>quartz</module> + <module>security</module> + <module>testcontainer</module> + <!--TODO add as git + module>upload</module--> + <module>yaafi-crypto</module> + <module>yaafi</module> + + <!-- Potentially dormant modules --> + <!--module>commonsemail</module> + <module>configuration/impl</module> + <module>hsqldb</module> + <module>mimetype</module> + <module>pbe</module> + <module>resourcemanager</module> + <module>groovy</module> + <module>script</module> + <module>servicemanager</module> + <module>spring</module> + <module>xmlrpc</module> + <module>xslt</module--> + + <!-- needs upgrade to eclipse jetty --> + <!--module>jetty</module--> + + </modules> + + <build> + <pluginManagement> + <plugins> + <!-- run optionally + mvn org.owasp:dependency-check-maven:aggregate + do not use it as reporting plugin, as it exposes file paths to artifacts + check each possible vulnerability carefully, find more info about how to read, false positives et al. here: https://jeremylong.github.io/DependencyCheck/dependency-check-maven/plugin-info.html + --> + <plugin> + <groupId>org.owasp</groupId> + <artifactId>dependency-check-maven</artifactId> + <executions> + <execution> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + <!--configuration> + <suppressionFiles>true</suppressionFiles> + </configuration--> + </plugin> + </plugins> + </pluginManagement> + </build> + +</project> + diff --git a/pool b/pool new file mode 160000 index 0000000..76d3e6c --- /dev/null +++ b/pool @@ -0,0 +1 @@ +Subproject commit 76d3e6ca85a15d0f3be4ce6ad1392c60282f1277 diff --git a/quartz b/quartz new file mode 160000 index 0000000..237e494 --- /dev/null +++ b/quartz @@ -0,0 +1 @@ +Subproject commit 237e4944dd35bec70d456d14e7c171db23ce55f2 diff --git a/security b/security new file mode 160000 index 0000000..55f0104 --- /dev/null +++ b/security @@ -0,0 +1 @@ +Subproject commit 55f0104855ae0c22bec4a08bf917d7f8291c6872 diff --git a/site b/site new file mode 160000 index 0000000..90e99aa --- /dev/null +++ b/site @@ -0,0 +1 @@ +Subproject commit 90e99aa38431c4da369e8a7467596066a727d062 diff --git a/testcontainer b/testcontainer new file mode 160000 index 0000000..b64234a --- /dev/null +++ b/testcontainer @@ -0,0 +1 @@ +Subproject commit b64234ae9085d98be752ffe95dee7be33328d56c diff --git a/yaafi b/yaafi new file mode 160000 index 0000000..f59c727 --- /dev/null +++ b/yaafi @@ -0,0 +1 @@ +Subproject commit f59c7279716e9ce5643fbccac9e8bd6cc7d34456 diff --git a/yaafi-crypto b/yaafi-crypto new file mode 160000 index 0000000..452870f --- /dev/null +++ b/yaafi-crypto @@ -0,0 +1 @@ +Subproject commit 452870f306f8528c41b198897a53224e755da6c6
