GitHub action validations added

Signed-off-by: Maxim Nesen <maxim.nesen@oracle.com>
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 6480243..1aaf848 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation
+# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation
 #
 # This program and the accompanying materials are made available under the
 # terms of the Eclipse Public License v. 2.0 which is available at
@@ -10,7 +10,7 @@
 # SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
 #
 
-name: Jersey
+name: Eclipse Required License Check
 
 on: [push, pull_request]
 
@@ -29,11 +29,11 @@
 
     steps:
     - name: Checkout for build
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
       with:
         fetch-depth: 0
     - name: Set up JDK
-      uses: actions/setup-java@v3
+      uses: actions/setup-java@v4.1.0
       with:
         distribution: 'zulu'
         java-version: ${{ matrix.java_version }}
@@ -44,7 +44,7 @@
     - name: Build
       run: mvn -V -U -B ${{matrix.verify_profiles}} org.eclipse.dash:license-tool-plugin:license-check -DexcludeArtifactIds=bsh,jmh-core,jmh-generator-annprocess,swing-layout
     - name: Upload license-check info
-      uses: actions/upload-artifact@v3
+      uses: actions/upload-artifact@v4
       with:
         name: license-summary.txt
         path: target/dash/summary
diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
new file mode 100644
index 0000000..5748a52
--- /dev/null
+++ b/.github/workflows/validate.yml
@@ -0,0 +1,99 @@
+#
+# Copyright (c) 2024 Contributors to the Eclipse Foundation
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v. 2.0 which is available at
+# http://www.eclipse.org/legal/epl-2.0,
+# or the Eclipse Distribution License v. 1.0 which is available at
+# http://www.eclipse.org/org/documents/edl-v10.php.
+#
+# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
+#
+
+name: "Validate"
+
+on: [pull_request, push]
+
+env:
+  JAVA_VERSION: '8'
+  JAVA_DISTRO: 'temurin'
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  copyright:
+    timeout-minutes: 10
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+      - name: Set up JDK ${{ env.JAVA_VERSION }}
+        uses: actions/setup-java@v4.1.0
+        with:
+          distribution: ${{ env.JAVA_DISTRO }}
+          java-version: ${{ env.JAVA_VERSION }}
+          cache: maven
+      - name: Copyright
+        run: etc/scripts/copyright.sh
+      - name: Upload copyright info
+        uses: actions/upload-artifact@v4
+        with:
+          name: copyright_results
+          path: copyright.log
+          retention-days: 5
+  checkstyle:
+    timeout-minutes: 10
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - name: Set up JDK ${{ env.JAVA_VERSION }}
+        uses: actions/setup-java@v4.1.0
+        with:
+          distribution: ${{ env.JAVA_DISTRO }}
+          java-version: ${{ env.JAVA_VERSION }}
+          cache: maven
+      - name: Checkstyle
+        run: etc/scripts/checkstyle.sh
+      - name: Upload checkstyle info
+        uses: actions/upload-artifact@v4
+        with:
+          name: checkstyle_results
+          path: target/checkstyle/checkstyle-result.xml
+          retention-days: 5
+  apidocs:
+    timeout-minutes: 30
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - name: Set up JDK 17
+        uses: actions/setup-java@v4.1.0
+        with:
+          distribution: ${{ env.JAVA_DISTRO }}
+          java-version: 17
+          cache: maven
+      - name: Build JDK17+ required modules
+        run: mvn -B -U -V clean install -DskipTests -pl :jersey-helidon-connector -am
+      - name: Set up JDK ${{ env.JAVA_VERSION }}
+        uses: actions/setup-java@v4.1.0
+        with:
+          distribution: ${{ env.JAVA_DISTRO }}
+          java-version: ${{ env.JAVA_VERSION }}
+          cache: maven
+      - name: Build ApiDocs
+        run: etc/scripts/apidocs.sh
+  archetypes:
+    timeout-minutes: 45
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - name: Set up JDK ${{ env.JAVA_VERSION }}
+        uses: actions/setup-java@v4.1.0
+        with:
+          distribution: ${{ env.JAVA_DISTRO }}
+          java-version: ${{ env.JAVA_VERSION }}
+          cache: maven
+      - name: Test archetypes
+        run: etc/scripts/test-archetypes.sh
\ No newline at end of file
diff --git a/etc/config/checkstyle.xml b/etc/config/checkstyle.xml
index 36a7def..52d0455 100644
--- a/etc/config/checkstyle.xml
+++ b/etc/config/checkstyle.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 2024 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0, which is available at
@@ -88,7 +88,7 @@
         <!-- Checks for Javadoc comments.                     -->
         <!-- See http://checkstyle.sf.net/config_javadoc.html -->
         <module name="JavadocMethod">
-            <property name="scope" value="protected"/>
+            <property name="accessModifiers" value="protected"/>
         <!-- <property name="allowUndeclaredRTE" value="true"/>-->
         </module>
         <module name="JavadocType">
diff --git a/etc/config/copyright-exclude b/etc/config/copyright-exclude
index 9577477..e892508 100644
--- a/etc/config/copyright-exclude
+++ b/etc/config/copyright-exclude
@@ -41,6 +41,7 @@
 /etc/config/copyright.txt
 /etc/config/edl-copyright.txt
 /etc/jenkins/
+/etc/scripts
 /etc/travis/
 /LICENSE.md
 /third-party-license-readme.txt
diff --git a/etc/scripts/apidocs.sh b/etc/scripts/apidocs.sh
new file mode 100755
index 0000000..12b2364
--- /dev/null
+++ b/etc/scripts/apidocs.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+mvn -U -V -B clean install -Ppre-release -pl :apidocs -am -DskipTests
\ No newline at end of file
diff --git a/etc/scripts/checkstyle.sh b/etc/scripts/checkstyle.sh
new file mode 100755
index 0000000..ad36942
--- /dev/null
+++ b/etc/scripts/checkstyle.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+mvn -V -U -B  checkstyle:checkstyle-aggregate -Dcheckstyle.output.format="plain" -Dcheckstyle.output.file=checkstyle.log
\ No newline at end of file
diff --git a/etc/scripts/copyright.sh b/etc/scripts/copyright.sh
new file mode 100755
index 0000000..a874923
--- /dev/null
+++ b/etc/scripts/copyright.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+readonly CP_PATTERN='Copyright year is wrong'
+
+
+[[ -n ${1} ]] && readonly LOG_FILE=${1} || readonly LOG_FILE='copyright.log'
+
+
+echo ${LOG_FILE}
+
+mvn -U -B  glassfish-copyright:copyright -Dcopyright.quiet=false | grep "${CP_PATTERN}" | tee ${LOG_FILE}
+
+grep "${CP_PATTERN}"  ${LOG_FILE} || exit 0 && exit 1
\ No newline at end of file
diff --git a/etc/scripts/test-archetypes.sh b/etc/scripts/test-archetypes.sh
new file mode 100755
index 0000000..8ac27e3
--- /dev/null
+++ b/etc/scripts/test-archetypes.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+mvn -U -V -B clean install -pl org.glassfish.jersey.archetypes:project
\ No newline at end of file