copyright fixes

Signed-off-by: Maxim Nesen <maxim.nesen@oracle.com>
diff --git a/.travis.yml b/.travis.yml
index ce29ea4..ecf350a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,4 +21,4 @@
 install: true
 
 script:
-  - bash travis.sh $TEST_SET
\ No newline at end of file
+  - bash etc/travis/travis.sh $TEST_SET
diff --git a/core-common/src/test/java/org/glassfish/jersey/message/internal/MessageBodyFactoryTest.java b/core-common/src/test/java/org/glassfish/jersey/message/internal/MessageBodyFactoryTest.java
index a4e56a5..c6ff32c 100644
--- a/core-common/src/test/java/org/glassfish/jersey/message/internal/MessageBodyFactoryTest.java
+++ b/core-common/src/test/java/org/glassfish/jersey/message/internal/MessageBodyFactoryTest.java
@@ -1,7 +1,22 @@
+/*
+ * Copyright (c) 2013, 2018 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
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
 package org.glassfish.jersey.message.internal;
 
 import java.lang.reflect.Type;
-import java.util.Collections;
 import java.io.OutputStream;
 import java.lang.annotation.Annotation;
 import java.util.ArrayList;
@@ -10,7 +25,6 @@
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.ext.MessageBodyWriter;
 
-import org.glassfish.jersey.message.AbstractEntityProviderModel;
 import org.glassfish.jersey.message.WriterModel;
 
 import org.junit.Test;
diff --git a/etc/config/copyright-exclude b/etc/config/copyright-exclude
index bfe68c0..880b139 100644
--- a/etc/config/copyright-exclude
+++ b/etc/config/copyright-exclude
@@ -24,6 +24,7 @@
 .zip
 .dat
 .lua
+.travis.yml
 /docs/src/main/docbook/inc/modules_table_footer.src
 /docs/src/main/docbook/inc/modules_table_header.src
 /docs/src/main/docbook/inc/modules_table_row.src
@@ -36,6 +37,8 @@
 /etc/config/copyright-exclude
 /etc/config/copyright.txt
 /etc/config/edl-copyright.txt
+/etc/jenkins/
+/etc/travis/
 /LICENSE.md
 /third-party-license-readme.txt
 nb-configuration.xml
@@ -78,3 +81,5 @@
 /examples/bean-validation-webapp/src/main/webapp/fonts
 /META-INF/NOTICE.md
 NOTICE.md
+/ext/cdi/jersey-cdi1x/src/main/java/org/glassfish/jersey/ext/cdi1x/internal/ProcessAllAnnotatedTypes.java 
+/ext/cdi/jersey-cdi1x/src/main/java/org/glassfish/jersey/ext/cdi1x/internal/ProcessJAXRSAnnotatedTypes.java
diff --git a/etc/hudson/README b/etc/hudson/README
deleted file mode 100644
index 321312b..0000000
--- a/etc/hudson/README
+++ /dev/null
@@ -1 +0,0 @@
-Folder containing all Hudson scripts.
\ No newline at end of file
diff --git a/etc/jenkins/Jenkinsfile_EE4J_build b/etc/jenkins/Jenkinsfile_EE4J_build
new file mode 100644
index 0000000..9ac5a23
--- /dev/null
+++ b/etc/jenkins/Jenkinsfile_EE4J_build
@@ -0,0 +1,46 @@
+#!/usr/bin/env groovy
+
+pipeline {
+    agent any
+    triggers {
+        pollSCM('H H * * *')
+    }
+    tools {
+        jdk 'oracle-jdk8-latest'
+        maven 'apache-maven-latest'
+    }
+    environment {
+        MVN = 'mvn -B -q -Ddoclint=none -Dadditionalparam="-Xdoclint:none" -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
+        REPO='git@github.com:eclipse-ee4j/jersey.git'
+        CREDENTIALS_ID='f5848e71-9994-45e3-8214-137ce91ddbcf'
+        BUILD_BRANCH='EE4J_8'
+    }
+    stages {
+        stage('Fetch from git') {
+            steps {
+                git(branch: BUILD_BRANCH, credentialsId: CREDENTIALS_ID, url: REPO)
+            }
+        }
+        stage('Nightly Build') {
+            steps {
+                withCredentials([file(credentialsId: '6474d9ed-eadc-47a0-8f60-43277c1cad52', variable: 'KEYRING')]) {
+                    configFileProvider([configFile(fileId: '8e6103e6-a03e-44fe-bd9a-a4ed070d9b56', targetLocation: '/home/jenkins/.m2/')]) {
+
+                        //# Workaround: GPG initialization
+                        sh("gpg --batch --import ${KEYRING}")
+                        sh '''
+                        for fpr in $(gpg --list-keys --with-colons  | awk -F: '/fpr:/ {print $10}' | sort -u);
+                        do
+                            echo -e "5\ny\n" |  gpg --batch --command-fd 0 --expert --edit-key $fpr trust;
+                        done
+                       '''
+                        configFileProvider([configFile(fileId: 'c88e58d9-97bd-4f06-af82-fd469abcedea', variable: 'MAVEN_SETTINGS_XML')]) {
+                            sh "$MVN -s $MAVEN_SETTINGS_XML clean install"
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
diff --git a/etc/jenkins/Jenkinsfile_master_build b/etc/jenkins/Jenkinsfile_master_build
new file mode 100644
index 0000000..4993706
--- /dev/null
+++ b/etc/jenkins/Jenkinsfile_master_build
@@ -0,0 +1,46 @@
+#!/usr/bin/env groovy
+
+pipeline {
+    agent any
+    triggers {
+        pollSCM('H H * * *')
+    }
+    tools {
+        jdk 'oracle-jdk8-latest'
+        maven 'apache-maven-latest'
+    }
+    environment {
+        MVN = 'mvn -B -q -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
+        REPO='git@github.com:eclipse-ee4j/jersey.git'
+        CREDENTIALS_ID='f5848e71-9994-45e3-8214-137ce91ddbcf'
+        BUILD_BRANCH='master'
+    }
+    stages {
+        stage('Fetch from git') {
+            steps {
+                git(branch: BUILD_BRANCH, credentialsId: CREDENTIALS_ID, url: REPO)
+            }
+        }
+        stage('Nightly Build') {
+            steps {
+                withCredentials([file(credentialsId: '6474d9ed-eadc-47a0-8f60-43277c1cad52', variable: 'KEYRING')]) {
+                    configFileProvider([configFile(fileId: '8e6103e6-a03e-44fe-bd9a-a4ed070d9b56', targetLocation: '/home/jenkins/.m2/')]) {
+
+                        //# Workaround: GPG initialization
+                        sh("gpg --batch --import ${KEYRING}")
+                        sh '''
+                        for fpr in $(gpg --list-keys --with-colons  | awk -F: '/fpr:/ {print $10}' | sort -u);
+                        do
+                            echo -e "5\ny\n" |  gpg --batch --command-fd 0 --expert --edit-key $fpr trust;
+                        done
+                       '''
+                        configFileProvider([configFile(fileId: 'c88e58d9-97bd-4f06-af82-fd469abcedea', variable: 'MAVEN_SETTINGS_XML')]) {
+                            sh "$MVN -s $MAVEN_SETTINGS_XML clean install"
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
diff --git a/etc/jenkins/Jenkinsfile_release b/etc/jenkins/Jenkinsfile_release
new file mode 100644
index 0000000..a0897d1
--- /dev/null
+++ b/etc/jenkins/Jenkinsfile_release
@@ -0,0 +1,184 @@
+#!/usr/bin/env groovy
+
+node {
+
+    def   MVN_HOME='/opt/tools/apache-maven/latest'
+    def   HELP_PLUGIN='org.apache.maven.plugins:maven-help-plugin:2.1.1'
+    def   TARGET = 'deploy'
+    def   RELEASE_VERSION=RELEASE_VERSION
+    def   NEXT_VERSION=NEXT_VERSION
+    def   RELEASE_TAG=''
+    def   OVERWRITE='false'
+    def   PROJECT_NAME='Jersey'
+    def   LOGIN='jersey-bot'
+    def   EMAIL = 'jersey-bot@eclipse.org'
+    def   REPO='git@github.com:eclipse-ee4j/jersey.git'
+    def   CREDENTIALS_ID='f5848e71-9994-45e3-8214-137ce91ddbcf'
+    def   GIT_ORIGIN='origin'
+    def   RELEASE_FOLDER='.'
+    def   RELEASE_BRANCH=BRANCH
+
+    env.JAVA_HOME="/opt/tools/java/oracle/jdk-8/1.8.0_181"
+    env.PATH="${env.JAVA_HOME}/bin:${env.PATH}"
+    sh '/opt/tools/java/oracle/jdk-8/1.8.0_181/bin/java -version'
+    sh 'java -version'
+
+    stage('Fetch from git') {
+        git(branch: RELEASE_BRANCH, credentialsId: CREDENTIALS_ID, url: REPO)
+    }
+    stage('Prepare environment') {
+
+        dir (RELEASE_FOLDER) {
+            //# Check whether top level pom.xml contains SNAPSHOT version
+            if (!sh(returnStdout: true, script: "grep '<version>' pom.xml | grep 'SNAPSHOT'")?.trim()) {
+                error('-[ Missing SNAPSHOT version in POM! ]-------------------------------------------')
+            }
+
+            //# Compute release versions
+            def SNAPSHOT_VERSION = sh(returnStdout: true, script: "${MVN_HOME}/bin/mvn -B ${HELP_PLUGIN}:evaluate -Dexpression=project.version 2> /dev/null | grep -E '^[0-9]+(.[0-9]+)+-SNAPSHOT\$'").trim()
+
+            if (!RELEASE_VERSION?.trim()) {
+                if (!SNAPSHOT_VERSION?.trim()) {
+                    error('-[ Missing required snapshot version number! ]----------------------------------')
+                } else {
+                    def versionTokens = SNAPSHOT_VERSION.split('-')
+                    RELEASE_VERSION = versionTokens[0]
+                }
+            }
+
+            if (!NEXT_VERSION?.trim()) {
+                def (MAJOR_VERSION, MINOR_VERSION) = RELEASE_VERSION.tokenize('.')
+                def NEXT_MINOR_VERSION = (MINOR_VERSION as Integer) + 1
+                NEXT_VERSION = MAJOR_VERSION + '.' + NEXT_MINOR_VERSION + '-SNAPSHOT'
+            }
+
+            RELEASE_TAG = RELEASE_VERSION + '-RELEASE'
+
+            echo "Current version: ${SNAPSHOT_VERSION}"
+            echo "Release version: ${RELEASE_VERSION}"
+            echo "Next version:    ${NEXT_VERSION}"
+            echo "Release tag:     ${RELEASE_TAG}"
+
+            if (!SNAPSHOT_VERSION?.trim() || !RELEASE_VERSION?.trim() || !NEXT_VERSION?.trim()) {
+                error '-[ Missing required version numbers! ]------------------------------------------'
+            }
+
+            if (DRY_RUN == 'true') {
+                echo '-[ Dry run turned on ]----------------------------------------------------------'
+                TARGET = 'install'
+            }
+        }
+
+    }
+    stage ('Prepare GPG') {
+        withCredentials([file(credentialsId: '6474d9ed-eadc-47a0-8f60-43277c1cad52', variable: 'KEYRING')]) {
+            //# Workaround: GPG initialization
+            sh("gpg --batch --import ${KEYRING}")
+            sh '''
+                for fpr in $(gpg --list-keys --with-colons  | awk -F: '/fpr:/ {print $10}' | sort -u);
+                do
+                    echo -e "5\ny\n" |  gpg --batch --command-fd 0 --expert --edit-key $fpr trust;
+                done
+                '''
+        }
+    }
+    stage ('Prepare branch') {
+        echo '-[ Prepare branch ]-------------------------------------------------------------'
+
+        def BRANCH_CHECK = sh(returnStdout: true, script: "git branch -r").trim().contains(GIT_ORIGIN+'/'+RELEASE_VERSION)
+
+        if (BRANCH_CHECK) {
+            if ( OVERWRITE == 'true' ) {
+                echo "${GIT_ORIGIN}/${RELEASE_VERSION} branch already exists, deleting"
+                sh 'git push --delete ${GIT_ORIGIN} ${RELEASE_VERSION} && true'
+            } else {
+                error "${GIT_ORIGIN}/${RELEASE_VERSION} branch already exists"
+            }
+        }
+        echo '-[ Swiching to release branch ]-------------------------------------------------'
+        sh """
+        git checkout ${GIT_ORIGIN}/${RELEASE_BRANCH} && true
+        git reset --hard ${GIT_ORIGIN}/${RELEASE_BRANCH} && true
+        # Always delete local branch if exists
+        git branch --delete ${RELEASE_VERSION} && true
+        git checkout -b ${RELEASE_VERSION}
+        """
+        echo '-[ Release tag cleanup ]--------------------------------------------------------'
+        def TAG_CHECK = sh(returnStdout: true, script: "git tag").trim().contains(RELEASE_TAG)
+        if (TAG_CHECK) {
+            if (OVERWRITE == 'true' ) {
+                echo "${RELEASE_TAG} tag already exists, deleting"
+                sh "git push --delete origin ${RELEASE_TAG} && true"
+            } else {
+                error "${RELEASE_TAG} tag already exists"
+            }
+            //# Always delete local tag if exists
+            sh """
+            git tag --delete ${RELEASE_TAG} && true
+            """
+        }
+
+    }
+    stage("Build ${PROJECT_NAME}") {
+        echo env.JAVA_HOME
+        echo '-[ Run maven release ]---------------------------------------------------------'
+        echo '-[ Set Release version ]-------------------------------------------------------'
+        sh """
+        cd ${RELEASE_FOLDER}
+        ${MVN_HOME}/bin/mvn -q versions:set -DnewVersion=${RELEASE_VERSION}
+        ${MVN_HOME}/bin/mvn -q versions:commit
+        """
+        echo '-[ Run release build ]---------------------------------------------------------'
+        dir (RELEASE_FOLDER) {
+            withCredentials([file(credentialsId: '6474d9ed-eadc-47a0-8f60-43277c1cad52', variable: 'KEYRING')]) {
+                configFileProvider([configFile(fileId: '8e6103e6-a03e-44fe-bd9a-a4ed070d9b56', targetLocation: '/home/jenkins/.m2/')]) {
+
+                    //# Workaround: GPG initialization
+                    sh("gpg --batch --import ${KEYRING}")
+                    sh '''
+                        for fpr in $(gpg --list-keys --with-colons  | awk -F: '/fpr:/ {print $10}' | sort -u);
+                        do
+                            echo -e "5\ny\n" |  gpg --batch --command-fd 0 --expert --edit-key $fpr trust;
+                        done
+                       '''
+                    configFileProvider([configFile(fileId: 'c88e58d9-97bd-4f06-af82-fd469abcedea', variable: 'MAVEN_SETTINGS_XML')]) {
+                        sh "${MVN_HOME}/bin/mvn -q -B -s ${MAVEN_SETTINGS_XML} -DskipTests -Ddoclint=none -Dadditionalparam='-Xdoclint:none' " +
+                                " -U -C clean package source:jar javadoc:jar ${TARGET}"
+                    }
+                }
+            }
+        }
+    }
+    stage ('Prepare release') {
+        echo '-[ Configure git user ]--------------------------------------------------------'
+        sh "git config --local user.email \"${EMAIL}\""
+        sh "git config --local user.name \"$LOGIN\""
+        echo '-[ Perform release commit to git ]---------------------------------------------'
+        sh "git commit -a -m ${RELEASE_VERSION}"
+        sh "git tag -m ${RELEASE_TAG} -a ${RELEASE_TAG}"
+        echo '-[ Set next snapshot version ]-------------------------------------------------'
+        dir (RELEASE_FOLDER) {
+            sh "${MVN_HOME}/bin/mvn -q versions:set -DnewVersion=${NEXT_VERSION}"
+            sh "${MVN_HOME}/bin/mvn -q versions:commit"
+        }
+        echo '-[ Perform commit to git ]-----------------------------------------------------'
+        sh "git commit -a -m ${NEXT_VERSION}"
+    }
+    stage('Publish release') {
+        if (DRY_RUN == 'true') {
+            echo '-[ Prepared branch ]----------------------------------------------------------'
+            sh "git branch --list ${RELEASE_VERSION}"
+            echo '-[ Prepared tag ]-------------------------------------------------------------'
+            sh "git tag --list ${RELEASE_TAG}"
+            echo '-[ Prepared commits ]---------------------------------------------------------'
+            sh 'git log -n 5'
+            sshagent([CREDENTIALS_ID]) {
+                sh "git push ${GIT_ORIGIN} ${RELEASE_VERSION} --dry-run"
+            }
+            return
+        }
+        sshagent([CREDENTIALS_ID]) {
+            sh "git push ${GIT_ORIGIN} ${RELEASE_VERSION} --follow-tags"
+        }
+    }
+}
\ No newline at end of file
diff --git a/etc/jenkins/Jenkinsfile_release_config b/etc/jenkins/Jenkinsfile_release_config
new file mode 100644
index 0000000..c1d2370
--- /dev/null
+++ b/etc/jenkins/Jenkinsfile_release_config
@@ -0,0 +1,25 @@
+#!/usr/bin/env groovy
+
+pipeline {
+
+    agent any
+    parameters {
+        string(name: 'RELEASE_VERSION', description: 'Optional version to release. Default value is taken from POM snapshot.')
+
+        string(name: 'NEXT_VERSION', description: 'Optional next snapshot version to set (e.g. 1.2.3-SNAPSHOT). Default value is taken from POM snapshot with last component incremented by 1.')
+
+        choice(name: 'BRANCH', choices: ['master', 'EE4J_8'], description: 'Mandatory release branch (master, EE4J_8)')
+
+        booleanParam(name: 'DRY_RUN', defaultValue: true, description: 'Do not publish artifacts to OSSRH and code changes to GitHub.')
+
+        booleanParam(name: 'OVERWRITE', defaultValue: false, description: 'Allows to overwrite existing version in git and OSSRH staging repositories.')
+
+    }
+    stages {
+        stage('config') {
+            steps {
+                echo 'config'
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/etc/jenkins/README b/etc/jenkins/README
new file mode 100644
index 0000000..743555d
--- /dev/null
+++ b/etc/jenkins/README
@@ -0,0 +1 @@
+Folder containing all Jenkins scripts.
\ No newline at end of file
diff --git a/etc/travis/README b/etc/travis/README
new file mode 100644
index 0000000..3b11b8f
--- /dev/null
+++ b/etc/travis/README
@@ -0,0 +1 @@
+Folder containing all Travis scripts.
diff --git a/travis.sh b/etc/travis/travis.sh
similarity index 100%
rename from travis.sh
rename to etc/travis/travis.sh