Skip to content

Commit

Permalink
Simplify build (#4)
Browse files Browse the repository at this point in the history
* Move to OpenAPI generator.

* Document the changes in templates.

* Rename UiFieldPropertiesDto.java to UIFieldPropertiesDto.java

* Simplify build.

* Fix API.

* Only run manually.

* T

* Generate again.

* Fix build.
  • Loading branch information
SebastianStehle authored Sep 1, 2024
1 parent 820fa20 commit 823ff88
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 194 deletions.
2 changes: 2 additions & 0 deletions .openapi-generator-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,7 @@ openapi.yml
gradle.properties
gradlew
gradlew.bat
build.gradle
build.sbt

README.md
2 changes: 0 additions & 2 deletions .openapi-generator/FILES
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
build.gradle
build.sbt
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.properties
settings.gradle
Expand Down
194 changes: 50 additions & 144 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,167 +1,73 @@
apply plugin: 'idea'
apply plugin: 'eclipse'
apply plugin: 'java'
apply plugin: 'com.diffplug.spotless'

group = 'com.squidex.api'
version = '1.0.0.0'

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.+'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.11.0'
}
plugins {
id 'java-library'
id 'maven-publish'
id 'com.diffplug.spotless' version '6.11.0'
}

repositories {
mavenCentral()
}
sourceSets {
main.java.srcDirs = ['src/main/java']
}

if(hasProperty('target') && target == 'android') {

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'

android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
minSdkVersion 14
targetSdkVersion 25
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

// Rename the aar correctly
libraryVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.aar')) {
def fileName = "${project.name}-${variant.baseName}-${version}.aar"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}

dependencies {
provided "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
}
}

afterEvaluate {
android.libraryVariants.all { variant ->
def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
task.description = "Create jar artifact for ${variant.name}"
task.dependsOn variant.javaCompile
task.from variant.javaCompile.destinationDirectory
task.destinationDirectory = project.file("${project.buildDir}/outputs/jar")
task.archiveFileName = "${project.name}-${variant.baseName}-${version}.jar"
artifacts.add('archives', task)
}
}

task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}

artifacts {
archives sourcesJar
}

} else {

apply plugin: 'java'
apply plugin: 'maven-publish'

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

publishing {
publications {
maven(MavenPublication) {
artifactId = 'openapi-java-client'
from components.java
}
}
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}

task execute(type:JavaExec) {
main = System.getProperty('mainClass')
classpath = sourceSets.main.runtimeClasspath
}
}

ext {
jakarta_annotation_version = "1.3.5"
}

dependencies {
implementation 'io.swagger:swagger-annotations:1.6.8'
implementation "com.google.code.findbugs:jsr305:3.0.2"
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
implementation 'com.google.code.gson:gson:2.9.1'
implementation 'io.gsonfire:gson-fire:1.9.0'
implementation 'jakarta.ws.rs:jakarta.ws.rs-api:2.1.6'
implementation 'org.openapitools:jackson-databind-nullable:0.2.6'
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'
implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.3'
testImplementation 'org.mockito:mockito-core:3.12.4'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.3'
api 'com.google.code.findbugs:jsr305:3.0.2'
api 'com.google.code.gson:gson:2.9.1'
api 'com.squareup.okhttp3:logging-interceptor:4.12.0'
api 'com.squareup.okhttp3:okhttp:4.12.0'
api 'io.gsonfire:gson-fire:1.9.0'
api 'io.swagger:swagger-annotations:1.6.8'
api 'jakarta.annotation:jakarta.annotation-api:1.3.5'
api 'jakarta.ws.rs:jakarta.ws.rs-api:2.1.6'
api 'org.openapitools:jackson-databind-nullable:0.2.6'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
}

javadoc {
options.tags = [ "http.response.details:a:Http Response Details" ]
}

// Use spotless plugin to automatically format code, remove unused import, etc
// To apply changes directly to the file, run `gradlew spotlessApply`
// Ref: https://github.com/diffplug/spotless/tree/main/plugin-gradle
spotless {
// comment out below to run spotless as part of the `check` task
enforceCheck false

format 'misc', {
// define the files (e.g. '*.gradle', '*.md') to apply `misc` to
target '.gitignore'

// define the steps to apply to those files
trimTrailingWhitespace()
indentWithSpaces() // Takes an integer argument if you don't like 4
endWithNewline()
}
java {
// don't need to set target, it is inferred from java
palantirJavaFormat()
}
}

java {
withSourcesJar()
withJavadocJar()
}

// apply a specific flavor of google-java-format
googleJavaFormat('1.8').aosp().reflowLongStrings()
javadoc {
options.tags = ["http.response.details:a:Http Response Details"]

removeUnusedImports()
importOrder()
if (JavaVersion.current().isJava8Compatible()) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}

test {
// Enable JUnit 5 (Gradle 4.6+).
useJUnitPlatform()

// Always run tests, even when nothing changed.
dependsOn 'cleanTest'

// Show test results.
testLogging {
events "passed", "skipped", "failed"
showStandardStreams = true
}
}

publishing {
publications {
maven(MavenPublication) {
groupId = 'io.squidex'
artifactId = 'squidex'
version = '1.0.0'
from components.java
}
}
repositories {
maven {
url '$System.env.MAVEN_PUBLISH_REGISTRY_URL'
credentials {
username '$System.env.MAVEN_USERNAME'
password '$System.env.MAVEN_PASSWORD'
}
}
}
}

27 changes: 0 additions & 27 deletions build.sbt

This file was deleted.

35 changes: 14 additions & 21 deletions src/test/java/com/squidex/api/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,37 +11,30 @@ public static ClientProvider getClient() {
return singleClient;
}

String appName = System.getenv("CONFIG__APP__NAME");
String clientId = System.getenv("CONFIG__CLIENT_ID");
String clientSecret = System.getenv("CONFIG__CLIENT_SECRET");
String environment = System.getenv("CONFIG__SERVER__URL");

if (appName == null) {
appName = "integration-tests";
}

if (clientId == null) {
clientId = "root";
}

if (clientSecret == null) {
clientSecret = "xeLd6jFxqbXJrfmNLlO2j1apagGGGSyZJhFnIuHp4I0=";
}

if (environment == null) {
environment = "https://localhost:5001";
}
String appName = getEnvOrDefault("CONFIG__APP__NAME", "integration-tests");
String clientId = getEnvOrDefault("CONFIG__CLIENT_ID", "root");
String clientSecret = getEnvOrDefault("CONFIG__CLIENT_SECRET", "xeLd6jFxqbXJrfmNLlO2j1apagGGGSyZJhFnIuHp4I0=");
String url = getEnvOrDefault("CONFIG__SERVER__URL", "https://localhost:5001");

SquidexClientBuilder builder = SquidexClient.builder()
.trustAllCerts(true)
.appName(appName)
.clientId(clientId)
.clientSecret(clientSecret)
.url(environment);
.url(url);

singleClient = new ClientProvider(builder, builder.build());

return singleClient;
}

private static String getEnvOrDefault(String key, String defaultValue) {
String result = System.getenv(key);
if (result == null || result.isEmpty()) {
result = defaultValue;
}

return result;
}
}

0 comments on commit 823ff88

Please sign in to comment.