diff --git a/.travis.yml b/.travis.yml index 0b3831edd63..c32b5617429 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,13 @@ language: java +sudo: false matrix: include: + # TODO add MacOS and OpenJDK 10 to matrix when Travis CI adds support - os: linux - jdk: oraclejdk8 + jdk: openjdk10 - os: linux - jdk: openjdk8 - - os: osx - osx_image: xcode9.2 # OSX 10.12, Oracle Java 8 - script: ./gradlew -u -S --no-daemon --no-parallel build # skip coveralls on MacOS + jdk: oraclejdk10 # The 'build' task runs most things, including test, check, & static analysis install: true diff --git a/appveyor.yml b/appveyor.yml index 670978b5370..318f1c7370c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ environment: - JAVA_HOME: C:\Program Files\Java\jdk1.8.0 + JAVA_HOME: C:\Program Files\Java\jdk9 os: Visual Studio 2017 # Windows Server 2016 install: - java -version diff --git a/build.gradle b/build.gradle index e4e567e3b4e..8ad7e4c7afd 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ plugins { // Sub project plugins id 'com.github.sherter.google-java-format' version '0.7.1' apply false id 'nebula.lint' version '9.3.4' apply false - id 'net.ltgt.errorprone' version '0.0.13' apply false + id 'net.ltgt.errorprone-javacplugin' version '0.2' apply false } description = "Apereo uPortal $version" @@ -38,7 +38,7 @@ allprojects { apply plugin: 'groovy' apply plugin: 'codenarc' apply plugin: 'com.github.sherter.google-java-format' - apply plugin: 'net.ltgt.errorprone' + apply plugin: 'net.ltgt.errorprone-javacplugin' configurations { // Banned dependencies @@ -49,7 +49,7 @@ allprojects { } dependencies { - errorprone 'com.google.errorprone:error_prone_core:2.2.0' + //errorprone 'com.google.errorprone:error_prone_core:2.2.0' } codenarc { @@ -58,7 +58,7 @@ allprojects { } // Version has to be set directly here, using a variable does not set Java compatability version - sourceCompatibility = 1.8 + sourceCompatibility = 1.10 gradleLint.criticalRules = [ 'overridden-dependency-version', diff --git a/gradle.properties b/gradle.properties index 1b4fded8b1d..646f89c7a61 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,6 +38,7 @@ servletApiDependency=javax.servlet:javax.servlet-api:3.0.1 portletApiDependency=org.apache.portals:portlet-api_2.1.0_spec:1.0 # Dependency Versions +activationVersion=1.0.2 antVersion=1.10.5 awsVersion=1.11.371 apereoPortletUtilsVersion=1.1.3 @@ -72,8 +73,10 @@ httpcomponentsVersion=4.4.8 jacksonVersion=2.9.6 jansiVersion=1.11 javaxMailVersion=1.4.7 +javaxmlVersion=1.3.1 jasyptVersion=1.9.2 -jaxb2basicsVersion=0.6.5.1 +jaxbApiVersion=2.3.0 +jaxb2basicsVersion=1.11.1 jgroupsVersion=3.6.14.Final jjwtVersion=0.9.0 jodaTimeVersion=2.9.9 @@ -95,7 +98,7 @@ slf4jVersion=1.7.25 springVersion=4.3.18.RELEASE spockVersion=1.1-groovy-2.4 springfoxSwaggerVersion=2.7.0 -springLdapVersion=1.3.1.RELEASE +springLdapVersion=2.3.2.RELEASE springModulesCacheVersion=0.8a springSecurityVersion=4.2.6.RELEASE springWebflowVersion=2.4.6.RELEASE diff --git a/uPortal-api/uPortal-api-search/build.gradle b/uPortal-api/uPortal-api-search/build.gradle index 6a65f2e16a0..79153a4fefd 100644 --- a/uPortal-api/uPortal-api-search/build.gradle +++ b/uPortal-api/uPortal-api-search/build.gradle @@ -9,10 +9,14 @@ ext { } dependencies { + compile "javax.xml.bind:jaxb-api:${jaxbApiVersion}" + compile "jaxb:activation:${activationVersion}" + // All 6 of the following are for the 'com.github.jacobono.jaxb' plugin jaxb 'com.sun.xml.bind:jaxb-xjc:2.2.7-b41' jaxb 'com.sun.xml.bind:jaxb-impl:2.2.7-b41' - jaxb 'javax.xml.bind:jaxb-api:2.2.7' + jaxb "javax.xml.bind:jaxb-api:${jaxbApiVersion}" + jaxb "jaxb:activation:${activationVersion}" jaxb 'org.jvnet.jaxb2_commons:jaxb2-basics-ant:0.6.5' jaxb 'org.jvnet.jaxb2_commons:jaxb2-basics:0.6.4' jaxb 'org.jvnet.jaxb2_commons:jaxb2-basics-annotate:0.6.4' @@ -48,4 +52,15 @@ jaxb { } } +compileJava { + doFirst { + options.compilerArgs = [ + '--class-path', classpath.asPath, + '--module-path', classpath.asPath, + '--add-modules', 'java.xml.bind', + ] + classpath = files() + } +} + compileJava.dependsOn(xjc) diff --git a/uPortal-core/build.gradle b/uPortal-core/build.gradle index f5ae85ad203..9bf8717fe4f 100644 --- a/uPortal-core/build.gradle +++ b/uPortal-core/build.gradle @@ -5,6 +5,7 @@ dependencies { exclude group: 'com.google.guava', module: 'guava' } compile "commons-lang:commons-lang:${commonsLangVersion}" + compile "javax.annotation:javax.annotation-api:1.3.2" compile "joda-time:joda-time:${jodaTimeVersion}" compile "org.apache.commons:commons-lang3:${commonsLang3Version}" compile "org.hibernate:hibernate-core:${hibernateVersion}" diff --git a/uPortal-groups/uPortal-groups-ldap/src/main/java/org/apereo/portal/groups/ldap/LDAPGroupStore.java b/uPortal-groups/uPortal-groups-ldap/src/main/java/org/apereo/portal/groups/ldap/LDAPGroupStore.java index 83fe4b1214d..101294c7c20 100644 --- a/uPortal-groups/uPortal-groups-ldap/src/main/java/org/apereo/portal/groups/ldap/LDAPGroupStore.java +++ b/uPortal-groups/uPortal-groups-ldap/src/main/java/org/apereo/portal/groups/ldap/LDAPGroupStore.java @@ -49,7 +49,7 @@ import org.apereo.portal.spring.locator.EntityTypesLocator; import org.apereo.portal.utils.ResourceLoader; import org.apereo.portal.utils.SmartCache; -import org.springframework.ldap.core.LdapEncoder; +import org.springframework.ldap.support.LdapEncoder; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; diff --git a/uPortal-io/uPortal-io-core/build.gradle b/uPortal-io/uPortal-io-core/build.gradle index 5d217938320..68499291359 100644 --- a/uPortal-io/uPortal-io-core/build.gradle +++ b/uPortal-io/uPortal-io-core/build.gradle @@ -3,7 +3,10 @@ description = "Apereo uPortal Import/Export Core" dependencies { compile project(':uPortal-utils:uPortal-utils-core') + compile "javax.xml.bind:jaxb-api:${jaxbApiVersion}" + compile "javax.annotation:javax.annotation-api:${javaxmlVersion}" compile "commons-lang:commons-lang:${commonsLangVersion}" + compile "jaxb:activation:${activationVersion}" compile "org.apache.commons:commons-compress:${commonsCompressVersion}" compile "org.apache.tika:tika-core:${tikaVersion}" compile "org.slf4j:slf4j-api:${slf4jVersion}" diff --git a/uPortal-io/uPortal-io-jaxb/build.gradle b/uPortal-io/uPortal-io-jaxb/build.gradle index 8a2efad22d0..e999b01478a 100644 --- a/uPortal-io/uPortal-io-jaxb/build.gradle +++ b/uPortal-io/uPortal-io-jaxb/build.gradle @@ -9,10 +9,14 @@ ext { } dependencies { + compile "javax.xml.bind:jaxb-api:${jaxbApiVersion}" + compile "jaxb:activation:${activationVersion}" + // All 6 of the following are for the 'com.github.jacobono.jaxb' plugin jaxb 'com.sun.xml.bind:jaxb-xjc:2.2.7-b41' jaxb 'com.sun.xml.bind:jaxb-impl:2.2.7-b41' - jaxb 'javax.xml.bind:jaxb-api:2.2.7' + jaxb "javax.xml.bind:jaxb-api:${jaxbApiVersion}" + jaxb "jaxb:activation:${activationVersion}" jaxb 'org.jvnet.jaxb2_commons:jaxb2-basics-ant:0.6.5' jaxb 'org.jvnet.jaxb2_commons:jaxb2-basics:0.6.4' jaxb 'org.jvnet.jaxb2_commons:jaxb2-basics-annotate:0.6.4' @@ -48,4 +52,17 @@ jaxb { } } +compileJava { + doFirst { +/* + options.compilerArgs = [ + '--class-path', classpath.asPath, + '--module-path', classpath.asPath, + '--add-modules', 'java.xml.bind', + ] + classpath = files() +*/ + } +} + compileJava.dependsOn(xjc) diff --git a/uPortal-layout/uPortal-layout-impl/build.gradle b/uPortal-layout/uPortal-layout-impl/build.gradle index eca96045f2c..3b40b8ea75e 100644 --- a/uPortal-layout/uPortal-layout-impl/build.gradle +++ b/uPortal-layout/uPortal-layout-impl/build.gradle @@ -13,3 +13,14 @@ dependencies { compileOnly "${portletApiDependency}" compileOnly "${servletApiDependency}" } + +compileJava { + doFirst { + options.compilerArgs += [ + '--class-path', classpath.asPath, + '--module-path', classpath.asPath, + ] + classpath = files() + } +} + diff --git a/uPortal-soffit/uPortal-soffit-core/build.gradle b/uPortal-soffit/uPortal-soffit-core/build.gradle index 7093e693019..2e82c5fa220 100644 --- a/uPortal-soffit/uPortal-soffit-core/build.gradle +++ b/uPortal-soffit/uPortal-soffit-core/build.gradle @@ -1,6 +1,7 @@ description = "Apereo uPortal Soffit Core" dependencies { + compile "javax.annotation:javax.annotation-api:${javaxmlVersion}" compile "io.jsonwebtoken:jjwt:${jjwtVersion}" compile "org.apache.commons:commons-lang3:${commonsLang3Version}" compile "org.jasypt:jasypt:${jasyptVersion}" diff --git a/uPortal-spring/build.gradle b/uPortal-spring/build.gradle index c84892dd0f1..fb310e081ab 100644 --- a/uPortal-spring/build.gradle +++ b/uPortal-spring/build.gradle @@ -11,6 +11,7 @@ dependencies { compile "net.oauth.core:oauth:${oauthVersion}" compile "org.jasypt:jasypt:${jasyptVersion}" compile "org.slf4j:slf4j-api:${slf4jVersion}" + compile "javax.xml.bind:jaxb-api:${jaxbApiVersion}" compile "org.springframework:spring-web:${springVersion}" compile "org.springframework:spring-webmvc:${springVersion}" compile "org.springframework:spring-webmvc-portlet:${springVersion}" diff --git a/uPortal-utils/uPortal-utils-core/build.gradle b/uPortal-utils/uPortal-utils-core/build.gradle index 3ba56104941..81d93455f99 100644 --- a/uPortal-utils/uPortal-utils-core/build.gradle +++ b/uPortal-utils/uPortal-utils-core/build.gradle @@ -8,6 +8,8 @@ ext { dependencies { compile project(':uPortal-concurrency') + compile "javax.xml.bind:jaxb-api:${jaxbApiVersion}" + compile "javax.annotation:javax.annotation-api:${javaxmlVersion}" compile "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}" compile "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}" compile "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" @@ -15,7 +17,7 @@ dependencies { compile "net.sf.ehcache:ehcache-core:${ehcacheVersion}" compile "org.apache.ant:ant:${antVersion}" compile "org.apache.commons:commons-lang3:${commonsLang3Version}" - compile "org.aspectj:aspectjrt:${aspectjVersion}" + compile "org.aspectj:aspectjweaver:${aspectjVersion}" compile "com.fasterxml.woodstox:woodstox-core:${woodstoxVersion}" compile "org.jasig.resourceserver:resource-server-api:${resourceServerVersion}" compile "org.jasig.resourceserver:resource-server-utils:${resourceServerVersion}" @@ -98,5 +100,6 @@ compileJava { generatedSourcesDir.deleteDir() generatedSourcesDir.mkdirs() } - options.compilerArgs += ['-s', generatedSourcesDir] + + options.compilerArgs += ['-s', generatedSourcesDir,] } diff --git a/uPortal-web/build.gradle b/uPortal-web/build.gradle index 369882bda83..11bad7243e6 100644 --- a/uPortal-web/build.gradle +++ b/uPortal-web/build.gradle @@ -14,6 +14,7 @@ dependencies { compileOnly project(':uPortal-api:uPortal-api-platform') compile "com.google.visualization:visualization-datasource:${googleVisualizationVersion}" + compile "javax.xml.bind:jaxb-api:${jaxbApiVersion}" testCompile "org.apache.portals.pluto:pluto-container-api:${plutoVersion}" testCompile "${servletApiDependency}" @@ -25,6 +26,8 @@ dependencies { compileOnly "javax.servlet.jsp:javax.servlet.jsp-api:${jspApiVersion}" compileOnly "${portletApiDependency}" compileOnly "${servletApiDependency}" + + runtime "javax.xml.bind:jaxb-api:${jaxbApiVersion}" } /* diff --git a/uPortal-webapp/build.gradle b/uPortal-webapp/build.gradle index 71e90c7c158..aeb4b1ae207 100644 --- a/uPortal-webapp/build.gradle +++ b/uPortal-webapp/build.gradle @@ -5,6 +5,8 @@ buildscript { } dependencies { classpath "org.jasig.resourceserver:resource-server-core:${resourceServerVersion}" + classpath 'javax.xml.bind:jaxb-api:2.3.0' + classpath 'org.eclipse.persistence:eclipselink:2.7.0' } } @@ -37,6 +39,8 @@ dependencies { compile project(':uPortal-soffit:uPortal-soffit-connector') compile project(':uPortal-utils:uPortal-utils-jmx') + compile "javax.xml.bind:jaxb-api:${jaxbApiVersion}" + compileOnly "org.apereo.service.persondir:person-directory-api:${personDirectoryVersion}" compileOnly "${servletApiDependency}" @@ -48,6 +52,7 @@ dependencies { testCompile "${portletApiDependency}" testCompile "${servletApiDependency}" + runtime "javax.xml.bind:jaxb-api:${jaxbApiVersion}" runtime "ch.qos.logback:logback-classic:${logbackVersion}" runtime "joda-time:joda-time-jsptags:${jodaTimeJsptagsVersion}" runtime "org.aspectj:aspectjweaver:${aspectjVersion}" @@ -116,6 +121,10 @@ import org.jasig.resource.aggr.AggregationRequest import org.jasig.resource.aggr.ResourcesAggregator import org.jasig.resource.aggr.ResourcesAggregatorImpl task aggregateRespondrSkins { + doFirst { + System.setProperty("javax.xml.bind.JAXBContextFactory", "org.eclipse.persistence.jaxb.JAXBContextFactory"); + } + doLast { final ResourcesAggregator aggr = new ResourcesAggregatorImpl(); aggr.setDisplayJsWarnings(false);