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