Skip to content

Commit

Permalink
use newer gradle API
Browse files Browse the repository at this point in the history
  • Loading branch information
Jiayu Liu committed Apr 28, 2022
1 parent 684ee07 commit 897aca1
Show file tree
Hide file tree
Showing 13 changed files with 177 additions and 46 deletions.
2 changes: 1 addition & 1 deletion lib/java/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ plugins {
id 'java-library'
id 'maven'
id 'signing'
id 'com.github.johnrengelman.shadow' version '4.0.4'
id 'com.github.johnrengelman.shadow' version '6.1.0'
id "com.github.spotbugs" version "4.7.1"
}

Expand Down
18 changes: 9 additions & 9 deletions lib/java/gradle/environment.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,14 @@ repositories {
}

dependencies {
compile "org.slf4j:slf4j-api:${slf4jVersion}"
compile "org.apache.httpcomponents:httpclient:${httpclientVersion}"
compile "org.apache.httpcomponents:httpcore:${httpcoreVersion}"
compile "javax.servlet:javax.servlet-api:${servletVersion}"
compile "javax.annotation:javax.annotation-api:${javaxAnnotationVersion}"
compile "org.apache.commons:commons-lang3:3.12.0"
implementation "org.slf4j:slf4j-api:${slf4jVersion}"
implementation "org.apache.httpcomponents:httpclient:${httpclientVersion}"
implementation "org.apache.httpcomponents:httpcore:${httpcoreVersion}"
implementation "javax.servlet:javax.servlet-api:${servletVersion}"
implementation "javax.annotation:javax.annotation-api:${javaxAnnotationVersion}"
implementation "org.apache.commons:commons-lang3:3.12.0"

testCompile "junit:junit:${junitVersion}"
testCompile "org.mockito:mockito-all:${mockitoVersion}"
testRuntime "org.slf4j:slf4j-log4j12:${slf4jVersion}"
testImplementation "junit:junit:${junitVersion}"
testImplementation "org.mockito:mockito-all:${mockitoVersion}"
testRuntimeOnly "org.slf4j:slf4j-log4j12:${slf4jVersion}"
}
36 changes: 23 additions & 13 deletions lib/java/gradle/functionalTests.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,27 @@ sourceSets {
}
}

// see https://docs.gradle.org/current/userguide/java_library_plugin.html
// 1. defines cross test implementation that includes all test implementation, which in turn
// contains all implementation dependencies
// 2. defines cross test runtime that further includes test runtime only dependencies
// 3. the cross test implementation will need to depends on main and test output
// 4. shadow jar will package both main and test source set, along with cross test runtime dependencies
configurations {
crossTestCompile { extendsFrom testCompile }
crossTestRuntime { extendsFrom crossTestCompile, testRuntime }
crossTestImplementation {
description "implementation for cross test"
extendsFrom testImplementation
}
crossTestRuntime {
description "runtime dependencies for cross test"
extendsFrom crossTestImplementation, testRuntimeOnly
}
}

dependencies {
crossTestCompile "org.apache.tomcat.embed:tomcat-embed-core:${tomcatEmbedVersion}"
crossTestCompile sourceSets.main.output
crossTestCompile sourceSets.test.output
crossTestImplementation "org.apache.tomcat.embed:tomcat-embed-core:${tomcatEmbedVersion}"
crossTestImplementation sourceSets.main.output
crossTestImplementation sourceSets.test.output
}

// I am using shadow plugin to make a self contained functional test Uber JAR that
Expand All @@ -53,19 +65,17 @@ shadowJar {
description = 'Assemble a test JAR file for cross-check execution'
// make sure the runners are created when this runs
dependsOn 'generateRunnerScriptForClient', 'generateRunnerScriptForServer', 'generateRunnerScriptForNonblockingServer', 'generateRunnerScriptForTServletServer'

baseName = 'functionalTest'
destinationDir = file("$buildDir/functionalTestJar")
classifier = null

archiveBaseName.set('functionalTest')
destinationDirectory = file("$buildDir/functionalTestJar")
archiveClassifier.set(null)
// We do not need a version number for this internal jar
version = null

archiveVersion.set(null)
// Bundle the complete set of unit test classes including generated code
// and the runtime dependencies in one JAR to expedite execution.
// see https://imperceptiblethoughts.com/shadow/custom-tasks/
from sourceSets.test.output
from sourceSets.crossTest.output
configurations = [project.configurations.testRuntime]
configurations = [project.configurations.crossTestRuntime]
}

