You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2021/09/21 15:37:42 UTC
[turbine-fulcrum-build] 01/01: init master build Turbine Fulcrum
maven multi module with git submodules
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 <gk...@apache.org>
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