// Common script runner configuration elements
Expand Down
4 changes: 1 addition & 3 deletions lib/js/test/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@
<exclude name="libthrift*javadoc.jar" />
<exclude name="libthrift*sources.jar" />
</fileset>
<fileset dir="${thrift.java.dir}/build/deps">
<include name="*.jar" />
</fileset>
<fileset dir="${build}/lib">
<include name="*.jar" />
</fileset>
Expand Down Expand Up @@ -235,6 +232,7 @@
<dependency groupId="org.apache.httpcomponents" artifactId="httpclient" version="4.0.1"/>
<dependency groupId="com.googlecode.jslint4java" artifactId="jslint4java-ant" version="1.4.6"/>
<dependency groupId="eu.medsea.mimeutil" artifactId="mime-util" version="2.1.3"/>
<dependency groupId="javax.annotation" artifactId="javax.annotation-api" version="1.3.2"/>
<remoteRepository url="${mvn.repo}"/>
</artifact:dependencies>

Expand Down
13 changes: 11 additions & 2 deletions lib/kotlin/cross-test-client/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,24 @@ repositories {
mavenCentral()
}

val slf4jVersion: String by project
val httpclientVersion: String by project
val httpcoreVersion: String by project
val logbackVersion: String by project
val kotlinxCoroutinesJdk8Version: String by project

dependencies {
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
// https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-jdk8
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.1")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:$kotlinxCoroutinesJdk8Version")
// https://mvnrepository.com/artifact/org.apache.thrift/libthrift
implementation("org.apache.thrift:libthrift:INCLUDED")
implementation("org.slf4j:slf4j-api:$slf4jVersion")
implementation("org.apache.httpcomponents:httpclient:$httpclientVersion")
implementation("org.apache.httpcomponents:httpcore:$httpcoreVersion")
// https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
implementation("ch.qos.logback:logback-classic:1.3.0-alpha14")
implementation("ch.qos.logback:logback-classic:$logbackVersion")
testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
}
Expand Down
11 changes: 9 additions & 2 deletions lib/kotlin/cross-test-server/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,22 @@ repositories {
mavenCentral()
}

val slf4jVersion: String by project
val httpcoreVersion: String by project
val logbackVersion: String by project
val kotlinxCoroutinesJdk8Version: String by project

dependencies {
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
// https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-jdk8
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.1")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:$kotlinxCoroutinesJdk8Version")
// https://mvnrepository.com/artifact/org.apache.thrift/libthrift
implementation("org.apache.thrift:libthrift:INCLUDED")
implementation("org.slf4j:slf4j-api:$slf4jVersion")
implementation("org.apache.httpcomponents:httpcore:$httpcoreVersion")
// https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
implementation("ch.qos.logback:logback-classic:1.3.0-alpha14")
implementation("ch.qos.logback:logback-classic:$logbackVersion")
testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
}
Expand Down
23 changes: 23 additions & 0 deletions lib/kotlin/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#
# 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.
#
slf4jVersion=1.7.35
httpcoreVersion=4.4.15
httpclientVersion=4.5.13
logbackVersion=1.3.0-alpha14
kotlinxCoroutinesJdk8Version=1.6.1
5 changes: 5 additions & 0 deletions tutorial/java/build.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Maven Ant tasks Jar details
mvn.ant.task.version=2.1.3
mvn.repo=https://repo1.maven.org/maven2
mvn.ant.task.url=${mvn.repo}/org/apache/maven/maven-ant-tasks/${mvn.ant.task.version}
mvn.ant.task.jar=maven-ant-tasks-${mvn.ant.task.version}.jar
47 changes: 43 additions & 4 deletions tutorial/java/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,29 @@
specific language governing permissions and limitations
under the License.
-->
<project name="tutorial" default="tutorial" basedir=".">
<project name="tutorial" default="tutorial" basedir="."
xmlns:artifact="antlib:org.apache.maven.artifact.ant">

<description>Thrift Java Tutorial</description>

<property name="src" location="src" />
<property name="gen" location="gen-java" />
<property name="build" location="build" />
<property file="${basedir}/build.properties"/>

<!-- the root directory, where you unpack thrift distibution (e.g.: thrift-0.x.x.tar.gz) -->
<property name="thrift.dir" location="../.." />
<property name="thrift.java.dir" location="${thrift.dir}/lib/java" />
<property name="build.tools.dir" location="${thrift.java.dir}/build/tools/"/>

<path id="libs.classpath">
<fileset dir="../../lib/java/build/libs">
<fileset dir="${thrift.java.dir}/build/libs">
<include name="libthrift*.jar" />
<exclude name="libthrift*test.jar" />
<exclude name="libthrift*javadoc.jar" />
<exclude name="libthrift*sources.jar" />
</fileset>
<fileset dir="../../lib/java/build/deps">
<fileset dir="${build}/lib">
<include name="*.jar" />
</fileset>
</path>
Expand All @@ -47,11 +54,13 @@

<target name="init">
<tstamp />
<mkdir dir="${build.tools.dir}"/>
<mkdir dir="${build}"/>
<mkdir dir="${build}/log"/>
<mkdir dir="${build}/lib"/>
</target>

<target name="compile" depends="init, generate">
<target name="compile" depends="init, generate, resolve">
<javac compiler="modern" includeantruntime="false" srcdir="${gen}" destdir="${build}" classpathref="libs.classpath" />
<javac compiler="modern" includeantruntime="false" srcdir="${src}" destdir="${build}" classpathref="build.classpath" />
</target>
Expand Down Expand Up @@ -112,4 +121,34 @@
<delete file="tutorial.jar" />
</target>

<target name="mvn.ant.tasks.download" depends="init, mvn.ant.tasks.check" unless="mvn.ant.tasks.found">
<get src="${mvn.ant.task.url}/${mvn.ant.task.jar}" dest="${build.tools.dir}/${mvn.ant.task.jar}" usetimestamp="true"/>
</target>

<target name="mvn.ant.tasks.check">
<condition property="mvn.ant.tasks.found">
<typefound uri="antlib:org.apache.maven.artifact.ant" name="artifact"/>
</condition>
</target>

<target name="resolve" depends="mvn.ant.tasks.download" unless="mvn.finished">
<typedef uri="antlib:org.apache.maven.artifact.ant" classpath="${thrift.java.dir}/build/tools/${mvn.ant.task.jar}"/>

<artifact:dependencies filesetId="tutorial.dependency.jars">
<dependency groupId="org.apache.httpcomponents" artifactId="httpclient" version="4.0.1"/>
<dependency groupId="com.googlecode.jslint4java" artifactId="jslint4java-ant" version="1.4.6"/>
<dependency groupId="eu.medsea.mimeutil" artifactId="mime-util" version="2.1.3"/>
<dependency groupId="javax.annotation" artifactId="javax.annotation-api" version="1.3.2"/>
<remoteRepository url="${mvn.repo}"/>
</artifact:dependencies>

<!-- Copy the dependencies to the build/lib dir -->
<copy todir="${build}/lib">
<fileset refid="tutorial.dependency.jars"/>
<mapper type="flatten"/>
</copy>

<property name="mvn.finished" value="true"/>
</target>

</project>
8 changes: 4 additions & 4 deletions tutorial/java/src/JavaClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ public static void main(String [] args) {
/*
* Similar to the server, you can use the parameters to setup client parameters or
* use the default settings. On the client side, you will need a TrustStore which
* contains the trusted certificate along with the public key.
* For this example it's a self-signed cert.
* contains the trusted certificate along with the public key.
* For this example it's a self-signed cert.
*/
TSSLTransportParameters params = new TSSLTransportParameters();
params.setTrustStore("../../lib/java/test/.truststore", "thrift", "SunX509", "JKS");
params.setTrustStore("../../lib/java/test/resources/.truststore", "thrift", "SunX509", "JKS");
/*
* Get a client transport instead of a server transport. The connection is opened on
* invocation of the factory method, no need to specifically call open()
Expand All @@ -67,7 +67,7 @@ public static void main(String [] args) {
transport.close();
} catch (TException x) {
x.printStackTrace();
}
}
}

private static void perform(Calculator.Client client) throws TException
Expand Down
10 changes: 5 additions & 5 deletions tutorial/java/src/JavaServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public static void main(String [] args) {
public void run() {
simple(processor);
}
};
};
Runnable secure = new Runnable() {
public void run() {
secure(processor);
Expand Down Expand Up @@ -81,19 +81,19 @@ public static void secure(Calculator.Processor processor) {
/*
* Use TSSLTransportParameters to setup the required SSL parameters. In this example
* we are setting the keystore and the keystore password. Other things like algorithms,
* cipher suites, client auth etc can be set.
* cipher suites, client auth etc can be set.
*/
TSSLTransportParameters params = new TSSLTransportParameters();
// The Keystore contains the private key
params.setKeyStore("../../lib/java/test/.keystore", "thrift", null, null);
params.setKeyStore("../../lib/java/test/resources/.keystore", "thrift", null, null);

/*
* Use any of the TSSLTransportFactory to get a server transport with the appropriate
* SSL configuration. You can use the default settings if properties are set in the command line.
* Ex: -Djavax.net.ssl.keyStore=.keystore and -Djavax.net.ssl.keyStorePassword=thrift
*
*
* Note: You need not explicitly call open(). The underlying server socket is bound on return
* from the factory class.
* from the factory class.
*/
TServerTransport serverTransport = TSSLTransportFactory.getServerSocket(9091, 0, null, params);
TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
Expand Down
5 changes: 5 additions & 0 deletions tutorial/js/build.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Maven Ant tasks Jar details
mvn.ant.task.version=2.1.3
mvn.repo=https://repo1.maven.org/maven2
mvn.ant.task.url=${mvn.repo}/org/apache/maven/maven-ant-tasks/${mvn.ant.task.version}
mvn.ant.task.jar=maven-ant-tasks-${mvn.ant.task.version}.jar
Loading

0 comments on commit 897aca1

Please sign in to comment.