├── .gitignore ├── .travis.yml ├── README.md ├── build.gradle ├── complete ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── micronaut-cli.yml ├── mvnw ├── mvnw.bat ├── pom.xml ├── settings.gradle └── src │ ├── main │ ├── java │ │ └── example │ │ │ └── micronaut │ │ │ ├── Application.java │ │ │ ├── ApplicationConfiguration.java │ │ │ ├── ApplicationConfigurationProperties.java │ │ │ ├── GenreController.java │ │ │ ├── GenreRepository.java │ │ │ ├── GenreRepositoryImpl.java │ │ │ ├── GenreSaveCommand.java │ │ │ ├── GenreUpdateCommand.java │ │ │ ├── SortingAndOrderArguments.java │ │ │ └── domain │ │ │ ├── Book.java │ │ │ └── Genre.java │ └── resources │ │ ├── application.yml │ │ └── logback.xml │ └── test │ └── java │ └── example │ └── micronaut │ └── GenreControllerTest.java ├── dependencies.txt ├── gradle.properties ├── gradle ├── testVerbose.gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle ├── src └── main │ ├── docs │ └── guide │ │ ├── gettingStarted.adoc │ │ ├── help.adoc │ │ ├── nextSteps.adoc │ │ ├── requirements.adoc │ │ ├── runningTheApp.adoc │ │ ├── solution.adoc │ │ ├── toc.yml │ │ ├── usingPostgresql.adoc │ │ ├── writingTheApp.adoc │ │ └── writingTheApp │ │ ├── appConfiguration.adoc │ │ ├── controller.adoc │ │ ├── datasource.adoc │ │ ├── domain.adoc │ │ ├── repository.adoc │ │ └── tests.adoc │ └── resources │ └── img │ ├── annotationprocessorsintellij.png │ └── datagrip.png ├── travis-build-pr.sh └── travis-build.sh /.gitignore: -------------------------------------------------------------------------------- 1 | /.gradle 2 | /.idea 3 | build 4 | *.iml 5 | .DS_Store 6 | *.db 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: trusty 2 | env: 3 | matrix: 4 | - MOZ_HEADLESS=1 5 | global: 6 | - secure: WKv16GutsCd+dEaz42OvvOdKLWHzHaLD6qU70H48HVt7imKNaXcCvRNTvmdALkvvi4CTHTCbpAK45EQkL9IDA6ThLY7D2D2t2zqIy7+BMVUU/PuK6s41HzxreGDAv9m8KXi9pNCrKK5YUtGQnsoYKNYmukcgMUrWSeMQiZBzZkm72j+g2dESUyMoZsv/ZZIGNxxdaRgWCTJz0eCIuMaVSz4qZAttAPsFinC7fS1GbEyppcWkL2hg99n4fNABP63qihiq0ndYyMiiTa00hjmf0h29jAANN1Ww8Xix3GXXVC/CbuTABIUblovDU1P9qVS/QMwstwhO7QPOJ5Ph3VTrxssLBfiMheP4m5cNcAY7vkoMfRGLtVNGumgAV+cQXSSDuHKtBnsb1QabRI7L9mwKBFcytV4fZTNGqsnKk6hue5mJi0r+rPyHjeCaH7HZ9XbY6hrnGiUigV+5qB6ggS1v8Bz7UhlX3PCmdR7XaE9AgLvHC5UoyWoiAdjHRLi5/lVjPCtc3621AhAqaQ1Tr6PSjOyDg+dewRMOjVfTDTSlJLF4KS6QSOlFvUTOst+FtRn/nExBsHrFlM1KlmzeacPNXznZ+Ohj19RIR5P6xzcZjURXao/NVTi/+eKvT/ona5R1SeNJ/uHO4w9vehnKYneVn055wIynHwmIvh/MsCzVEhw= 7 | - secure: U/p49zNAF//CbF/0ReonT5iDDwcUkWiK+M39WDb+k91cdMwV0N+hI+KAFPts+kMB9dP+kqL3CPrDt1vDAoPYowubKgJGhFEPgo0C+taWLvC9ANBKBZcvGtX8hDWrLh4YbbhOQAkgKw3zhPqEuGAId2y9JgOWL5jxWRhVOoefainUZ5X1S0Gpcw1qKWOJCaoGAtVXJH/AxTi80P9Hu7tViJynKhgo++T69OMbhzrj3amugiosfW4m5xwHo2pxfA/RkkTXGEZRJV71kSuWDZenE86W7UEM7Go5tT/+RL1Ea9jyHj3Ezg9DyTcZILJFyrG4oQth53jBqO/nAZXBuY72N4MIFGzuF6ykwbFthVXsOJBI9dh/PIgoaAfiH5Lyk/dku9p3vofweE8YyWK410uksvKP7KlS3uu9XfO1MJC2x9ak1dASS5BA1KIQI9Favjs92pUw0+iWjgHaWClV3Oljv0OTUBxYwpUaxC4X84HrQIy3en2RMdTjZQ1OqhtGP3omS/RWyKR5SQhF4MaevN3QDyFL49C2pM42lkbS68fDdzCg/BQkIFPqpFEghtd0dYgRdvjbyB27ETdAJUse9r9zOSTvnX3i/N3oPv014N8+Amz6+/Ay1LJm0xOpoYl/05qjHrH+MaGsYMzdH8XxIZ0+HoUhutwxNE56fjeFnSRtG00= 8 | - secure: ISvmNHUjWiArohUfGey6MGrZMtFamriQ8ATH1Pq7GC+QHEfm+ztoOpLyTrs9BQmNHvjCVJSmpGdjdK00sdEtBI1vAEWwNpX7cXoOFvpp5prbK3C8ajJofCJibYGXJZKRF434bc3VzfMrzpxPjtdtsU3H155w6qsubYz+6kLhgSxNN3G72F9GeFexH/svvDfPQFbtVV+Ur8+EbcEblBP7LIVqcw59VYZoBQMGcNi/UTfQyJDmrokgi1J8J/1dh6G41id5yGesp+gG4DvjC90SPQyCv5kxjctksq37mig9z47IjNjsxg641+pyHTFx6L9F3hEEtq3adrPSGXEdugUxsYNThETB/9+Bh2vAFTiNdFRWny+EnIO11WpCxZbjkxYy66geKqJv2KS+hjmr0BXybE+R338tqHzAP5rVeueyP4djycXAuJw4zKFO/vJ8Ts0XGt85m2O6hTL/zM09EkiboFszZZX0WmazjCENz90nqeiFWPD/Lxcj9s5JnVGXkNeFWgHH23Rgb7DgorJLjoneivyIKxH6zqWGwAudkcnCHumRnkR+vjOBQS3SUFUquYCCDoL3VUFrRzGLmJKrEgBvmuH20nKnhUt1tpTLj8t+RCiu6+0Rb/yCX4CQgbfThnto0gdr9gVmVdNIHYDVWxy/9krnThYKfvNGDn6bjepVG6s= 9 | addons: 10 | firefox: latest 11 | chrome: stable 12 | sudo: required 13 | language: java 14 | cache: 15 | directories: 16 | - "$HOME/.gradle" 17 | jdk: 18 | - openjdk8 19 | before_script: 20 | - rm -rf target 21 | script: 22 | - if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then bash ./travis-build-pr.sh; fi 23 | - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./travis-build.sh; fi 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # This guide has been deprecated and moved to https://github.com/micronaut-projects/micronaut-guides-poc. Please open any issue or pull request in that repository. 2 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'org.aim42.htmlSanityCheck' version '1.1.3' 3 | id 'org.asciidoctor.jvm.convert' version '2.3.0' 4 | } 5 | 6 | apply from:"https://raw.githubusercontent.com/micronaut-projects/micronaut-guides/master/gradle/guide-build.gradle" 7 | 8 | htmlSanityCheck { 9 | sourceDir = new File("${project.buildDir}/docs") 10 | } 11 | publishGuide.finalizedBy(htmlSanityCheck) 12 | -------------------------------------------------------------------------------- /complete/.gitignore: -------------------------------------------------------------------------------- 1 | Thumbs.db 2 | .DS_Store 3 | .gradle 4 | build/ 5 | target/ 6 | out/ 7 | .idea 8 | *.iml 9 | *.ipr 10 | *.iws 11 | .project 12 | .settings 13 | .classpath -------------------------------------------------------------------------------- /complete/.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- 1 | /* 2 | Licensed to the Apache Software Foundation (ASF) under one 3 | or more contributor license agreements. See the NOTICE file 4 | distributed with this work for additional information 5 | regarding copyright ownership. The ASF licenses this file 6 | to you under the Apache License, Version 2.0 (the 7 | "License"); you may not use this file except in compliance 8 | with the License. You may obtain a copy of the License at 9 | 10 | http://www.apache.org/licenses/LICENSE-2.0 11 | 12 | Unless required by applicable law or agreed to in writing, 13 | software distributed under the License is distributed on an 14 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | KIND, either express or implied. See the License for the 16 | specific language governing permissions and limitations 17 | under the License. 18 | */ 19 | 20 | import java.net.*; 21 | import java.io.*; 22 | import java.nio.channels.*; 23 | import java.util.Properties; 24 | 25 | public class MavenWrapperDownloader { 26 | 27 | /** 28 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. 29 | */ 30 | private static final String DEFAULT_DOWNLOAD_URL = 31 | "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.0/maven-wrapper-0.4.0.jar"; 32 | 33 | /** 34 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to 35 | * use instead of the default one. 36 | */ 37 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH = 38 | ".mvn/wrapper/maven-wrapper.properties"; 39 | 40 | /** 41 | * Path where the maven-wrapper.jar will be saved to. 42 | */ 43 | private static final String MAVEN_WRAPPER_JAR_PATH = 44 | ".mvn/wrapper/maven-wrapper.jar"; 45 | 46 | /** 47 | * Name of the property which should be used to override the default download url for the wrapper. 48 | */ 49 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; 50 | 51 | public static void main(String args[]) { 52 | System.out.println("- Downloader started"); 53 | File baseDirectory = new File(args[0]); 54 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); 55 | 56 | // If the maven-wrapper.properties exists, read it and check if it contains a custom 57 | // wrapperUrl parameter. 58 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); 59 | String url = DEFAULT_DOWNLOAD_URL; 60 | if(mavenWrapperPropertyFile.exists()) { 61 | FileInputStream mavenWrapperPropertyFileInputStream = null; 62 | try { 63 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); 64 | Properties mavenWrapperProperties = new Properties(); 65 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); 66 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); 67 | } catch (IOException e) { 68 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); 69 | } finally { 70 | try { 71 | if(mavenWrapperPropertyFileInputStream != null) { 72 | mavenWrapperPropertyFileInputStream.close(); 73 | } 74 | } catch (IOException e) { 75 | // Ignore ... 76 | } 77 | } 78 | } 79 | System.out.println("- Downloading from: : " + url); 80 | 81 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); 82 | if(!outputFile.getParentFile().exists()) { 83 | if(!outputFile.getParentFile().mkdirs()) { 84 | System.out.println( 85 | "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); 86 | } 87 | } 88 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); 89 | try { 90 | downloadFileFromURL(url, outputFile); 91 | System.out.println("Done"); 92 | System.exit(0); 93 | } catch (Throwable e) { 94 | System.out.println("- Error downloading"); 95 | e.printStackTrace(); 96 | System.exit(1); 97 | } 98 | } 99 | 100 | private static void downloadFileFromURL(String urlString, File destination) throws Exception { 101 | URL website = new URL(urlString); 102 | ReadableByteChannel rbc; 103 | rbc = Channels.newChannel(website.openStream()); 104 | FileOutputStream fos = new FileOutputStream(destination); 105 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 106 | fos.close(); 107 | rbc.close(); 108 | } 109 | 110 | } 111 | -------------------------------------------------------------------------------- /complete/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micronaut-guides/micronaut-data-access-jpa-hibernate/d890a42e3f77b621f47c3db083b4d64ebd4d67e1/complete/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /complete/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip -------------------------------------------------------------------------------- /complete/README.md: -------------------------------------------------------------------------------- 1 | # Micronaut + JPA Example 2 | 3 | ## Using Gradle 4 | 5 | To run the application locally use: 6 | 7 | ``` 8 | ./gradlew run -t 9 | ``` 10 | 11 | The `-t` flag enables automatical reload. 12 | 13 | To build an executable JAR file run: 14 | 15 | ``` 16 | ./gradlew assemble 17 | java -jar build/libs/complete-0.1-all.jar 18 | ``` 19 | 20 | To build a native image (requires JDK 8 version of GraalVM) run: 21 | 22 | ``` 23 | ./gradlew nativeImage 24 | ./build/native-image/application 25 | ``` 26 | 27 | ## Using Maven 28 | 29 | To run the application locally use: 30 | 31 | ``` 32 | ./mvnw mn:run 33 | ``` 34 | 35 | To build an executable JAR file run: 36 | 37 | ``` 38 | ./mvnw package 39 | java -jar target/demo-0.1.jar 40 | ``` 41 | 42 | To build a native image (requires JDK 8 version of GraalVM) run: 43 | 44 | ``` 45 | native-image --report-unsupported-elements-at-runtime -H:Name=application -H:Class=example.micronaut.Application -cp target/demo-0.1.jar 46 | ./application 47 | ``` -------------------------------------------------------------------------------- /complete/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "com.github.johnrengelman.shadow" version "6.1.0" 3 | id "io.micronaut.application" version "1.1.0" 4 | } 5 | 6 | version "0.1" 7 | group "example.micronaut" 8 | 9 | repositories { 10 | mavenCentral() 11 | } 12 | 13 | micronaut { 14 | runtime "netty" 15 | testRuntime "junit5" 16 | } 17 | 18 | dependencies { 19 | //tag::validator[] 20 | annotationProcessor("io.micronaut:micronaut-validation") 21 | implementation("io.micronaut:micronaut-validation") 22 | //end::validator[] 23 | //tag::micronaut-graal[] 24 | //end::micronaut-graal[] 25 | //tag::micronaut-data[] 26 | annotationProcessor("io.micronaut.data:micronaut-data-processor") 27 | implementation("io.micronaut.data:micronaut-data-hibernate-jpa") 28 | //end::micronaut-data[] 29 | //tag::svm[] 30 | compileOnly("org.graalvm.nativeimage:svm") 31 | //end::svm[] 32 | implementation("io.micronaut:micronaut-http-client") 33 | 34 | //tag::jpa[] 35 | implementation("io.micronaut.sql:micronaut-jdbc-hikari") 36 | implementation("io.micronaut.sql:micronaut-hibernate-jpa") 37 | runtimeOnly("com.h2database:h2") 38 | //end::jpa[] 39 | 40 | //tag::postgresql[] 41 | runtimeOnly("org.postgresql:postgresql") 42 | //end::postgresql[] 43 | 44 | runtimeOnly("ch.qos.logback:logback-classic") 45 | 46 | } 47 | 48 | mainClassName = "example.micronaut.Application" 49 | 50 | java { 51 | sourceCompatibility = JavaVersion.toVersion('1.8') 52 | targetCompatibility = JavaVersion.toVersion('1.8') 53 | } 54 | 55 | 56 | -------------------------------------------------------------------------------- /complete/gradle.properties: -------------------------------------------------------------------------------- 1 | micronautVersion=2.1.3 2 | -------------------------------------------------------------------------------- /complete/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micronaut-guides/micronaut-data-access-jpa-hibernate/d890a42e3f77b621f47c3db083b4d64ebd4d67e1/complete/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /complete/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /complete/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # 4 | # Copyright 2015 the original author or authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | ## 21 | ## Gradle start up script for UN*X 22 | ## 23 | ############################################################################## 24 | 25 | # Attempt to set APP_HOME 26 | # Resolve links: $0 may be a link 27 | PRG="$0" 28 | # Need this for relative symlinks. 29 | while [ -h "$PRG" ] ; do 30 | ls=`ls -ld "$PRG"` 31 | link=`expr "$ls" : '.*-> \(.*\)$'` 32 | if expr "$link" : '/.*' > /dev/null; then 33 | PRG="$link" 34 | else 35 | PRG=`dirname "$PRG"`"/$link" 36 | fi 37 | done 38 | SAVED="`pwd`" 39 | cd "`dirname \"$PRG\"`/" >/dev/null 40 | APP_HOME="`pwd -P`" 41 | cd "$SAVED" >/dev/null 42 | 43 | APP_NAME="Gradle" 44 | APP_BASE_NAME=`basename "$0"` 45 | 46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 48 | 49 | # Use the maximum available, or set MAX_FD != -1 to use that value. 50 | MAX_FD="maximum" 51 | 52 | warn () { 53 | echo "$*" 54 | } 55 | 56 | die () { 57 | echo 58 | echo "$*" 59 | echo 60 | exit 1 61 | } 62 | 63 | # OS specific support (must be 'true' or 'false'). 64 | cygwin=false 65 | msys=false 66 | darwin=false 67 | nonstop=false 68 | case "`uname`" in 69 | CYGWIN* ) 70 | cygwin=true 71 | ;; 72 | Darwin* ) 73 | darwin=true 74 | ;; 75 | MINGW* ) 76 | msys=true 77 | ;; 78 | NONSTOP* ) 79 | nonstop=true 80 | ;; 81 | esac 82 | 83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 84 | 85 | 86 | # Determine the Java command to use to start the JVM. 87 | if [ -n "$JAVA_HOME" ] ; then 88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 89 | # IBM's JDK on AIX uses strange locations for the executables 90 | JAVACMD="$JAVA_HOME/jre/sh/java" 91 | else 92 | JAVACMD="$JAVA_HOME/bin/java" 93 | fi 94 | if [ ! -x "$JAVACMD" ] ; then 95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 96 | 97 | Please set the JAVA_HOME variable in your environment to match the 98 | location of your Java installation." 99 | fi 100 | else 101 | JAVACMD="java" 102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 103 | 104 | Please set the JAVA_HOME variable in your environment to match the 105 | location of your Java installation." 106 | fi 107 | 108 | # Increase the maximum file descriptors if we can. 109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 110 | MAX_FD_LIMIT=`ulimit -H -n` 111 | if [ $? -eq 0 ] ; then 112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 113 | MAX_FD="$MAX_FD_LIMIT" 114 | fi 115 | ulimit -n $MAX_FD 116 | if [ $? -ne 0 ] ; then 117 | warn "Could not set maximum file descriptor limit: $MAX_FD" 118 | fi 119 | else 120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 121 | fi 122 | fi 123 | 124 | # For Darwin, add options to specify how the application appears in the dock 125 | if $darwin; then 126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 127 | fi 128 | 129 | # For Cygwin or MSYS, switch paths to Windows format before running java 130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then 131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 133 | 134 | JAVACMD=`cygpath --unix "$JAVACMD"` 135 | 136 | # We build the pattern for arguments to be converted via cygpath 137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 138 | SEP="" 139 | for dir in $ROOTDIRSRAW ; do 140 | ROOTDIRS="$ROOTDIRS$SEP$dir" 141 | SEP="|" 142 | done 143 | OURCYGPATTERN="(^($ROOTDIRS))" 144 | # Add a user-defined pattern to the cygpath arguments 145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 147 | fi 148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 149 | i=0 150 | for arg in "$@" ; do 151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 153 | 154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 156 | else 157 | eval `echo args$i`="\"$arg\"" 158 | fi 159 | i=`expr $i + 1` 160 | done 161 | case $i in 162 | 0) set -- ;; 163 | 1) set -- "$args0" ;; 164 | 2) set -- "$args0" "$args1" ;; 165 | 3) set -- "$args0" "$args1" "$args2" ;; 166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;; 167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 172 | esac 173 | fi 174 | 175 | # Escape application args 176 | save () { 177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 178 | echo " " 179 | } 180 | APP_ARGS=`save "$@"` 181 | 182 | # Collect all arguments for the java command, following the shell quoting and substitution rules 183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 184 | 185 | exec "$JAVACMD" "$@" 186 | -------------------------------------------------------------------------------- /complete/gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto init 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto init 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :init 68 | @rem Get command-line arguments, handling Windows variants 69 | 70 | if not "%OS%" == "Windows_NT" goto win9xME_args 71 | 72 | :win9xME_args 73 | @rem Slurp the command line arguments. 74 | set CMD_LINE_ARGS= 75 | set _SKIP=2 76 | 77 | :win9xME_args_slurp 78 | if "x%~1" == "x" goto execute 79 | 80 | set CMD_LINE_ARGS=%* 81 | 82 | :execute 83 | @rem Setup the command line 84 | 85 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 86 | 87 | 88 | @rem Execute Gradle 89 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 90 | 91 | :end 92 | @rem End local scope for the variables with windows NT shell 93 | if "%ERRORLEVEL%"=="0" goto mainEnd 94 | 95 | :fail 96 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 97 | rem the _cmd.exe /c_ return code! 98 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 99 | exit /b 1 100 | 101 | :mainEnd 102 | if "%OS%"=="Windows_NT" endlocal 103 | 104 | :omega 105 | -------------------------------------------------------------------------------- /complete/micronaut-cli.yml: -------------------------------------------------------------------------------- 1 | applicationType: default 2 | defaultPackage: example.micronaut 3 | testFramework: junit 4 | sourceLanguage: java 5 | buildTool: gradle 6 | features: [app-name, data, data-jpa, docker, file-watch, graalvm, gradle, h2, hibernate-jpa, http-client, java, java-application, jdbc-hikari, junit, logback, netty-server, readme, shade, yaml] 7 | -------------------------------------------------------------------------------- /complete/mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven2 Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home 58 | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html 59 | if [ -z "$JAVA_HOME" ]; then 60 | if [ -x "/usr/libexec/java_home" ]; then 61 | export JAVA_HOME="`/usr/libexec/java_home`" 62 | else 63 | export JAVA_HOME="/Library/Java/Home" 64 | fi 65 | fi 66 | ;; 67 | esac 68 | 69 | if [ -z "$JAVA_HOME" ] ; then 70 | if [ -r /etc/gentoo-release ] ; then 71 | JAVA_HOME=`java-config --jre-home` 72 | fi 73 | fi 74 | 75 | if [ -z "$M2_HOME" ] ; then 76 | ## resolve links - $0 may be a link to maven's home 77 | PRG="$0" 78 | 79 | # need this for relative symlinks 80 | while [ -h "$PRG" ] ; do 81 | ls=`ls -ld "$PRG"` 82 | link=`expr "$ls" : '.*-> \(.*\)$'` 83 | if expr "$link" : '/.*' > /dev/null; then 84 | PRG="$link" 85 | else 86 | PRG="`dirname "$PRG"`/$link" 87 | fi 88 | done 89 | 90 | saveddir=`pwd` 91 | 92 | M2_HOME=`dirname "$PRG"`/.. 93 | 94 | # make it fully qualified 95 | M2_HOME=`cd "$M2_HOME" && pwd` 96 | 97 | cd "$saveddir" 98 | # echo Using m2 at $M2_HOME 99 | fi 100 | 101 | # For Cygwin, ensure paths are in UNIX format before anything is touched 102 | if $cygwin ; then 103 | [ -n "$M2_HOME" ] && 104 | M2_HOME=`cygpath --unix "$M2_HOME"` 105 | [ -n "$JAVA_HOME" ] && 106 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 107 | [ -n "$CLASSPATH" ] && 108 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 109 | fi 110 | 111 | # For Mingw, ensure paths are in UNIX format before anything is touched 112 | if $mingw ; then 113 | [ -n "$M2_HOME" ] && 114 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 115 | [ -n "$JAVA_HOME" ] && 116 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 117 | # TODO classpath? 118 | fi 119 | 120 | if [ -z "$JAVA_HOME" ]; then 121 | javaExecutable="`which javac`" 122 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 123 | # readlink(1) is not available as standard on Solaris 10. 124 | readLink=`which readlink` 125 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 126 | if $darwin ; then 127 | javaHome="`dirname \"$javaExecutable\"`" 128 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 129 | else 130 | javaExecutable="`readlink -f \"$javaExecutable\"`" 131 | fi 132 | javaHome="`dirname \"$javaExecutable\"`" 133 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 134 | JAVA_HOME="$javaHome" 135 | export JAVA_HOME 136 | fi 137 | fi 138 | fi 139 | 140 | if [ -z "$JAVACMD" ] ; then 141 | if [ -n "$JAVA_HOME" ] ; then 142 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 143 | # IBM's JDK on AIX uses strange locations for the executables 144 | JAVACMD="$JAVA_HOME/jre/sh/java" 145 | else 146 | JAVACMD="$JAVA_HOME/bin/java" 147 | fi 148 | else 149 | JAVACMD="`which java`" 150 | fi 151 | fi 152 | 153 | if [ ! -x "$JAVACMD" ] ; then 154 | echo "Error: JAVA_HOME is not defined correctly." >&2 155 | echo " We cannot execute $JAVACMD" >&2 156 | exit 1 157 | fi 158 | 159 | if [ -z "$JAVA_HOME" ] ; then 160 | echo "Warning: JAVA_HOME environment variable is not set." 161 | fi 162 | 163 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 164 | 165 | # traverses directory structure from process work directory to filesystem root 166 | # first directory with .mvn subdirectory is considered project base directory 167 | find_maven_basedir() { 168 | 169 | if [ -z "$1" ] 170 | then 171 | echo "Path not specified to find_maven_basedir" 172 | return 1 173 | fi 174 | 175 | basedir="$1" 176 | wdir="$1" 177 | while [ "$wdir" != '/' ] ; do 178 | if [ -d "$wdir"/.mvn ] ; then 179 | basedir=$wdir 180 | break 181 | fi 182 | # workaround for JBEAP-8937 (on Solaris 10/Sparc) 183 | if [ -d "${wdir}" ]; then 184 | wdir=`cd "$wdir/.."; pwd` 185 | fi 186 | # end of workaround 187 | done 188 | echo "${basedir}" 189 | } 190 | 191 | # concatenates all lines of a file 192 | concat_lines() { 193 | if [ -f "$1" ]; then 194 | echo "$(tr -s '\n' ' ' < "$1")" 195 | fi 196 | } 197 | 198 | BASE_DIR=`find_maven_basedir "$(pwd)"` 199 | if [ -z "$BASE_DIR" ]; then 200 | exit 1; 201 | fi 202 | 203 | ########################################################################################## 204 | # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 205 | # This allows using the maven wrapper in projects that prohibit checking in binary data. 206 | ########################################################################################## 207 | if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then 208 | if [ "$MVNW_VERBOSE" = true ]; then 209 | echo "Found .mvn/wrapper/maven-wrapper.jar" 210 | fi 211 | else 212 | if [ "$MVNW_VERBOSE" = true ]; then 213 | echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." 214 | fi 215 | jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.0/maven-wrapper-0.4.0.jar" 216 | while IFS="=" read key value; do 217 | case "$key" in (wrapperUrl) jarUrl="$value"; break ;; 218 | esac 219 | done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" 220 | if [ "$MVNW_VERBOSE" = true ]; then 221 | echo "Downloading from: $jarUrl" 222 | fi 223 | wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" 224 | 225 | if command -v wget > /dev/null; then 226 | if [ "$MVNW_VERBOSE" = true ]; then 227 | echo "Found wget ... using wget" 228 | fi 229 | wget "$jarUrl" -O "$wrapperJarPath" 230 | elif command -v curl > /dev/null; then 231 | if [ "$MVNW_VERBOSE" = true ]; then 232 | echo "Found curl ... using curl" 233 | fi 234 | curl -o "$wrapperJarPath" "$jarUrl" 235 | else 236 | if [ "$MVNW_VERBOSE" = true ]; then 237 | echo "Falling back to using Java to download" 238 | fi 239 | javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" 240 | if [ -e "$javaClass" ]; then 241 | if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then 242 | if [ "$MVNW_VERBOSE" = true ]; then 243 | echo " - Compiling MavenWrapperDownloader.java ..." 244 | fi 245 | # Compiling the Java class 246 | ("$JAVA_HOME/bin/javac" "$javaClass") 247 | fi 248 | if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then 249 | # Running the downloader 250 | if [ "$MVNW_VERBOSE" = true ]; then 251 | echo " - Running MavenWrapperDownloader.java ..." 252 | fi 253 | ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") 254 | fi 255 | fi 256 | fi 257 | fi 258 | ########################################################################################## 259 | # End of extension 260 | ########################################################################################## 261 | 262 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} 263 | if [ "$MVNW_VERBOSE" = true ]; then 264 | echo $MAVEN_PROJECTBASEDIR 265 | fi 266 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 267 | 268 | # For Cygwin, switch paths to Windows format before running java 269 | if $cygwin; then 270 | [ -n "$M2_HOME" ] && 271 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 272 | [ -n "$JAVA_HOME" ] && 273 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 274 | [ -n "$CLASSPATH" ] && 275 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 276 | [ -n "$MAVEN_PROJECTBASEDIR" ] && 277 | MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` 278 | fi 279 | 280 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 281 | 282 | exec "$JAVACMD" \ 283 | $MAVEN_OPTS \ 284 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 285 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 286 | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" 287 | -------------------------------------------------------------------------------- /complete/mvnw.bat: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM set title of command window 39 | title %0 40 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 42 | 43 | @REM set %HOME% to equivalent of $HOME 44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 45 | 46 | @REM Execute a user defined script before this one 47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 51 | :skipRcPre 52 | 53 | @setlocal 54 | 55 | set ERROR_CODE=0 56 | 57 | @REM To isolate internal variables from possible post scripts, we use another setlocal 58 | @setlocal 59 | 60 | @REM ==== START VALIDATION ==== 61 | if not "%JAVA_HOME%" == "" goto OkJHome 62 | 63 | echo. 64 | echo Error: JAVA_HOME not found in your environment. >&2 65 | echo Please set the JAVA_HOME variable in your environment to match the >&2 66 | echo location of your Java installation. >&2 67 | echo. 68 | goto error 69 | 70 | :OkJHome 71 | if exist "%JAVA_HOME%\bin\java.exe" goto init 72 | 73 | echo. 74 | echo Error: JAVA_HOME is set to an invalid directory. >&2 75 | echo JAVA_HOME = "%JAVA_HOME%" >&2 76 | echo Please set the JAVA_HOME variable in your environment to match the >&2 77 | echo location of your Java installation. >&2 78 | echo. 79 | goto error 80 | 81 | @REM ==== END VALIDATION ==== 82 | 83 | :init 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" 121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 122 | 123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.0/maven-wrapper-0.4.0.jar" 124 | FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( 125 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 126 | ) 127 | 128 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 129 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data. 130 | if exist %WRAPPER_JAR% ( 131 | echo Found %WRAPPER_JAR% 132 | ) else ( 133 | echo Couldn't find %WRAPPER_JAR%, downloading it ... 134 | echo Downloading from: %DOWNLOAD_URL% 135 | powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" 136 | echo Finished downloading %WRAPPER_JAR% 137 | ) 138 | @REM End of extension 139 | 140 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* 141 | if ERRORLEVEL 1 goto error 142 | goto end 143 | 144 | :error 145 | set ERROR_CODE=1 146 | 147 | :end 148 | @endlocal & set ERROR_CODE=%ERROR_CODE% 149 | 150 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 151 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 152 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 153 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 154 | :skipRcPost 155 | 156 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 157 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 158 | 159 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 160 | 161 | exit /B %ERROR_CODE% 162 | -------------------------------------------------------------------------------- /complete/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | com.example 6 | demo 7 | 0.1 8 | 9 | 10 | io.micronaut 11 | micronaut-parent 12 | 2.1.3 13 | 14 | 15 | 16 | 8 17 | 8 18 | 2.1.3 19 | example.micronaut.Application 20 | 2.1.1 21 | 22 | 23 | 24 | 25 | central 26 | https://repo.maven.apache.org/maven2 27 | 28 | 29 | jcenter.bintray.com 30 | https://jcenter.bintray.com 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | io.micronaut 45 | micronaut-inject 46 | compile 47 | 48 | 49 | io.micronaut 50 | micronaut-validation 51 | compile 52 | 53 | 54 | io.micronaut 55 | micronaut-http-server-netty 56 | compile 57 | 58 | 59 | io.micronaut 60 | micronaut-http-client 61 | compile 62 | 63 | 64 | org.graalvm.nativeimage 65 | svm 66 | provided 67 | 68 | 69 | io.micronaut 70 | micronaut-runtime 71 | compile 72 | 73 | 74 | javax.annotation 75 | javax.annotation-api 76 | compile 77 | 78 | 79 | io.micronaut.sql 80 | micronaut-jdbc-hikari 81 | compile 82 | 83 | 84 | io.micronaut.data 85 | micronaut-data-hibernate-jpa 86 | compile 87 | 88 | 89 | ch.qos.logback 90 | logback-classic 91 | runtime 92 | 93 | 94 | com.h2database 95 | h2 96 | runtime 97 | 98 | 99 | org.junit.jupiter 100 | junit-jupiter-api 101 | test 102 | 103 | 104 | org.junit.jupiter 105 | junit-jupiter-engine 106 | test 107 | 108 | 109 | io.micronaut.test 110 | micronaut-test-junit5 111 | test 112 | 113 | 114 | 115 | 116 | 117 | 118 | io.micronaut.build 119 | micronaut-maven-plugin 120 | 121 | 122 | org.apache.maven.plugins 123 | maven-shade-plugin 124 | 125 | 126 | org.apache.maven.plugins 127 | maven-failsafe-plugin 128 | 129 | 130 | org.apache.maven.plugins 131 | maven-compiler-plugin 132 | 133 | 134 | 135 | 136 | 137 | io.micronaut 138 | micronaut-inject-java 139 | ${micronaut.version} 140 | 141 | 142 | io.micronaut 143 | micronaut-validation 144 | ${micronaut.version} 145 | 146 | 147 | io.micronaut 148 | micronaut-graal 149 | ${micronaut.version} 150 | 151 | 152 | io.micronaut.data 153 | micronaut-data-processor 154 | ${micronaut.data.version} 155 | 156 | 157 | 158 | -Amicronaut.processing.group=com.example 159 | -Amicronaut.processing.module=demo 160 | 161 | 162 | 163 | 164 | test-compile 165 | 166 | testCompile 167 | 168 | 169 | 170 | 171 | io.micronaut 172 | micronaut-inject-java 173 | ${micronaut.version} 174 | 175 | 176 | io.micronaut 177 | micronaut-validation 178 | ${micronaut.version} 179 | 180 | 181 | io.micronaut 182 | micronaut-graal 183 | ${micronaut.version} 184 | 185 | 186 | io.micronaut.data 187 | micronaut-data-processor 188 | ${micronaut.data.version} 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | -------------------------------------------------------------------------------- /complete/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name="complete" 2 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/Application.java: -------------------------------------------------------------------------------- 1 | package example.micronaut; 2 | 3 | import io.micronaut.runtime.Micronaut; 4 | 5 | public class Application { 6 | 7 | public static void main(String[] args) { 8 | Micronaut.run(Application.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/ApplicationConfiguration.java: -------------------------------------------------------------------------------- 1 | package example.micronaut; 2 | 3 | import javax.validation.constraints.NotNull; 4 | 5 | public interface ApplicationConfiguration { 6 | 7 | @NotNull Integer getMax(); 8 | } 9 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/ApplicationConfigurationProperties.java: -------------------------------------------------------------------------------- 1 | package example.micronaut; 2 | 3 | import edu.umd.cs.findbugs.annotations.NonNull; 4 | import io.micronaut.context.annotation.ConfigurationProperties; 5 | 6 | @ConfigurationProperties("application") // <1> 7 | public class ApplicationConfigurationProperties implements ApplicationConfiguration { 8 | 9 | protected final Integer DEFAULT_MAX = 10; 10 | 11 | @NonNull 12 | private Integer max = DEFAULT_MAX; 13 | 14 | @Override 15 | @NonNull 16 | public Integer getMax() { 17 | return max; 18 | } 19 | 20 | public void setMax(@NonNull Integer max) { 21 | if(max != null) { 22 | this.max = max; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/GenreController.java: -------------------------------------------------------------------------------- 1 | package example.micronaut; 2 | 3 | import example.micronaut.domain.Genre; 4 | import io.micronaut.http.HttpHeaders; 5 | import io.micronaut.http.HttpResponse; 6 | import io.micronaut.http.annotation.Body; 7 | import io.micronaut.http.annotation.Controller; 8 | import io.micronaut.http.annotation.Delete; 9 | import io.micronaut.http.annotation.Get; 10 | import io.micronaut.http.annotation.Post; 11 | import io.micronaut.http.annotation.Put; 12 | import io.micronaut.scheduling.TaskExecutors; 13 | import io.micronaut.scheduling.annotation.ExecuteOn; 14 | 15 | import javax.persistence.PersistenceException; 16 | import javax.validation.Valid; 17 | import java.net.URI; 18 | import java.util.List; 19 | 20 | @ExecuteOn(TaskExecutors.IO) // <1> 21 | @Controller("/genres") // <2> 22 | public class GenreController { 23 | 24 | protected final GenreRepository genreRepository; 25 | 26 | public GenreController(GenreRepository genreRepository) { // <3> 27 | this.genreRepository = genreRepository; 28 | } 29 | 30 | @Get("/{id}") // <4> 31 | public Genre show(Long id) { 32 | return genreRepository 33 | .findById(id) 34 | .orElse(null); // <5> 35 | } 36 | 37 | @Put // <6> 38 | public HttpResponse update(@Body @Valid GenreUpdateCommand command) { // <7> 39 | int numberOfEntitiesUpdated = genreRepository.update(command.getId(), command.getName()); 40 | 41 | return HttpResponse 42 | .noContent() 43 | .header(HttpHeaders.LOCATION, location(command.getId()).getPath()); // <8> 44 | } 45 | 46 | @Get(value = "/list{?args*}") // <9> 47 | public List list(@Valid SortingAndOrderArguments args) { 48 | return genreRepository.findAll(args); 49 | } 50 | 51 | @Post // <10> 52 | public HttpResponse save(@Body @Valid GenreSaveCommand cmd) { 53 | Genre genre = genreRepository.save(cmd.getName()); 54 | 55 | return HttpResponse 56 | .created(genre) 57 | .headers(headers -> headers.location(location(genre.getId()))); 58 | } 59 | 60 | @Post("/ex") // <11> 61 | public HttpResponse saveExceptions(@Body @Valid GenreSaveCommand cmd) { 62 | try { 63 | Genre genre = genreRepository.saveWithException(cmd.getName()); 64 | return HttpResponse 65 | .created(genre) 66 | .headers(headers -> headers.location(location(genre.getId()))); 67 | } catch(PersistenceException e) { 68 | return HttpResponse.noContent(); 69 | } 70 | } 71 | 72 | @Delete("/{id}") // <12> 73 | public HttpResponse delete(Long id) { 74 | genreRepository.deleteById(id); 75 | return HttpResponse.noContent(); 76 | } 77 | 78 | protected URI location(Long id) { 79 | return URI.create("/genres/" + id); 80 | } 81 | 82 | protected URI location(Genre genre) { 83 | return location(genre.getId()); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/GenreRepository.java: -------------------------------------------------------------------------------- 1 | package example.micronaut; 2 | 3 | import example.micronaut.domain.Genre; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotNull; 7 | import java.util.List; 8 | import java.util.Optional; 9 | 10 | public interface GenreRepository { 11 | 12 | Optional findById(@NotNull Long id); 13 | 14 | Genre save(@NotBlank String name); 15 | 16 | Genre saveWithException(@NotBlank String name); 17 | 18 | void deleteById(@NotNull Long id); 19 | 20 | List findAll(@NotNull SortingAndOrderArguments args); 21 | 22 | int update(@NotNull Long id, @NotBlank String name); 23 | } 24 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/GenreRepositoryImpl.java: -------------------------------------------------------------------------------- 1 | //tag::package[] 2 | package example.micronaut; 3 | //end::package[] 4 | //tag::import[] 5 | 6 | //end::import[] 7 | //tag::importContent[] 8 | import example.micronaut.domain.Genre; 9 | import javax.inject.Singleton; 10 | import javax.persistence.EntityManager; 11 | import javax.persistence.PersistenceException; 12 | import javax.persistence.TypedQuery; 13 | import javax.transaction.Transactional; 14 | import io.micronaut.transaction.annotation.ReadOnly; 15 | import javax.validation.constraints.NotBlank; 16 | import javax.validation.constraints.NotNull; 17 | import java.util.Arrays; 18 | import java.util.List; 19 | import java.util.Optional; 20 | //end::importContent[] 21 | //tag::clazz[] 22 | @Singleton // <1> 23 | public class GenreRepositoryImpl implements GenreRepository { 24 | //end::clazz[] 25 | //tag::clazzContent[] 26 | private final EntityManager entityManager; // <2> 27 | private final ApplicationConfiguration applicationConfiguration; 28 | 29 | public GenreRepositoryImpl(EntityManager entityManager, 30 | ApplicationConfiguration applicationConfiguration) { // <2> 31 | this.entityManager = entityManager; 32 | this.applicationConfiguration = applicationConfiguration; 33 | } 34 | 35 | @Override 36 | //end::clazzContent[] 37 | //tag::findById[] 38 | @ReadOnly // <3> 39 | public Optional findById(@NotNull Long id) { 40 | //end::findById[] 41 | //tag::findByIdContent[] 42 | return Optional.ofNullable(entityManager.find(Genre.class, id)); 43 | } 44 | 45 | @Override 46 | //end::findByIdContent[] 47 | //tag::save[] 48 | @Transactional // <4> 49 | public Genre save(@NotBlank String name) { 50 | //end::save[] 51 | //tag::saveContent[] 52 | Genre genre = new Genre(name); 53 | entityManager.persist(genre); 54 | return genre; 55 | } 56 | 57 | @Override 58 | //end::saveContent[] 59 | //tag::deleteById[] 60 | @Transactional // <4> 61 | public void deleteById(@NotNull Long id) { 62 | //end::deleteById[] 63 | //tag::deleteByIdContent[] 64 | findById(id).ifPresent(entityManager::remove); 65 | } 66 | 67 | private final static List VALID_PROPERTY_NAMES = Arrays.asList("id", "name"); 68 | 69 | //end::deleteByIdContent[] 70 | //tag::findAll[] 71 | @ReadOnly // <3> 72 | public List findAll(@NotNull SortingAndOrderArguments args) { 73 | //end::findAll[] 74 | //tag::findAllContent[] 75 | String qlString = "SELECT g FROM Genre as g"; 76 | if (args.getOrder().isPresent() && args.getSort().isPresent() && VALID_PROPERTY_NAMES.contains(args.getSort().get())) { 77 | qlString += " ORDER BY g." + args.getSort().get() + " " + args.getOrder().get().toLowerCase(); 78 | } 79 | TypedQuery query = entityManager.createQuery(qlString, Genre.class); 80 | query.setMaxResults(args.getMax().orElseGet(applicationConfiguration::getMax)); 81 | args.getOffset().ifPresent(query::setFirstResult); 82 | 83 | return query.getResultList(); 84 | } 85 | 86 | @Override 87 | //end::findAllContent[] 88 | //tag::update[] 89 | @Transactional // <4> 90 | public int update(@NotNull Long id, @NotBlank String name) { 91 | //end::update[] 92 | //tag::updateContent[] 93 | return entityManager.createQuery("UPDATE Genre g SET name = :name where id = :id") 94 | .setParameter("name", name) 95 | .setParameter("id", id) 96 | .executeUpdate(); 97 | } 98 | 99 | @Override // <4> 100 | //end::updateContent[] 101 | //tag::saveWithException[] 102 | @Transactional // <4> 103 | public Genre saveWithException(@NotBlank String name) { 104 | //end::saveWithException[] 105 | //tag::saveWithExceptionContent[] 106 | save(name); 107 | throw new PersistenceException(); 108 | } 109 | } 110 | //end::saveWithExceptionContent[] 111 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/GenreSaveCommand.java: -------------------------------------------------------------------------------- 1 | package example.micronaut; 2 | 3 | import io.micronaut.core.annotation.Introspected; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | @Introspected // <1> 8 | public class GenreSaveCommand { 9 | 10 | @NotBlank 11 | private String name; 12 | 13 | public GenreSaveCommand() { 14 | } 15 | 16 | public GenreSaveCommand(String name) { 17 | this.name = name; 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/GenreUpdateCommand.java: -------------------------------------------------------------------------------- 1 | package example.micronaut; 2 | 3 | import io.micronaut.core.annotation.Introspected; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotNull; 7 | 8 | @Introspected 9 | public class GenreUpdateCommand { 10 | @NotNull 11 | private Long id; 12 | 13 | @NotBlank 14 | private String name; 15 | 16 | public GenreUpdateCommand() { 17 | } 18 | 19 | public GenreUpdateCommand(Long id, String name) { 20 | this.id = id; 21 | this.name = name; 22 | } 23 | 24 | public Long getId() { 25 | return id; 26 | } 27 | 28 | public void setId(Long id) { 29 | this.id = id; 30 | } 31 | 32 | public String getName() { 33 | return name; 34 | } 35 | 36 | public void setName(String name) { 37 | this.name = name; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/SortingAndOrderArguments.java: -------------------------------------------------------------------------------- 1 | package example.micronaut; 2 | 3 | import io.micronaut.core.annotation.Introspected; 4 | 5 | import javax.annotation.Nullable; 6 | import javax.validation.constraints.Pattern; 7 | import javax.validation.constraints.Positive; 8 | import javax.validation.constraints.PositiveOrZero; 9 | import java.util.Optional; 10 | 11 | @Introspected 12 | public class SortingAndOrderArguments { 13 | 14 | @Nullable 15 | @PositiveOrZero // <1> 16 | private Integer offset; 17 | 18 | @Nullable 19 | @Positive // <1> 20 | private Integer max; 21 | 22 | @Nullable 23 | @Pattern(regexp = "id|name") // <1> 24 | private String sort; 25 | 26 | @Pattern(regexp = "asc|ASC|desc|DESC") // <1> 27 | @Nullable 28 | private String order; 29 | 30 | public SortingAndOrderArguments() { 31 | 32 | } 33 | 34 | public Optional getOffset() { 35 | return Optional.ofNullable(offset); 36 | } 37 | 38 | public void setOffset(@Nullable Integer offset) { 39 | this.offset = offset; 40 | } 41 | 42 | public Optional getMax() { 43 | return Optional.ofNullable(max); 44 | } 45 | 46 | public void setMax(@Nullable Integer max) { 47 | this.max = max; 48 | } 49 | 50 | public Optional getSort() { 51 | return Optional.ofNullable(sort); 52 | } 53 | 54 | public void setSort(@Nullable String sort) { 55 | this.sort = sort; 56 | } 57 | 58 | public Optional getOrder() { 59 | return Optional.ofNullable(order); 60 | } 61 | 62 | public void setOrder(@Nullable String order) { 63 | this.order = order; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/domain/Book.java: -------------------------------------------------------------------------------- 1 | package example.micronaut.domain; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.GeneratedValue; 6 | import javax.persistence.GenerationType; 7 | import javax.persistence.Id; 8 | import javax.persistence.ManyToOne; 9 | import javax.persistence.Table; 10 | import javax.validation.constraints.NotNull; 11 | 12 | @Entity 13 | @Table(name = "book") 14 | public class Book { 15 | 16 | public Book() {} 17 | 18 | public Book(@NotNull String isbn, @NotNull String name, Genre genre) { 19 | this.isbn = isbn; 20 | this.name = name; 21 | this.genre = genre; 22 | } 23 | 24 | @Id 25 | @GeneratedValue(strategy = GenerationType.AUTO) 26 | private Long id; 27 | 28 | @NotNull 29 | @Column(name = "name", nullable = false) 30 | private String name; 31 | 32 | @NotNull 33 | @Column(name = "isbn", nullable = false) 34 | private String isbn; 35 | 36 | @ManyToOne 37 | private Genre genre; 38 | 39 | public Long getId() { 40 | return id; 41 | } 42 | 43 | public void setId(Long id) { 44 | this.id = id; 45 | } 46 | 47 | public String getName() { 48 | return name; 49 | } 50 | 51 | public void setName(String name) { 52 | this.name = name; 53 | } 54 | 55 | public String getIsbn() { 56 | return isbn; 57 | } 58 | 59 | public void setIsbn(String isbn) { 60 | this.isbn = isbn; 61 | } 62 | 63 | public Genre getGenre() { 64 | return genre; 65 | } 66 | 67 | public void setGenre(Genre genre) { 68 | this.genre = genre; 69 | } 70 | 71 | @Override 72 | public String toString() { 73 | return "Book{" + 74 | "id=" + id + 75 | ", name='" + name + '\'' + 76 | ", isbn='" + isbn + '\'' + 77 | ", genre=" + genre + 78 | '}'; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /complete/src/main/java/example/micronaut/domain/Genre.java: -------------------------------------------------------------------------------- 1 | package example.micronaut.domain; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | import javax.persistence.OneToMany; 11 | import javax.persistence.Table; 12 | import javax.validation.constraints.NotNull; 13 | import java.util.HashSet; 14 | import java.util.Set; 15 | 16 | @Entity 17 | @Table(name = "genre") 18 | public class Genre { 19 | 20 | public Genre() {} 21 | 22 | public Genre(@NotNull String name) { 23 | this.name = name; 24 | } 25 | 26 | @Id 27 | @GeneratedValue(strategy = GenerationType.AUTO) 28 | private Long id; 29 | 30 | @NotNull 31 | @Column(name = "name", nullable = false, unique = true) 32 | private String name; 33 | 34 | @JsonIgnore 35 | @OneToMany(mappedBy = "genre") 36 | private Set books = new HashSet<>(); 37 | 38 | public Long getId() { 39 | return id; 40 | } 41 | 42 | public void setId(Long id) { 43 | this.id = id; 44 | } 45 | 46 | public String getName() { 47 | return name; 48 | } 49 | 50 | public void setName(String name) { 51 | this.name = name; 52 | } 53 | 54 | public Set getBooks() { 55 | return books; 56 | } 57 | 58 | public void setBooks(Set books) { 59 | this.books = books; 60 | } 61 | 62 | @Override 63 | public String toString() { 64 | return "Genre{" + 65 | "id=" + id + 66 | ", name='" + name + '\'' + 67 | '}'; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /complete/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | micronaut: 2 | application: 3 | name: complete 4 | #tag::application[] 5 | --- 6 | application: 7 | max: 50 8 | #end::application[] 9 | #tag::datasource[] 10 | --- 11 | datasources: 12 | default: 13 | url: ${JDBC_URL:`jdbc:h2:mem:default;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE`} 14 | username: ${JDBC_USER:sa} 15 | password: ${JDBC_PASSWORD:""} 16 | driverClassName: ${JDBC_DRIVER:org.h2.Driver} 17 | #end::datasource[] 18 | #tag::jpa[] 19 | --- 20 | jpa: 21 | default: 22 | properties: 23 | hibernate: 24 | hbm2ddl: 25 | auto: update 26 | show_sql: true 27 | #end::jpa[] -------------------------------------------------------------------------------- /complete/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 7 | 8 | %cyan(%d{HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}) - %msg%n 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /complete/src/test/java/example/micronaut/GenreControllerTest.java: -------------------------------------------------------------------------------- 1 | package example.micronaut; 2 | 3 | import example.micronaut.domain.Genre; 4 | import io.micronaut.core.type.Argument; 5 | import io.micronaut.http.HttpHeaders; 6 | import io.micronaut.http.HttpRequest; 7 | import io.micronaut.http.HttpResponse; 8 | import io.micronaut.http.HttpStatus; 9 | import io.micronaut.http.client.HttpClient; 10 | import io.micronaut.http.client.annotation.Client; 11 | import io.micronaut.http.client.exceptions.HttpClientResponseException; 12 | import io.micronaut.test.annotation.MicronautTest; 13 | import org.junit.jupiter.api.Test; 14 | 15 | import javax.inject.Inject; 16 | import java.util.ArrayList; 17 | import java.util.List; 18 | 19 | import static org.junit.jupiter.api.Assertions.assertEquals; 20 | import static org.junit.jupiter.api.Assertions.assertNotNull; 21 | import static org.junit.jupiter.api.Assertions.assertThrows; 22 | 23 | @MicronautTest // <1> 24 | public class GenreControllerTest { 25 | 26 | @Inject 27 | @Client("/") 28 | HttpClient client; // <2> 29 | 30 | @Test 31 | public void supplyAnInvalidOrderTriggersValidationFailure() { 32 | HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> { 33 | client.toBlocking().exchange(HttpRequest.GET("/genres/list?order=foo")); 34 | }); 35 | 36 | assertNotNull(thrown.getResponse()); 37 | assertEquals(HttpStatus.BAD_REQUEST, thrown.getStatus()); 38 | } 39 | 40 | @Test 41 | public void testFindNonExistingGenreReturns404() { 42 | HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> { 43 | client.toBlocking().exchange(HttpRequest.GET("/genres/99")); 44 | }); 45 | 46 | assertNotNull(thrown.getResponse()); 47 | assertEquals(HttpStatus.NOT_FOUND, thrown.getStatus()); 48 | } 49 | 50 | @Test 51 | public void testGenreCrudOperations() { 52 | 53 | List genreIds = new ArrayList<>(); 54 | 55 | HttpRequest request = HttpRequest.POST("/genres", new GenreSaveCommand("DevOps")); // <3> 56 | HttpResponse response = client.toBlocking().exchange(request); 57 | genreIds.add(entityId(response)); 58 | 59 | assertEquals(HttpStatus.CREATED, response.getStatus()); 60 | 61 | request = HttpRequest.POST("/genres", new GenreSaveCommand("Microservices")); // <3> 62 | response = client.toBlocking().exchange(request); 63 | 64 | assertEquals(HttpStatus.CREATED, response.getStatus()); 65 | 66 | Long id = entityId(response); 67 | genreIds.add(id); 68 | request = HttpRequest.GET("/genres/" + id); 69 | 70 | Genre genre = client.toBlocking().retrieve(request, Genre.class); // <4> 71 | 72 | assertEquals("Microservices", genre.getName()); 73 | 74 | request = HttpRequest.PUT("/genres", new GenreUpdateCommand(id, "Micro-services")); 75 | response = client.toBlocking().exchange(request); // <5> 76 | 77 | assertEquals(HttpStatus.NO_CONTENT, response.getStatus()); 78 | 79 | request = HttpRequest.GET("/genres/" + id); 80 | genre = client.toBlocking().retrieve(request, Genre.class); 81 | assertEquals("Micro-services", genre.getName()); 82 | 83 | request = HttpRequest.GET("/genres/list"); 84 | List genres = client.toBlocking().retrieve(request, Argument.of(List.class, Genre.class)); 85 | 86 | assertEquals(2, genres.size()); 87 | 88 | request = HttpRequest.POST("/genres/ex", new GenreSaveCommand("Microservices")); // <3> 89 | response = client.toBlocking().exchange(request); 90 | 91 | assertEquals(HttpStatus.NO_CONTENT, response.getStatus()); 92 | 93 | request = HttpRequest.GET("/genres/list"); 94 | genres = client.toBlocking().retrieve(request, Argument.of(List.class, Genre.class)); 95 | 96 | assertEquals(2, genres.size()); 97 | 98 | request = HttpRequest.GET("/genres/list?max=1"); 99 | genres = client.toBlocking().retrieve(request, Argument.of(List.class, Genre.class)); 100 | 101 | assertEquals(1, genres.size()); 102 | assertEquals("DevOps", genres.get(0).getName()); 103 | 104 | request = HttpRequest.GET("/genres/list?max=1&order=desc&sort=name"); 105 | genres = client.toBlocking().retrieve(request, Argument.of(List.class, Genre.class)); 106 | 107 | assertEquals(1, genres.size()); 108 | assertEquals("Micro-services", genres.get(0).getName()); 109 | 110 | request = HttpRequest.GET("/genres/list?max=1&offset=10"); 111 | genres = client.toBlocking().retrieve(request, Argument.of(List.class, Genre.class)); 112 | 113 | assertEquals(0, genres.size()); 114 | 115 | // cleanup: 116 | for (Long genreId : genreIds) { 117 | request = HttpRequest.DELETE("/genres/" + genreId); 118 | response = client.toBlocking().exchange(request); 119 | assertEquals(HttpStatus.NO_CONTENT, response.getStatus()); 120 | } 121 | } 122 | 123 | protected Long entityId(HttpResponse response) { 124 | String path = "/genres/"; 125 | String value = response.header(HttpHeaders.LOCATION); 126 | if (value == null) { 127 | return null; 128 | } 129 | int index = value.indexOf(path); 130 | if (index != -1) { 131 | return Long.valueOf(value.substring(index + path.length())); 132 | } 133 | return null; 134 | } 135 | } 136 | -------------------------------------------------------------------------------- /dependencies.txt: -------------------------------------------------------------------------------- 1 | 2 | > Task :complete:dependencies 3 | 4 | ------------------------------------------------------------ 5 | Project :complete 6 | ------------------------------------------------------------ 7 | 8 | annotationProcessor - Annotation processors and their dependencies for source set 'main'. 9 | +--- io.micronaut:micronaut-bom:2.0.0.BUILD-SNAPSHOT 10 | | +--- io.micronaut.views:micronaut-views-bom:2.0.0.BUILD-SNAPSHOT 11 | | +--- io.micronaut.groovy:micronaut-groovy-bom:2.0.0.BUILD-SNAPSHOT 12 | | | \--- org.codehaus.groovy:groovy-bom:3.0.3 13 | | +--- io.micronaut.test:micronaut-test-bom:1.2.0.RC6 14 | | | +--- org.junit:junit-bom:5.6.2 15 | | | \--- org.spockframework:spock-bom:1.3-groovy-2.5 16 | | +--- io.micronaut.data:micronaut-data-bom:1.1.0.BUILD-SNAPSHOT 17 | | +--- io.netty:netty-bom:4.1.48.Final 18 | | +--- io.ktor:ktor-bom:1.3.2 19 | | +--- org.codehaus.groovy:groovy-bom:3.0.3 20 | | +--- io.micrometer:micrometer-bom:1.5.1 21 | | +--- org.junit:junit-bom:5.6.2 22 | | +--- com.fasterxml.jackson:jackson-bom:2.11.0 23 | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 (c) 24 | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 (c) 25 | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 (c) 26 | | +--- io.grpc:grpc-bom:1.30.0 27 | | +--- com.google.protobuf:protobuf-bom:3.12.2 28 | | +--- io.micronaut:micronaut-graal:2.0.0.BUILD-SNAPSHOT (c) 29 | | +--- io.micronaut:micronaut-inject-java:2.0.0.BUILD-SNAPSHOT (c) 30 | | +--- io.micronaut:micronaut-validation:2.0.0.BUILD-SNAPSHOT (c) 31 | | +--- org.slf4j:slf4j-api:1.7.26 (c) 32 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (c) 33 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (c) 34 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (c) 35 | | +--- javax.validation:validation-api:2.0.1.Final (c) 36 | | +--- javax.annotation:javax.annotation-api:1.3.2 (c) 37 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (c) 38 | | +--- org.yaml:snakeyaml:1.26 (c) 39 | | +--- org.reactivestreams:reactive-streams:1.0.3 (c) 40 | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (c) 41 | | \--- com.google.code.findbugs:jsr305:3.0.2 (c) 42 | +--- io.micronaut:micronaut-inject-java -> 2.0.0.BUILD-SNAPSHOT 43 | | +--- org.slf4j:slf4j-api:1.7.26 44 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT 45 | | | +--- org.slf4j:slf4j-api:1.7.26 46 | | | +--- javax.annotation:javax.annotation-api:1.3.2 47 | | | +--- javax.inject:javax.inject:1 48 | | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT 49 | | | | +--- org.slf4j:slf4j-api:1.7.26 50 | | | | +--- org.reactivestreams:reactive-streams:1.0.3 51 | | | | \--- com.github.spotbugs:spotbugs-annotations:4.0.3 52 | | | | \--- com.google.code.findbugs:jsr305:3.0.2 53 | | | \--- org.yaml:snakeyaml:1.26 54 | | \--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT 55 | | +--- org.slf4j:slf4j-api:1.7.26 56 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 57 | | \--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 58 | +--- io.micronaut:micronaut-validation -> 2.0.0.BUILD-SNAPSHOT 59 | | +--- org.slf4j:slf4j-api:1.7.26 60 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 61 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT 62 | | | +--- org.slf4j:slf4j-api:1.7.26 63 | | | \--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 64 | | \--- javax.validation:validation-api:2.0.1.Final 65 | \--- io.micronaut:micronaut-graal -> 2.0.0.BUILD-SNAPSHOT 66 | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 67 | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 68 | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 69 | +--- org.slf4j:slf4j-api:1.7.26 70 | \--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 71 | 72 | apiElements - API elements for main. (n) 73 | No dependencies 74 | 75 | archives - Configuration for archive artifacts. (n) 76 | No dependencies 77 | 78 | compileClasspath - Compile classpath for source set 'main'. 79 | +--- io.micronaut:micronaut-bom:2.0.0.BUILD-SNAPSHOT 80 | | +--- io.micronaut.views:micronaut-views-bom:2.0.0.BUILD-SNAPSHOT 81 | | +--- io.micronaut.groovy:micronaut-groovy-bom:2.0.0.BUILD-SNAPSHOT 82 | | | \--- org.codehaus.groovy:groovy-bom:3.0.3 83 | | +--- io.micronaut.test:micronaut-test-bom:1.2.0.RC6 84 | | | +--- org.junit:junit-bom:5.6.2 85 | | | \--- org.spockframework:spock-bom:1.3-groovy-2.5 86 | | +--- io.micronaut.data:micronaut-data-bom:1.1.0.BUILD-SNAPSHOT 87 | | | +--- io.micronaut.data:micronaut-data-tx-hibernate:1.1.0.BUILD-SNAPSHOT (c) 88 | | | \--- io.micronaut.data:micronaut-data-tx:1.1.0.BUILD-SNAPSHOT (c) 89 | | +--- io.netty:netty-bom:4.1.48.Final 90 | | | +--- io.netty:netty-handler-proxy:4.1.48.Final (c) 91 | | | +--- io.netty:netty-codec-http:4.1.48.Final (c) 92 | | | +--- io.netty:netty-common:4.1.48.Final (c) 93 | | | +--- io.netty:netty-buffer:4.1.48.Final (c) 94 | | | +--- io.netty:netty-transport:4.1.48.Final (c) 95 | | | +--- io.netty:netty-codec:4.1.48.Final (c) 96 | | | +--- io.netty:netty-codec-socks:4.1.48.Final (c) 97 | | | +--- io.netty:netty-handler:4.1.48.Final (c) 98 | | | +--- io.netty:netty-codec-http2:4.1.48.Final (c) 99 | | | \--- io.netty:netty-resolver:4.1.48.Final (c) 100 | | +--- io.ktor:ktor-bom:1.3.2 101 | | +--- org.codehaus.groovy:groovy-bom:3.0.3 102 | | +--- io.micrometer:micrometer-bom:1.5.1 103 | | +--- org.junit:junit-bom:5.6.2 104 | | +--- com.fasterxml.jackson:jackson-bom:2.11.0 105 | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 (c) 106 | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 (c) 107 | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 (c) 108 | | +--- io.grpc:grpc-bom:1.30.0 109 | | +--- com.google.protobuf:protobuf-bom:3.12.2 110 | | +--- io.micronaut:micronaut-http-client:2.0.0.BUILD-SNAPSHOT (c) 111 | | +--- io.micronaut:micronaut-http-server-netty:2.0.0.BUILD-SNAPSHOT (c) 112 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (c) 113 | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (c) 114 | | +--- io.micronaut:micronaut-validation:2.0.0.BUILD-SNAPSHOT (c) 115 | | +--- io.micronaut.spring:micronaut-spring:2.1.0.RC3 (c) 116 | | +--- io.micronaut.sql:micronaut-hibernate-jpa:2.3.2 (c) 117 | | +--- io.micronaut.sql:micronaut-jdbc-hikari:2.3.2 (c) 118 | | +--- io.micronaut.sql:micronaut-hibernate-jpa-spring:2.3.2 (c) 119 | | +--- org.graalvm.nativeimage:svm:20.1.0 (c) 120 | | +--- org.slf4j:slf4j-api:1.7.26 (c) 121 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (c) 122 | | +--- io.micronaut:micronaut-http-client-core:2.0.0.BUILD-SNAPSHOT (c) 123 | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (c) 124 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT (c) 125 | | +--- io.micronaut:micronaut-http-server:2.0.0.BUILD-SNAPSHOT (c) 126 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (c) 127 | | +--- javax.annotation:javax.annotation-api:1.3.2 (c) 128 | | +--- org.yaml:snakeyaml:1.26 (c) 129 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (c) 130 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (c) 131 | | +--- javax.validation:validation-api:2.0.1.Final (c) 132 | | +--- org.springframework:spring-core:5.2.7.RELEASE (c) 133 | | +--- org.springframework:spring-tx:5.2.7.RELEASE (c) 134 | | +--- org.springframework:spring-context:5.2.7.RELEASE (c) 135 | | +--- org.hibernate:hibernate-core:5.4.17.Final (c) 136 | | +--- io.micronaut.sql:micronaut-jdbc:2.3.2 (c) 137 | | +--- com.zaxxer:HikariCP:3.4.5 (c) 138 | | +--- org.springframework:spring-orm:5.2.7.RELEASE (c) 139 | | +--- org.reactivestreams:reactive-streams:1.0.3 (c) 140 | | +--- io.micronaut:micronaut-buffer-netty:2.0.0.BUILD-SNAPSHOT (c) 141 | | +--- io.micronaut:micronaut-router:2.0.0.BUILD-SNAPSHOT (c) 142 | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (c) 143 | | +--- org.springframework:spring-jdbc:5.2.7.RELEASE (c) 144 | | \--- com.google.code.findbugs:jsr305:3.0.2 (c) 145 | +--- org.graalvm.nativeimage:svm -> 20.1.0 146 | | +--- org.graalvm.nativeimage:svm-hosted-native-linux-amd64:20.1.0 147 | | +--- org.graalvm.nativeimage:svm-hosted-native-darwin-amd64:20.1.0 148 | | +--- org.graalvm.nativeimage:svm-hosted-native-windows-amd64:20.1.0 149 | | +--- org.graalvm.sdk:graal-sdk:20.1.0 150 | | +--- org.graalvm.nativeimage:objectfile:20.1.0 151 | | | \--- org.graalvm.compiler:compiler:20.1.0 152 | | | +--- org.graalvm.sdk:graal-sdk:20.1.0 153 | | | \--- org.graalvm.truffle:truffle-api:20.1.0 154 | | | \--- org.graalvm.sdk:graal-sdk:20.1.0 155 | | +--- org.graalvm.nativeimage:pointsto:20.1.0 156 | | | \--- org.graalvm.compiler:compiler:20.1.0 (*) 157 | | +--- org.graalvm.truffle:truffle-nfi:20.1.0 158 | | | +--- org.graalvm.truffle:truffle-api:20.1.0 (*) 159 | | | +--- org.graalvm.truffle:truffle-nfi-native-linux-amd64:20.1.0 160 | | | +--- org.graalvm.truffle:truffle-nfi-native-linux-aarch64:20.1.0 161 | | | \--- org.graalvm.truffle:truffle-nfi-native-darwin-amd64:20.1.0 162 | | \--- org.graalvm.compiler:compiler:20.1.0 (*) 163 | +--- io.micronaut:micronaut-inject -> 2.0.0.BUILD-SNAPSHOT 164 | | +--- org.slf4j:slf4j-api:1.7.26 165 | | +--- javax.annotation:javax.annotation-api:1.3.2 166 | | +--- javax.inject:javax.inject:1 167 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT 168 | | | +--- org.slf4j:slf4j-api:1.7.26 169 | | | +--- org.reactivestreams:reactive-streams:1.0.3 170 | | | \--- com.github.spotbugs:spotbugs-annotations:4.0.3 171 | | | \--- com.google.code.findbugs:jsr305:3.0.2 172 | | \--- org.yaml:snakeyaml:1.26 173 | +--- io.micronaut:micronaut-validation -> 2.0.0.BUILD-SNAPSHOT 174 | | +--- org.slf4j:slf4j-api:1.7.26 175 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 176 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT 177 | | | +--- org.slf4j:slf4j-api:1.7.26 178 | | | \--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 179 | | \--- javax.validation:validation-api:2.0.1.Final 180 | +--- io.micronaut:micronaut-runtime -> 2.0.0.BUILD-SNAPSHOT 181 | | +--- org.slf4j:slf4j-api:1.7.26 182 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 183 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 184 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT 185 | | | +--- org.slf4j:slf4j-api:1.7.26 186 | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 187 | | | \--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 188 | | +--- javax.validation:validation-api:2.0.1.Final 189 | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 190 | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 191 | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 192 | | \--- io.reactivex.rxjava2:rxjava:2.2.10 193 | | \--- org.reactivestreams:reactive-streams:1.0.2 -> 1.0.3 194 | +--- io.micronaut:micronaut-http-server-netty -> 2.0.0.BUILD-SNAPSHOT 195 | | +--- org.slf4j:slf4j-api:1.7.26 196 | | +--- io.micronaut:micronaut-http-server:2.0.0.BUILD-SNAPSHOT 197 | | | +--- org.slf4j:slf4j-api:1.7.26 198 | | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT 199 | | | | +--- org.slf4j:slf4j-api:1.7.26 200 | | | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 201 | | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 202 | | | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (*) 203 | | | | \--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 204 | | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 205 | | | \--- io.micronaut:micronaut-router:2.0.0.BUILD-SNAPSHOT 206 | | | +--- org.slf4j:slf4j-api:1.7.26 207 | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 208 | | | \--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 209 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 210 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT 211 | | | +--- org.slf4j:slf4j-api:1.7.26 212 | | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 213 | | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 214 | | | +--- io.micronaut:micronaut-buffer-netty:2.0.0.BUILD-SNAPSHOT 215 | | | | +--- org.slf4j:slf4j-api:1.7.26 216 | | | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 217 | | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 218 | | | | \--- io.netty:netty-buffer:4.1.48.Final 219 | | | | \--- io.netty:netty-common:4.1.48.Final 220 | | | +--- io.netty:netty-codec-http:4.1.48.Final 221 | | | | +--- io.netty:netty-common:4.1.48.Final 222 | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 223 | | | | +--- io.netty:netty-transport:4.1.48.Final 224 | | | | | +--- io.netty:netty-common:4.1.48.Final 225 | | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 226 | | | | | \--- io.netty:netty-resolver:4.1.48.Final 227 | | | | | \--- io.netty:netty-common:4.1.48.Final 228 | | | | +--- io.netty:netty-codec:4.1.48.Final 229 | | | | | +--- io.netty:netty-common:4.1.48.Final 230 | | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 231 | | | | | \--- io.netty:netty-transport:4.1.48.Final (*) 232 | | | | \--- io.netty:netty-handler:4.1.48.Final 233 | | | | +--- io.netty:netty-common:4.1.48.Final 234 | | | | +--- io.netty:netty-resolver:4.1.48.Final (*) 235 | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 236 | | | | +--- io.netty:netty-transport:4.1.48.Final (*) 237 | | | | \--- io.netty:netty-codec:4.1.48.Final (*) 238 | | | +--- io.netty:netty-handler:4.1.48.Final (*) 239 | | | \--- io.netty:netty-codec-http2:4.1.48.Final 240 | | | +--- io.netty:netty-common:4.1.48.Final 241 | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 242 | | | +--- io.netty:netty-transport:4.1.48.Final (*) 243 | | | +--- io.netty:netty-codec:4.1.48.Final (*) 244 | | | +--- io.netty:netty-handler:4.1.48.Final (*) 245 | | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 246 | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 247 | +--- io.micronaut:micronaut-http-client -> 2.0.0.BUILD-SNAPSHOT 248 | | +--- org.slf4j:slf4j-api:1.7.26 249 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 250 | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 251 | | +--- io.micronaut:micronaut-http-client-core:2.0.0.BUILD-SNAPSHOT 252 | | | +--- org.slf4j:slf4j-api:1.7.26 253 | | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 254 | | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 255 | | | \--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 256 | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 257 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT (*) 258 | | \--- io.netty:netty-handler-proxy:4.1.48.Final 259 | | +--- io.netty:netty-common:4.1.48.Final 260 | | +--- io.netty:netty-buffer:4.1.48.Final (*) 261 | | +--- io.netty:netty-transport:4.1.48.Final (*) 262 | | +--- io.netty:netty-codec:4.1.48.Final (*) 263 | | +--- io.netty:netty-codec-socks:4.1.48.Final 264 | | | +--- io.netty:netty-common:4.1.48.Final 265 | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 266 | | | +--- io.netty:netty-transport:4.1.48.Final (*) 267 | | | \--- io.netty:netty-codec:4.1.48.Final (*) 268 | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 269 | +--- io.micronaut.sql:micronaut-hibernate-jpa-spring -> 2.3.2 270 | | +--- org.hibernate:hibernate-core:5.4.17.Final 271 | | | +--- org.jboss.logging:jboss-logging:3.3.2.Final 272 | | | +--- javax.persistence:javax.persistence-api:2.2 273 | | | +--- net.bytebuddy:byte-buddy:1.10.10 274 | | | +--- antlr:antlr:2.7.7 275 | | | +--- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final 276 | | | +--- org.jboss:jandex:2.1.3.Final 277 | | | +--- com.fasterxml:classmate:1.5.1 278 | | | +--- javax.activation:javax.activation-api:1.2.0 279 | | | +--- org.dom4j:dom4j:2.1.3 280 | | | +--- org.hibernate.common:hibernate-commons-annotations:5.1.0.Final 281 | | | | \--- org.jboss.logging:jboss-logging:3.3.2.Final 282 | | | +--- javax.xml.bind:jaxb-api:2.3.1 283 | | | | \--- javax.activation:javax.activation-api:1.2.0 284 | | | \--- org.glassfish.jaxb:jaxb-runtime:2.3.1 285 | | | +--- javax.xml.bind:jaxb-api:2.3.1 (*) 286 | | | +--- org.glassfish.jaxb:txw2:2.3.1 287 | | | +--- com.sun.istack:istack-commons-runtime:3.0.7 288 | | | +--- org.jvnet.staxex:stax-ex:1.8 289 | | | +--- com.sun.xml.fastinfoset:FastInfoset:1.2.15 290 | | | \--- javax.activation:javax.activation-api:1.2.0 291 | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 292 | | +--- io.micronaut:micronaut-jdbc:1.3.5 293 | | | +--- org.slf4j:slf4j-api:1.7.26 294 | | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 295 | | +--- io.micronaut:micronaut-spring:1.3.5 296 | | | +--- org.slf4j:slf4j-api:1.7.26 297 | | | +--- org.springframework:spring-core:5.2.3.RELEASE -> 5.2.7.RELEASE 298 | | | | \--- org.springframework:spring-jcl:5.2.7.RELEASE 299 | | | +--- org.springframework:spring-tx:5.2.3.RELEASE -> 5.2.7.RELEASE 300 | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE 301 | | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 302 | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 303 | | | +--- org.springframework:spring-context:5.2.3.RELEASE -> 5.2.7.RELEASE 304 | | | | +--- org.springframework:spring-aop:5.2.7.RELEASE 305 | | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 306 | | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 307 | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 308 | | | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 309 | | | | \--- org.springframework:spring-expression:5.2.7.RELEASE 310 | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 311 | | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 312 | | | \--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 313 | | \--- org.springframework:spring-orm:5.2.7.RELEASE 314 | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 315 | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 316 | | +--- org.springframework:spring-jdbc:5.2.7.RELEASE 317 | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 318 | | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 319 | | | \--- org.springframework:spring-tx:5.2.7.RELEASE (*) 320 | | \--- org.springframework:spring-tx:5.2.7.RELEASE (*) 321 | +--- io.micronaut.sql:micronaut-jdbc-hikari -> 2.3.2 322 | | +--- io.micronaut.sql:micronaut-jdbc:2.3.2 323 | | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 324 | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 325 | | \--- com.zaxxer:HikariCP:3.4.5 326 | | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.26 327 | +--- io.micronaut.sql:micronaut-hibernate-jpa -> 2.3.2 328 | | +--- org.hibernate:hibernate-core:5.4.17.Final (*) 329 | | +--- jakarta.transaction:jakarta.transaction-api:1.3.3 330 | | +--- io.micronaut.data:micronaut-data-tx-hibernate:1.0.2 -> 1.1.0.BUILD-SNAPSHOT 331 | | | +--- io.micronaut.data:micronaut-data-tx:1.1.0.BUILD-SNAPSHOT 332 | | | | \--- jakarta.transaction:jakarta.transaction-api:1.3.3 333 | | | \--- org.hibernate:hibernate-core:5.4.17.Final (*) 334 | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 335 | | +--- io.micronaut:micronaut-jdbc:1.3.5 (*) 336 | | +--- io.micronaut:micronaut-runtime:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 337 | | \--- io.micronaut:micronaut-validation:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 338 | \--- io.micronaut.spring:micronaut-spring -> 2.1.0.RC3 339 | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 340 | +--- org.springframework:spring-tx:5.2.7.RELEASE (*) 341 | +--- org.springframework:spring-context:5.2.7.RELEASE (*) 342 | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 343 | \--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 344 | 345 | compileOnly - Compile only dependencies for source set 'main'. (n) 346 | +--- io.micronaut:micronaut-bom:2.0.0.BUILD-SNAPSHOT (n) 347 | \--- org.graalvm.nativeimage:svm (n) 348 | 349 | default - Configuration for default artifacts. (n) 350 | No dependencies 351 | 352 | developmentOnly 353 | No dependencies 354 | 355 | implementation - Implementation only dependencies for source set 'main'. (n) 356 | +--- io.micronaut:micronaut-bom:2.0.0.BUILD-SNAPSHOT (n) 357 | +--- io.micronaut:micronaut-inject (n) 358 | +--- io.micronaut:micronaut-validation (n) 359 | +--- io.micronaut:micronaut-runtime (n) 360 | +--- io.micronaut:micronaut-http-server-netty (n) 361 | +--- io.micronaut:micronaut-http-client (n) 362 | +--- io.micronaut.sql:micronaut-hibernate-jpa-spring (n) 363 | +--- io.micronaut.sql:micronaut-jdbc-hikari (n) 364 | +--- io.micronaut.sql:micronaut-hibernate-jpa (n) 365 | \--- io.micronaut.spring:micronaut-spring (n) 366 | 367 | runtimeClasspath - Runtime classpath of source set 'main'. 368 | +--- io.micronaut:micronaut-bom:2.0.0.BUILD-SNAPSHOT 369 | | +--- io.micronaut.views:micronaut-views-bom:2.0.0.BUILD-SNAPSHOT 370 | | +--- io.micronaut.groovy:micronaut-groovy-bom:2.0.0.BUILD-SNAPSHOT 371 | | | \--- org.codehaus.groovy:groovy-bom:3.0.3 372 | | +--- io.micronaut.test:micronaut-test-bom:1.2.0.RC6 373 | | | +--- org.junit:junit-bom:5.6.2 374 | | | \--- org.spockframework:spock-bom:1.3-groovy-2.5 375 | | +--- io.micronaut.data:micronaut-data-bom:1.1.0.BUILD-SNAPSHOT 376 | | | +--- io.micronaut.data:micronaut-data-tx-hibernate:1.1.0.BUILD-SNAPSHOT (c) 377 | | | \--- io.micronaut.data:micronaut-data-tx:1.1.0.BUILD-SNAPSHOT (c) 378 | | +--- io.netty:netty-bom:4.1.48.Final 379 | | | +--- io.netty:netty-handler-proxy:4.1.48.Final (c) 380 | | | +--- io.netty:netty-codec-http:4.1.48.Final (c) 381 | | | +--- io.netty:netty-common:4.1.48.Final (c) 382 | | | +--- io.netty:netty-buffer:4.1.48.Final (c) 383 | | | +--- io.netty:netty-transport:4.1.48.Final (c) 384 | | | +--- io.netty:netty-codec:4.1.48.Final (c) 385 | | | +--- io.netty:netty-codec-socks:4.1.48.Final (c) 386 | | | +--- io.netty:netty-handler:4.1.48.Final (c) 387 | | | +--- io.netty:netty-codec-http2:4.1.48.Final (c) 388 | | | \--- io.netty:netty-resolver:4.1.48.Final (c) 389 | | +--- io.ktor:ktor-bom:1.3.2 390 | | +--- org.codehaus.groovy:groovy-bom:3.0.3 391 | | +--- io.micrometer:micrometer-bom:1.5.1 392 | | +--- org.junit:junit-bom:5.6.2 393 | | +--- com.fasterxml.jackson:jackson-bom:2.11.0 394 | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 (c) 395 | | | +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.0 (c) 396 | | | +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.0 (c) 397 | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 (c) 398 | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 (c) 399 | | +--- io.grpc:grpc-bom:1.30.0 400 | | +--- com.google.protobuf:protobuf-bom:3.12.2 401 | | +--- io.micronaut:micronaut-http-client:2.0.0.BUILD-SNAPSHOT (c) 402 | | +--- io.micronaut:micronaut-http-server-netty:2.0.0.BUILD-SNAPSHOT (c) 403 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (c) 404 | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (c) 405 | | +--- io.micronaut:micronaut-validation:2.0.0.BUILD-SNAPSHOT (c) 406 | | +--- io.micronaut.spring:micronaut-spring:2.1.0.RC3 (c) 407 | | +--- io.micronaut.sql:micronaut-hibernate-jpa:2.3.2 (c) 408 | | +--- io.micronaut.sql:micronaut-jdbc-hikari:2.3.2 (c) 409 | | +--- io.micronaut.sql:micronaut-hibernate-jpa-spring:2.3.2 (c) 410 | | +--- ch.qos.logback:logback-classic:1.2.3 (c) 411 | | +--- com.h2database:h2:1.4.199 (c) 412 | | +--- org.slf4j:slf4j-api:1.7.26 (c) 413 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (c) 414 | | +--- io.micronaut:micronaut-http-client-core:2.0.0.BUILD-SNAPSHOT (c) 415 | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (c) 416 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT (c) 417 | | +--- io.micronaut:micronaut-http-server:2.0.0.BUILD-SNAPSHOT (c) 418 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (c) 419 | | +--- javax.annotation:javax.annotation-api:1.3.2 (c) 420 | | +--- org.yaml:snakeyaml:1.26 (c) 421 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (c) 422 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (c) 423 | | +--- javax.validation:validation-api:2.0.1.Final (c) 424 | | +--- org.springframework:spring-core:5.2.7.RELEASE (c) 425 | | +--- org.springframework:spring-tx:5.2.7.RELEASE (c) 426 | | +--- org.springframework:spring-context:5.2.7.RELEASE (c) 427 | | +--- org.hibernate:hibernate-core:5.4.17.Final (c) 428 | | +--- io.micronaut.sql:micronaut-jdbc:2.3.2 (c) 429 | | +--- com.zaxxer:HikariCP:3.4.5 (c) 430 | | +--- org.springframework:spring-orm:5.2.7.RELEASE (c) 431 | | +--- org.reactivestreams:reactive-streams:1.0.3 (c) 432 | | +--- io.micronaut:micronaut-buffer-netty:2.0.0.BUILD-SNAPSHOT (c) 433 | | +--- io.micronaut:micronaut-router:2.0.0.BUILD-SNAPSHOT (c) 434 | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (c) 435 | | +--- org.springframework:spring-jdbc:5.2.7.RELEASE (c) 436 | | \--- com.google.code.findbugs:jsr305:3.0.2 (c) 437 | +--- io.micronaut:micronaut-inject -> 2.0.0.BUILD-SNAPSHOT 438 | | +--- org.slf4j:slf4j-api:1.7.26 439 | | +--- javax.annotation:javax.annotation-api:1.3.2 440 | | +--- javax.inject:javax.inject:1 441 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT 442 | | | +--- org.slf4j:slf4j-api:1.7.26 443 | | | +--- org.reactivestreams:reactive-streams:1.0.3 444 | | | \--- com.github.spotbugs:spotbugs-annotations:4.0.3 445 | | | \--- com.google.code.findbugs:jsr305:3.0.2 446 | | \--- org.yaml:snakeyaml:1.26 447 | +--- io.micronaut:micronaut-validation -> 2.0.0.BUILD-SNAPSHOT 448 | | +--- org.slf4j:slf4j-api:1.7.26 449 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 450 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT 451 | | | +--- org.slf4j:slf4j-api:1.7.26 452 | | | \--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 453 | | \--- javax.validation:validation-api:2.0.1.Final 454 | +--- io.micronaut:micronaut-runtime -> 2.0.0.BUILD-SNAPSHOT 455 | | +--- org.slf4j:slf4j-api:1.7.26 456 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 457 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 458 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT 459 | | | +--- org.slf4j:slf4j-api:1.7.26 460 | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 461 | | | \--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 462 | | +--- javax.validation:validation-api:2.0.1.Final 463 | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 464 | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 465 | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 466 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 467 | | | \--- org.reactivestreams:reactive-streams:1.0.2 -> 1.0.3 468 | | +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.0 469 | | | +--- com.fasterxml.jackson.core:jackson-core:2.11.0 470 | | | \--- com.fasterxml.jackson.core:jackson-databind:2.11.0 (*) 471 | | \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.0 472 | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 473 | | +--- com.fasterxml.jackson.core:jackson-core:2.11.0 474 | | \--- com.fasterxml.jackson.core:jackson-databind:2.11.0 (*) 475 | +--- io.micronaut:micronaut-http-server-netty -> 2.0.0.BUILD-SNAPSHOT 476 | | +--- org.slf4j:slf4j-api:1.7.26 477 | | +--- io.micronaut:micronaut-http-server:2.0.0.BUILD-SNAPSHOT 478 | | | +--- org.slf4j:slf4j-api:1.7.26 479 | | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT 480 | | | | +--- org.slf4j:slf4j-api:1.7.26 481 | | | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 482 | | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 483 | | | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (*) 484 | | | | \--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 485 | | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 486 | | | \--- io.micronaut:micronaut-router:2.0.0.BUILD-SNAPSHOT 487 | | | +--- org.slf4j:slf4j-api:1.7.26 488 | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 489 | | | \--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 490 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 491 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT 492 | | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 493 | | | +--- org.slf4j:slf4j-api:1.7.26 494 | | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 495 | | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 496 | | | +--- io.micronaut:micronaut-buffer-netty:2.0.0.BUILD-SNAPSHOT 497 | | | | +--- org.slf4j:slf4j-api:1.7.26 498 | | | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 499 | | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 500 | | | | \--- io.netty:netty-buffer:4.1.48.Final 501 | | | | \--- io.netty:netty-common:4.1.48.Final 502 | | | +--- io.netty:netty-codec-http:4.1.48.Final 503 | | | | +--- io.netty:netty-common:4.1.48.Final 504 | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 505 | | | | +--- io.netty:netty-transport:4.1.48.Final 506 | | | | | +--- io.netty:netty-common:4.1.48.Final 507 | | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 508 | | | | | \--- io.netty:netty-resolver:4.1.48.Final 509 | | | | | \--- io.netty:netty-common:4.1.48.Final 510 | | | | +--- io.netty:netty-codec:4.1.48.Final 511 | | | | | +--- io.netty:netty-common:4.1.48.Final 512 | | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 513 | | | | | \--- io.netty:netty-transport:4.1.48.Final (*) 514 | | | | \--- io.netty:netty-handler:4.1.48.Final 515 | | | | +--- io.netty:netty-common:4.1.48.Final 516 | | | | +--- io.netty:netty-resolver:4.1.48.Final (*) 517 | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 518 | | | | +--- io.netty:netty-transport:4.1.48.Final (*) 519 | | | | \--- io.netty:netty-codec:4.1.48.Final (*) 520 | | | +--- io.netty:netty-handler:4.1.48.Final (*) 521 | | | \--- io.netty:netty-codec-http2:4.1.48.Final 522 | | | +--- io.netty:netty-common:4.1.48.Final 523 | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 524 | | | +--- io.netty:netty-transport:4.1.48.Final (*) 525 | | | +--- io.netty:netty-codec:4.1.48.Final (*) 526 | | | +--- io.netty:netty-handler:4.1.48.Final (*) 527 | | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 528 | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 529 | +--- io.micronaut:micronaut-http-client -> 2.0.0.BUILD-SNAPSHOT 530 | | +--- org.slf4j:slf4j-api:1.7.26 531 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 532 | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 533 | | +--- io.micronaut:micronaut-http-client-core:2.0.0.BUILD-SNAPSHOT 534 | | | +--- org.slf4j:slf4j-api:1.7.26 535 | | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 536 | | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 537 | | | \--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 538 | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 539 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT (*) 540 | | \--- io.netty:netty-handler-proxy:4.1.48.Final 541 | | +--- io.netty:netty-common:4.1.48.Final 542 | | +--- io.netty:netty-buffer:4.1.48.Final (*) 543 | | +--- io.netty:netty-transport:4.1.48.Final (*) 544 | | +--- io.netty:netty-codec:4.1.48.Final (*) 545 | | +--- io.netty:netty-codec-socks:4.1.48.Final 546 | | | +--- io.netty:netty-common:4.1.48.Final 547 | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 548 | | | +--- io.netty:netty-transport:4.1.48.Final (*) 549 | | | \--- io.netty:netty-codec:4.1.48.Final (*) 550 | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 551 | +--- io.micronaut.sql:micronaut-hibernate-jpa-spring -> 2.3.2 552 | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 553 | | +--- org.hibernate:hibernate-core:5.4.17.Final 554 | | | +--- org.jboss.logging:jboss-logging:3.3.2.Final 555 | | | +--- javax.persistence:javax.persistence-api:2.2 556 | | | +--- net.bytebuddy:byte-buddy:1.10.10 557 | | | +--- antlr:antlr:2.7.7 558 | | | +--- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final 559 | | | +--- org.jboss:jandex:2.1.3.Final 560 | | | +--- com.fasterxml:classmate:1.5.1 561 | | | +--- javax.activation:javax.activation-api:1.2.0 562 | | | +--- org.dom4j:dom4j:2.1.3 563 | | | +--- org.hibernate.common:hibernate-commons-annotations:5.1.0.Final 564 | | | | \--- org.jboss.logging:jboss-logging:3.3.2.Final 565 | | | +--- javax.xml.bind:jaxb-api:2.3.1 566 | | | | \--- javax.activation:javax.activation-api:1.2.0 567 | | | \--- org.glassfish.jaxb:jaxb-runtime:2.3.1 568 | | | +--- javax.xml.bind:jaxb-api:2.3.1 (*) 569 | | | +--- org.glassfish.jaxb:txw2:2.3.1 570 | | | +--- com.sun.istack:istack-commons-runtime:3.0.7 571 | | | +--- org.jvnet.staxex:stax-ex:1.8 572 | | | +--- com.sun.xml.fastinfoset:FastInfoset:1.2.15 573 | | | \--- javax.activation:javax.activation-api:1.2.0 574 | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 575 | | +--- io.micronaut:micronaut-jdbc:1.3.5 576 | | | +--- org.slf4j:slf4j-api:1.7.26 577 | | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 578 | | +--- io.micronaut:micronaut-spring:1.3.5 579 | | | +--- org.slf4j:slf4j-api:1.7.26 580 | | | +--- org.springframework:spring-core:5.2.3.RELEASE -> 5.2.7.RELEASE 581 | | | | \--- org.springframework:spring-jcl:5.2.7.RELEASE 582 | | | +--- org.springframework:spring-tx:5.2.3.RELEASE -> 5.2.7.RELEASE 583 | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE 584 | | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 585 | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 586 | | | +--- org.springframework:spring-context:5.2.3.RELEASE -> 5.2.7.RELEASE 587 | | | | +--- org.springframework:spring-aop:5.2.7.RELEASE 588 | | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 589 | | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 590 | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 591 | | | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 592 | | | | \--- org.springframework:spring-expression:5.2.7.RELEASE 593 | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 594 | | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 595 | | | \--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 596 | | \--- org.springframework:spring-orm:5.2.7.RELEASE 597 | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 598 | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 599 | | +--- org.springframework:spring-jdbc:5.2.7.RELEASE 600 | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 601 | | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 602 | | | \--- org.springframework:spring-tx:5.2.7.RELEASE (*) 603 | | \--- org.springframework:spring-tx:5.2.7.RELEASE (*) 604 | +--- io.micronaut.sql:micronaut-jdbc-hikari -> 2.3.2 605 | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 606 | | +--- io.micronaut.sql:micronaut-jdbc:2.3.2 607 | | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 608 | | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 609 | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 610 | | \--- com.zaxxer:HikariCP:3.4.5 611 | | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.26 612 | +--- io.micronaut.sql:micronaut-hibernate-jpa -> 2.3.2 613 | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 614 | | +--- org.hibernate:hibernate-core:5.4.17.Final (*) 615 | | +--- jakarta.transaction:jakarta.transaction-api:1.3.3 616 | | +--- io.micronaut.data:micronaut-data-tx-hibernate:1.0.2 -> 1.1.0.BUILD-SNAPSHOT 617 | | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (*) 618 | | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 619 | | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 620 | | | +--- io.micronaut.data:micronaut-data-tx:1.1.0.BUILD-SNAPSHOT 621 | | | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (*) 622 | | | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 623 | | | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 624 | | | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 625 | | | | \--- jakarta.transaction:jakarta.transaction-api:1.3.3 626 | | | \--- org.hibernate:hibernate-core:5.4.17.Final (*) 627 | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 628 | | +--- io.micronaut:micronaut-jdbc:1.3.5 (*) 629 | | +--- io.micronaut:micronaut-runtime:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 630 | | +--- io.micronaut:micronaut-validation:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 631 | | \--- javax.xml.bind:jaxb-api:2.3.1 (*) 632 | +--- io.micronaut.spring:micronaut-spring -> 2.1.0.RC3 633 | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 634 | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 635 | | +--- org.springframework:spring-tx:5.2.7.RELEASE (*) 636 | | +--- org.springframework:spring-context:5.2.7.RELEASE (*) 637 | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 638 | | \--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 639 | +--- com.h2database:h2 -> 1.4.199 640 | \--- ch.qos.logback:logback-classic -> 1.2.3 641 | +--- ch.qos.logback:logback-core:1.2.3 642 | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.26 643 | 644 | runtimeElements - Elements of runtime for main. (n) 645 | No dependencies 646 | 647 | runtimeOnly - Runtime only dependencies for source set 'main'. (n) 648 | +--- com.h2database:h2 (n) 649 | \--- ch.qos.logback:logback-classic (n) 650 | 651 | shadow 652 | No dependencies 653 | 654 | testAnnotationProcessor - Annotation processors and their dependencies for source set 'test'. 655 | +--- io.micronaut:micronaut-bom:2.0.0.BUILD-SNAPSHOT 656 | | +--- io.micronaut.views:micronaut-views-bom:2.0.0.BUILD-SNAPSHOT 657 | | +--- io.micronaut.groovy:micronaut-groovy-bom:2.0.0.BUILD-SNAPSHOT 658 | | | \--- org.codehaus.groovy:groovy-bom:3.0.3 659 | | +--- io.micronaut.test:micronaut-test-bom:1.2.0.RC6 660 | | | +--- org.junit:junit-bom:5.6.2 661 | | | \--- org.spockframework:spock-bom:1.3-groovy-2.5 662 | | +--- io.micronaut.data:micronaut-data-bom:1.1.0.BUILD-SNAPSHOT 663 | | +--- io.netty:netty-bom:4.1.48.Final 664 | | +--- io.ktor:ktor-bom:1.3.2 665 | | +--- org.codehaus.groovy:groovy-bom:3.0.3 666 | | +--- io.micrometer:micrometer-bom:1.5.1 667 | | +--- org.junit:junit-bom:5.6.2 668 | | +--- com.fasterxml.jackson:jackson-bom:2.11.0 669 | | +--- io.grpc:grpc-bom:1.30.0 670 | | +--- com.google.protobuf:protobuf-bom:3.12.2 671 | | +--- io.micronaut:micronaut-inject-java:2.0.0.BUILD-SNAPSHOT (c) 672 | | +--- org.slf4j:slf4j-api:1.7.26 (c) 673 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (c) 674 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (c) 675 | | +--- javax.annotation:javax.annotation-api:1.3.2 (c) 676 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (c) 677 | | +--- org.yaml:snakeyaml:1.26 (c) 678 | | +--- org.reactivestreams:reactive-streams:1.0.3 (c) 679 | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (c) 680 | | \--- com.google.code.findbugs:jsr305:3.0.2 (c) 681 | \--- io.micronaut:micronaut-inject-java -> 2.0.0.BUILD-SNAPSHOT 682 | +--- org.slf4j:slf4j-api:1.7.26 683 | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT 684 | | +--- org.slf4j:slf4j-api:1.7.26 685 | | +--- javax.annotation:javax.annotation-api:1.3.2 686 | | +--- javax.inject:javax.inject:1 687 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT 688 | | | +--- org.slf4j:slf4j-api:1.7.26 689 | | | +--- org.reactivestreams:reactive-streams:1.0.3 690 | | | \--- com.github.spotbugs:spotbugs-annotations:4.0.3 691 | | | \--- com.google.code.findbugs:jsr305:3.0.2 692 | | \--- org.yaml:snakeyaml:1.26 693 | \--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT 694 | +--- org.slf4j:slf4j-api:1.7.26 695 | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 696 | \--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 697 | 698 | testCompileClasspath - Compile classpath for source set 'test'. 699 | +--- io.micronaut:micronaut-bom:2.0.0.BUILD-SNAPSHOT 700 | | +--- io.micronaut.views:micronaut-views-bom:2.0.0.BUILD-SNAPSHOT 701 | | +--- io.micronaut.groovy:micronaut-groovy-bom:2.0.0.BUILD-SNAPSHOT 702 | | | \--- org.codehaus.groovy:groovy-bom:3.0.3 703 | | +--- io.micronaut.test:micronaut-test-bom:1.2.0.RC6 704 | | | +--- org.junit:junit-bom:5.6.2 705 | | | | +--- org.junit.jupiter:junit-jupiter-api:5.6.2 (c) 706 | | | | \--- org.junit.platform:junit-platform-commons:1.6.2 (c) 707 | | | +--- org.spockframework:spock-bom:1.3-groovy-2.5 708 | | | +--- io.micronaut.test:micronaut-test-junit5:1.2.0.RC6 (c) 709 | | | \--- io.micronaut.test:micronaut-test-core:1.2.0.RC6 (c) 710 | | +--- io.micronaut.data:micronaut-data-bom:1.1.0.BUILD-SNAPSHOT 711 | | | +--- io.micronaut.data:micronaut-data-tx-hibernate:1.1.0.BUILD-SNAPSHOT (c) 712 | | | \--- io.micronaut.data:micronaut-data-tx:1.1.0.BUILD-SNAPSHOT (c) 713 | | +--- io.netty:netty-bom:4.1.48.Final 714 | | | +--- io.netty:netty-handler-proxy:4.1.48.Final (c) 715 | | | +--- io.netty:netty-codec-http:4.1.48.Final (c) 716 | | | +--- io.netty:netty-common:4.1.48.Final (c) 717 | | | +--- io.netty:netty-buffer:4.1.48.Final (c) 718 | | | +--- io.netty:netty-transport:4.1.48.Final (c) 719 | | | +--- io.netty:netty-codec:4.1.48.Final (c) 720 | | | +--- io.netty:netty-codec-socks:4.1.48.Final (c) 721 | | | +--- io.netty:netty-handler:4.1.48.Final (c) 722 | | | +--- io.netty:netty-codec-http2:4.1.48.Final (c) 723 | | | \--- io.netty:netty-resolver:4.1.48.Final (c) 724 | | +--- io.ktor:ktor-bom:1.3.2 725 | | +--- org.codehaus.groovy:groovy-bom:3.0.3 726 | | +--- io.micrometer:micrometer-bom:1.5.1 727 | | +--- org.junit:junit-bom:5.6.2 (*) 728 | | +--- com.fasterxml.jackson:jackson-bom:2.11.0 729 | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 (c) 730 | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 (c) 731 | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 (c) 732 | | +--- io.grpc:grpc-bom:1.30.0 733 | | +--- com.google.protobuf:protobuf-bom:3.12.2 734 | | +--- io.micronaut:micronaut-http-client:2.0.0.BUILD-SNAPSHOT (c) 735 | | +--- io.micronaut:micronaut-http-server-netty:2.0.0.BUILD-SNAPSHOT (c) 736 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (c) 737 | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (c) 738 | | +--- io.micronaut:micronaut-validation:2.0.0.BUILD-SNAPSHOT (c) 739 | | +--- io.micronaut.spring:micronaut-spring:2.1.0.RC3 (c) 740 | | +--- io.micronaut.sql:micronaut-hibernate-jpa:2.3.2 (c) 741 | | +--- io.micronaut.sql:micronaut-jdbc-hikari:2.3.2 (c) 742 | | +--- io.micronaut.sql:micronaut-hibernate-jpa-spring:2.3.2 (c) 743 | | +--- org.slf4j:slf4j-api:1.7.26 (c) 744 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (c) 745 | | +--- io.micronaut:micronaut-http-client-core:2.0.0.BUILD-SNAPSHOT (c) 746 | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (c) 747 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT (c) 748 | | +--- io.micronaut:micronaut-http-server:2.0.0.BUILD-SNAPSHOT (c) 749 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (c) 750 | | +--- javax.annotation:javax.annotation-api:1.3.2 (c) 751 | | +--- org.yaml:snakeyaml:1.26 (c) 752 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (c) 753 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (c) 754 | | +--- javax.validation:validation-api:2.0.1.Final (c) 755 | | +--- org.springframework:spring-core:5.2.7.RELEASE (c) 756 | | +--- org.springframework:spring-tx:5.2.7.RELEASE (c) 757 | | +--- org.springframework:spring-context:5.2.7.RELEASE (c) 758 | | +--- org.hibernate:hibernate-core:5.4.17.Final (c) 759 | | +--- io.micronaut.sql:micronaut-jdbc:2.3.2 (c) 760 | | +--- com.zaxxer:HikariCP:3.4.5 (c) 761 | | +--- org.springframework:spring-orm:5.2.7.RELEASE (c) 762 | | +--- org.reactivestreams:reactive-streams:1.0.3 (c) 763 | | +--- io.micronaut:micronaut-buffer-netty:2.0.0.BUILD-SNAPSHOT (c) 764 | | +--- io.micronaut:micronaut-router:2.0.0.BUILD-SNAPSHOT (c) 765 | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (c) 766 | | +--- org.springframework:spring-jdbc:5.2.7.RELEASE (c) 767 | | \--- com.google.code.findbugs:jsr305:3.0.2 (c) 768 | +--- io.micronaut:micronaut-inject -> 2.0.0.BUILD-SNAPSHOT 769 | | +--- org.slf4j:slf4j-api:1.7.26 770 | | +--- javax.annotation:javax.annotation-api:1.3.2 771 | | +--- javax.inject:javax.inject:1 772 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT 773 | | | +--- org.slf4j:slf4j-api:1.7.26 774 | | | +--- org.reactivestreams:reactive-streams:1.0.3 775 | | | \--- com.github.spotbugs:spotbugs-annotations:4.0.3 776 | | | \--- com.google.code.findbugs:jsr305:3.0.2 777 | | \--- org.yaml:snakeyaml:1.26 778 | +--- io.micronaut:micronaut-validation -> 2.0.0.BUILD-SNAPSHOT 779 | | +--- org.slf4j:slf4j-api:1.7.26 780 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 781 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT 782 | | | +--- org.slf4j:slf4j-api:1.7.26 783 | | | \--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 784 | | \--- javax.validation:validation-api:2.0.1.Final 785 | +--- io.micronaut:micronaut-runtime -> 2.0.0.BUILD-SNAPSHOT 786 | | +--- org.slf4j:slf4j-api:1.7.26 787 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 788 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 789 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT 790 | | | +--- org.slf4j:slf4j-api:1.7.26 791 | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 792 | | | \--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 793 | | +--- javax.validation:validation-api:2.0.1.Final 794 | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 795 | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 796 | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 797 | | \--- io.reactivex.rxjava2:rxjava:2.2.10 798 | | \--- org.reactivestreams:reactive-streams:1.0.2 -> 1.0.3 799 | +--- io.micronaut:micronaut-http-server-netty -> 2.0.0.BUILD-SNAPSHOT 800 | | +--- org.slf4j:slf4j-api:1.7.26 801 | | +--- io.micronaut:micronaut-http-server:2.0.0.BUILD-SNAPSHOT 802 | | | +--- org.slf4j:slf4j-api:1.7.26 803 | | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT 804 | | | | +--- org.slf4j:slf4j-api:1.7.26 805 | | | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 806 | | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 807 | | | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (*) 808 | | | | \--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 809 | | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 810 | | | \--- io.micronaut:micronaut-router:2.0.0.BUILD-SNAPSHOT 811 | | | +--- org.slf4j:slf4j-api:1.7.26 812 | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 813 | | | \--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 814 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 815 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT 816 | | | +--- org.slf4j:slf4j-api:1.7.26 817 | | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 818 | | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 819 | | | +--- io.micronaut:micronaut-buffer-netty:2.0.0.BUILD-SNAPSHOT 820 | | | | +--- org.slf4j:slf4j-api:1.7.26 821 | | | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 822 | | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 823 | | | | \--- io.netty:netty-buffer:4.1.48.Final 824 | | | | \--- io.netty:netty-common:4.1.48.Final 825 | | | +--- io.netty:netty-codec-http:4.1.48.Final 826 | | | | +--- io.netty:netty-common:4.1.48.Final 827 | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 828 | | | | +--- io.netty:netty-transport:4.1.48.Final 829 | | | | | +--- io.netty:netty-common:4.1.48.Final 830 | | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 831 | | | | | \--- io.netty:netty-resolver:4.1.48.Final 832 | | | | | \--- io.netty:netty-common:4.1.48.Final 833 | | | | +--- io.netty:netty-codec:4.1.48.Final 834 | | | | | +--- io.netty:netty-common:4.1.48.Final 835 | | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 836 | | | | | \--- io.netty:netty-transport:4.1.48.Final (*) 837 | | | | \--- io.netty:netty-handler:4.1.48.Final 838 | | | | +--- io.netty:netty-common:4.1.48.Final 839 | | | | +--- io.netty:netty-resolver:4.1.48.Final (*) 840 | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 841 | | | | +--- io.netty:netty-transport:4.1.48.Final (*) 842 | | | | \--- io.netty:netty-codec:4.1.48.Final (*) 843 | | | +--- io.netty:netty-handler:4.1.48.Final (*) 844 | | | \--- io.netty:netty-codec-http2:4.1.48.Final 845 | | | +--- io.netty:netty-common:4.1.48.Final 846 | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 847 | | | +--- io.netty:netty-transport:4.1.48.Final (*) 848 | | | +--- io.netty:netty-codec:4.1.48.Final (*) 849 | | | +--- io.netty:netty-handler:4.1.48.Final (*) 850 | | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 851 | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 852 | +--- io.micronaut:micronaut-http-client -> 2.0.0.BUILD-SNAPSHOT 853 | | +--- org.slf4j:slf4j-api:1.7.26 854 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 855 | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 856 | | +--- io.micronaut:micronaut-http-client-core:2.0.0.BUILD-SNAPSHOT 857 | | | +--- org.slf4j:slf4j-api:1.7.26 858 | | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 859 | | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 860 | | | \--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 861 | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 862 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT (*) 863 | | \--- io.netty:netty-handler-proxy:4.1.48.Final 864 | | +--- io.netty:netty-common:4.1.48.Final 865 | | +--- io.netty:netty-buffer:4.1.48.Final (*) 866 | | +--- io.netty:netty-transport:4.1.48.Final (*) 867 | | +--- io.netty:netty-codec:4.1.48.Final (*) 868 | | +--- io.netty:netty-codec-socks:4.1.48.Final 869 | | | +--- io.netty:netty-common:4.1.48.Final 870 | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 871 | | | +--- io.netty:netty-transport:4.1.48.Final (*) 872 | | | \--- io.netty:netty-codec:4.1.48.Final (*) 873 | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 874 | +--- io.micronaut.sql:micronaut-hibernate-jpa-spring -> 2.3.2 875 | | +--- org.hibernate:hibernate-core:5.4.17.Final 876 | | | +--- org.jboss.logging:jboss-logging:3.3.2.Final 877 | | | +--- javax.persistence:javax.persistence-api:2.2 878 | | | +--- net.bytebuddy:byte-buddy:1.10.10 879 | | | +--- antlr:antlr:2.7.7 880 | | | +--- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final 881 | | | +--- org.jboss:jandex:2.1.3.Final 882 | | | +--- com.fasterxml:classmate:1.5.1 883 | | | +--- javax.activation:javax.activation-api:1.2.0 884 | | | +--- org.dom4j:dom4j:2.1.3 885 | | | +--- org.hibernate.common:hibernate-commons-annotations:5.1.0.Final 886 | | | | \--- org.jboss.logging:jboss-logging:3.3.2.Final 887 | | | +--- javax.xml.bind:jaxb-api:2.3.1 888 | | | | \--- javax.activation:javax.activation-api:1.2.0 889 | | | \--- org.glassfish.jaxb:jaxb-runtime:2.3.1 890 | | | +--- javax.xml.bind:jaxb-api:2.3.1 (*) 891 | | | +--- org.glassfish.jaxb:txw2:2.3.1 892 | | | +--- com.sun.istack:istack-commons-runtime:3.0.7 893 | | | +--- org.jvnet.staxex:stax-ex:1.8 894 | | | +--- com.sun.xml.fastinfoset:FastInfoset:1.2.15 895 | | | \--- javax.activation:javax.activation-api:1.2.0 896 | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 897 | | +--- io.micronaut:micronaut-jdbc:1.3.5 898 | | | +--- org.slf4j:slf4j-api:1.7.26 899 | | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 900 | | +--- io.micronaut:micronaut-spring:1.3.5 901 | | | +--- org.slf4j:slf4j-api:1.7.26 902 | | | +--- org.springframework:spring-core:5.2.3.RELEASE -> 5.2.7.RELEASE 903 | | | | \--- org.springframework:spring-jcl:5.2.7.RELEASE 904 | | | +--- org.springframework:spring-tx:5.2.3.RELEASE -> 5.2.7.RELEASE 905 | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE 906 | | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 907 | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 908 | | | +--- org.springframework:spring-context:5.2.3.RELEASE -> 5.2.7.RELEASE 909 | | | | +--- org.springframework:spring-aop:5.2.7.RELEASE 910 | | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 911 | | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 912 | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 913 | | | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 914 | | | | \--- org.springframework:spring-expression:5.2.7.RELEASE 915 | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 916 | | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 917 | | | \--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 918 | | \--- org.springframework:spring-orm:5.2.7.RELEASE 919 | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 920 | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 921 | | +--- org.springframework:spring-jdbc:5.2.7.RELEASE 922 | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 923 | | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 924 | | | \--- org.springframework:spring-tx:5.2.7.RELEASE (*) 925 | | \--- org.springframework:spring-tx:5.2.7.RELEASE (*) 926 | +--- io.micronaut.sql:micronaut-jdbc-hikari -> 2.3.2 927 | | +--- io.micronaut.sql:micronaut-jdbc:2.3.2 928 | | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 929 | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 930 | | \--- com.zaxxer:HikariCP:3.4.5 931 | | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.26 932 | +--- io.micronaut.sql:micronaut-hibernate-jpa -> 2.3.2 933 | | +--- org.hibernate:hibernate-core:5.4.17.Final (*) 934 | | +--- jakarta.transaction:jakarta.transaction-api:1.3.3 935 | | +--- io.micronaut.data:micronaut-data-tx-hibernate:1.0.2 -> 1.1.0.BUILD-SNAPSHOT 936 | | | +--- io.micronaut.data:micronaut-data-tx:1.1.0.BUILD-SNAPSHOT 937 | | | | \--- jakarta.transaction:jakarta.transaction-api:1.3.3 938 | | | \--- org.hibernate:hibernate-core:5.4.17.Final (*) 939 | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 940 | | +--- io.micronaut:micronaut-jdbc:1.3.5 (*) 941 | | +--- io.micronaut:micronaut-runtime:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 942 | | \--- io.micronaut:micronaut-validation:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 943 | +--- io.micronaut.spring:micronaut-spring -> 2.1.0.RC3 944 | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 945 | | +--- org.springframework:spring-tx:5.2.7.RELEASE (*) 946 | | +--- org.springframework:spring-context:5.2.7.RELEASE (*) 947 | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 948 | | \--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 949 | +--- org.junit.jupiter:junit-jupiter-api -> 5.6.2 950 | | +--- org.junit:junit-bom:5.6.2 (*) 951 | | +--- org.apiguardian:apiguardian-api:1.1.0 952 | | +--- org.opentest4j:opentest4j:1.2.0 953 | | \--- org.junit.platform:junit-platform-commons:1.6.2 954 | | +--- org.junit:junit-bom:5.6.2 (*) 955 | | \--- org.apiguardian:apiguardian-api:1.1.0 956 | \--- io.micronaut.test:micronaut-test-junit5 -> 1.2.0.RC6 957 | +--- io.micronaut.test:micronaut-test-core:1.2.0.RC6 958 | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 959 | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 960 | \--- org.junit.jupiter:junit-jupiter-api:5.6.2 (*) 961 | 962 | testCompileOnly - Compile only dependencies for source set 'test'. (n) 963 | No dependencies 964 | 965 | testImplementation - Implementation only dependencies for source set 'test'. (n) 966 | +--- io.micronaut:micronaut-bom:2.0.0.BUILD-SNAPSHOT (n) 967 | +--- org.junit.jupiter:junit-jupiter-api (n) 968 | \--- io.micronaut.test:micronaut-test-junit5 (n) 969 | 970 | testRuntimeClasspath - Runtime classpath of source set 'test'. 971 | +--- io.micronaut:micronaut-bom:2.0.0.BUILD-SNAPSHOT 972 | | +--- io.micronaut.views:micronaut-views-bom:2.0.0.BUILD-SNAPSHOT 973 | | +--- io.micronaut.groovy:micronaut-groovy-bom:2.0.0.BUILD-SNAPSHOT 974 | | | \--- org.codehaus.groovy:groovy-bom:3.0.3 975 | | +--- io.micronaut.test:micronaut-test-bom:1.2.0.RC6 976 | | | +--- org.junit:junit-bom:5.6.2 977 | | | | +--- org.junit.jupiter:junit-jupiter-api:5.6.2 (c) 978 | | | | +--- org.junit.jupiter:junit-jupiter-engine:5.6.2 (c) 979 | | | | +--- org.junit.platform:junit-platform-commons:1.6.2 (c) 980 | | | | \--- org.junit.platform:junit-platform-engine:1.6.2 (c) 981 | | | +--- org.spockframework:spock-bom:1.3-groovy-2.5 982 | | | +--- io.micronaut.test:micronaut-test-junit5:1.2.0.RC6 (c) 983 | | | \--- io.micronaut.test:micronaut-test-core:1.2.0.RC6 (c) 984 | | +--- io.micronaut.data:micronaut-data-bom:1.1.0.BUILD-SNAPSHOT 985 | | | +--- io.micronaut.data:micronaut-data-tx-hibernate:1.1.0.BUILD-SNAPSHOT (c) 986 | | | \--- io.micronaut.data:micronaut-data-tx:1.1.0.BUILD-SNAPSHOT (c) 987 | | +--- io.netty:netty-bom:4.1.48.Final 988 | | | +--- io.netty:netty-handler-proxy:4.1.48.Final (c) 989 | | | +--- io.netty:netty-codec-http:4.1.48.Final (c) 990 | | | +--- io.netty:netty-common:4.1.48.Final (c) 991 | | | +--- io.netty:netty-buffer:4.1.48.Final (c) 992 | | | +--- io.netty:netty-transport:4.1.48.Final (c) 993 | | | +--- io.netty:netty-codec:4.1.48.Final (c) 994 | | | +--- io.netty:netty-codec-socks:4.1.48.Final (c) 995 | | | +--- io.netty:netty-handler:4.1.48.Final (c) 996 | | | +--- io.netty:netty-codec-http2:4.1.48.Final (c) 997 | | | \--- io.netty:netty-resolver:4.1.48.Final (c) 998 | | +--- io.ktor:ktor-bom:1.3.2 999 | | +--- org.codehaus.groovy:groovy-bom:3.0.3 1000 | | +--- io.micrometer:micrometer-bom:1.5.1 1001 | | +--- org.junit:junit-bom:5.6.2 (*) 1002 | | +--- com.fasterxml.jackson:jackson-bom:2.11.0 1003 | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 (c) 1004 | | | +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.0 (c) 1005 | | | +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.0 (c) 1006 | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 (c) 1007 | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 (c) 1008 | | +--- io.grpc:grpc-bom:1.30.0 1009 | | +--- com.google.protobuf:protobuf-bom:3.12.2 1010 | | +--- io.micronaut:micronaut-http-client:2.0.0.BUILD-SNAPSHOT (c) 1011 | | +--- io.micronaut:micronaut-http-server-netty:2.0.0.BUILD-SNAPSHOT (c) 1012 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (c) 1013 | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (c) 1014 | | +--- io.micronaut:micronaut-validation:2.0.0.BUILD-SNAPSHOT (c) 1015 | | +--- io.micronaut.spring:micronaut-spring:2.1.0.RC3 (c) 1016 | | +--- io.micronaut.sql:micronaut-hibernate-jpa:2.3.2 (c) 1017 | | +--- io.micronaut.sql:micronaut-jdbc-hikari:2.3.2 (c) 1018 | | +--- io.micronaut.sql:micronaut-hibernate-jpa-spring:2.3.2 (c) 1019 | | +--- ch.qos.logback:logback-classic:1.2.3 (c) 1020 | | +--- com.h2database:h2:1.4.199 (c) 1021 | | +--- org.slf4j:slf4j-api:1.7.26 (c) 1022 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (c) 1023 | | +--- io.micronaut:micronaut-http-client-core:2.0.0.BUILD-SNAPSHOT (c) 1024 | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (c) 1025 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT (c) 1026 | | +--- io.micronaut:micronaut-http-server:2.0.0.BUILD-SNAPSHOT (c) 1027 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (c) 1028 | | +--- javax.annotation:javax.annotation-api:1.3.2 (c) 1029 | | +--- org.yaml:snakeyaml:1.26 (c) 1030 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (c) 1031 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (c) 1032 | | +--- javax.validation:validation-api:2.0.1.Final (c) 1033 | | +--- org.springframework:spring-core:5.2.7.RELEASE (c) 1034 | | +--- org.springframework:spring-tx:5.2.7.RELEASE (c) 1035 | | +--- org.springframework:spring-context:5.2.7.RELEASE (c) 1036 | | +--- org.hibernate:hibernate-core:5.4.17.Final (c) 1037 | | +--- io.micronaut.sql:micronaut-jdbc:2.3.2 (c) 1038 | | +--- com.zaxxer:HikariCP:3.4.5 (c) 1039 | | +--- org.springframework:spring-orm:5.2.7.RELEASE (c) 1040 | | +--- org.reactivestreams:reactive-streams:1.0.3 (c) 1041 | | +--- io.micronaut:micronaut-buffer-netty:2.0.0.BUILD-SNAPSHOT (c) 1042 | | +--- io.micronaut:micronaut-router:2.0.0.BUILD-SNAPSHOT (c) 1043 | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (c) 1044 | | +--- org.springframework:spring-jdbc:5.2.7.RELEASE (c) 1045 | | \--- com.google.code.findbugs:jsr305:3.0.2 (c) 1046 | +--- io.micronaut:micronaut-inject -> 2.0.0.BUILD-SNAPSHOT 1047 | | +--- org.slf4j:slf4j-api:1.7.26 1048 | | +--- javax.annotation:javax.annotation-api:1.3.2 1049 | | +--- javax.inject:javax.inject:1 1050 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT 1051 | | | +--- org.slf4j:slf4j-api:1.7.26 1052 | | | +--- org.reactivestreams:reactive-streams:1.0.3 1053 | | | \--- com.github.spotbugs:spotbugs-annotations:4.0.3 1054 | | | \--- com.google.code.findbugs:jsr305:3.0.2 1055 | | \--- org.yaml:snakeyaml:1.26 1056 | +--- io.micronaut:micronaut-validation -> 2.0.0.BUILD-SNAPSHOT 1057 | | +--- org.slf4j:slf4j-api:1.7.26 1058 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 1059 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT 1060 | | | +--- org.slf4j:slf4j-api:1.7.26 1061 | | | \--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 1062 | | \--- javax.validation:validation-api:2.0.1.Final 1063 | +--- io.micronaut:micronaut-runtime -> 2.0.0.BUILD-SNAPSHOT 1064 | | +--- org.slf4j:slf4j-api:1.7.26 1065 | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 1066 | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 1067 | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT 1068 | | | +--- org.slf4j:slf4j-api:1.7.26 1069 | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 1070 | | | \--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 1071 | | +--- javax.validation:validation-api:2.0.1.Final 1072 | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.0 1073 | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 1074 | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.0 1075 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 1076 | | | \--- org.reactivestreams:reactive-streams:1.0.2 -> 1.0.3 1077 | | +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.0 1078 | | | +--- com.fasterxml.jackson.core:jackson-core:2.11.0 1079 | | | \--- com.fasterxml.jackson.core:jackson-databind:2.11.0 (*) 1080 | | \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.0 1081 | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.0 1082 | | +--- com.fasterxml.jackson.core:jackson-core:2.11.0 1083 | | \--- com.fasterxml.jackson.core:jackson-databind:2.11.0 (*) 1084 | +--- io.micronaut:micronaut-http-server-netty -> 2.0.0.BUILD-SNAPSHOT 1085 | | +--- org.slf4j:slf4j-api:1.7.26 1086 | | +--- io.micronaut:micronaut-http-server:2.0.0.BUILD-SNAPSHOT 1087 | | | +--- org.slf4j:slf4j-api:1.7.26 1088 | | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT 1089 | | | | +--- org.slf4j:slf4j-api:1.7.26 1090 | | | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 1091 | | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 1092 | | | | +--- io.micronaut:micronaut-aop:2.0.0.BUILD-SNAPSHOT (*) 1093 | | | | \--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 1094 | | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 1095 | | | \--- io.micronaut:micronaut-router:2.0.0.BUILD-SNAPSHOT 1096 | | | +--- org.slf4j:slf4j-api:1.7.26 1097 | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 1098 | | | \--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 1099 | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 1100 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT 1101 | | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 1102 | | | +--- org.slf4j:slf4j-api:1.7.26 1103 | | | +--- io.micronaut:micronaut-http:2.0.0.BUILD-SNAPSHOT (*) 1104 | | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 1105 | | | +--- io.micronaut:micronaut-buffer-netty:2.0.0.BUILD-SNAPSHOT 1106 | | | | +--- org.slf4j:slf4j-api:1.7.26 1107 | | | | +--- io.micronaut:micronaut-core:2.0.0.BUILD-SNAPSHOT (*) 1108 | | | | +--- io.micronaut:micronaut-inject:2.0.0.BUILD-SNAPSHOT (*) 1109 | | | | \--- io.netty:netty-buffer:4.1.48.Final 1110 | | | | \--- io.netty:netty-common:4.1.48.Final 1111 | | | +--- io.netty:netty-codec-http:4.1.48.Final 1112 | | | | +--- io.netty:netty-common:4.1.48.Final 1113 | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 1114 | | | | +--- io.netty:netty-transport:4.1.48.Final 1115 | | | | | +--- io.netty:netty-common:4.1.48.Final 1116 | | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 1117 | | | | | \--- io.netty:netty-resolver:4.1.48.Final 1118 | | | | | \--- io.netty:netty-common:4.1.48.Final 1119 | | | | +--- io.netty:netty-codec:4.1.48.Final 1120 | | | | | +--- io.netty:netty-common:4.1.48.Final 1121 | | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 1122 | | | | | \--- io.netty:netty-transport:4.1.48.Final (*) 1123 | | | | \--- io.netty:netty-handler:4.1.48.Final 1124 | | | | +--- io.netty:netty-common:4.1.48.Final 1125 | | | | +--- io.netty:netty-resolver:4.1.48.Final (*) 1126 | | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 1127 | | | | +--- io.netty:netty-transport:4.1.48.Final (*) 1128 | | | | \--- io.netty:netty-codec:4.1.48.Final (*) 1129 | | | +--- io.netty:netty-handler:4.1.48.Final (*) 1130 | | | \--- io.netty:netty-codec-http2:4.1.48.Final 1131 | | | +--- io.netty:netty-common:4.1.48.Final 1132 | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 1133 | | | +--- io.netty:netty-transport:4.1.48.Final (*) 1134 | | | +--- io.netty:netty-codec:4.1.48.Final (*) 1135 | | | +--- io.netty:netty-handler:4.1.48.Final (*) 1136 | | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 1137 | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 1138 | +--- io.micronaut:micronaut-http-client -> 2.0.0.BUILD-SNAPSHOT 1139 | | +--- org.slf4j:slf4j-api:1.7.26 1140 | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 1141 | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 1142 | | +--- io.micronaut:micronaut-http-client-core:2.0.0.BUILD-SNAPSHOT 1143 | | | +--- org.slf4j:slf4j-api:1.7.26 1144 | | | +--- io.reactivex.rxjava2:rxjava:2.2.10 (*) 1145 | | | +--- io.micronaut:micronaut-runtime:2.0.0.BUILD-SNAPSHOT (*) 1146 | | | \--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 1147 | | +--- io.micronaut:micronaut-websocket:2.0.0.BUILD-SNAPSHOT (*) 1148 | | +--- io.micronaut:micronaut-http-netty:2.0.0.BUILD-SNAPSHOT (*) 1149 | | \--- io.netty:netty-handler-proxy:4.1.48.Final 1150 | | +--- io.netty:netty-common:4.1.48.Final 1151 | | +--- io.netty:netty-buffer:4.1.48.Final (*) 1152 | | +--- io.netty:netty-transport:4.1.48.Final (*) 1153 | | +--- io.netty:netty-codec:4.1.48.Final (*) 1154 | | +--- io.netty:netty-codec-socks:4.1.48.Final 1155 | | | +--- io.netty:netty-common:4.1.48.Final 1156 | | | +--- io.netty:netty-buffer:4.1.48.Final (*) 1157 | | | +--- io.netty:netty-transport:4.1.48.Final (*) 1158 | | | \--- io.netty:netty-codec:4.1.48.Final (*) 1159 | | \--- io.netty:netty-codec-http:4.1.48.Final (*) 1160 | +--- io.micronaut.sql:micronaut-hibernate-jpa-spring -> 2.3.2 1161 | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1162 | | +--- org.hibernate:hibernate-core:5.4.17.Final 1163 | | | +--- org.jboss.logging:jboss-logging:3.3.2.Final 1164 | | | +--- javax.persistence:javax.persistence-api:2.2 1165 | | | +--- net.bytebuddy:byte-buddy:1.10.10 1166 | | | +--- antlr:antlr:2.7.7 1167 | | | +--- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final 1168 | | | +--- org.jboss:jandex:2.1.3.Final 1169 | | | +--- com.fasterxml:classmate:1.5.1 1170 | | | +--- javax.activation:javax.activation-api:1.2.0 1171 | | | +--- org.dom4j:dom4j:2.1.3 1172 | | | +--- org.hibernate.common:hibernate-commons-annotations:5.1.0.Final 1173 | | | | \--- org.jboss.logging:jboss-logging:3.3.2.Final 1174 | | | +--- javax.xml.bind:jaxb-api:2.3.1 1175 | | | | \--- javax.activation:javax.activation-api:1.2.0 1176 | | | \--- org.glassfish.jaxb:jaxb-runtime:2.3.1 1177 | | | +--- javax.xml.bind:jaxb-api:2.3.1 (*) 1178 | | | +--- org.glassfish.jaxb:txw2:2.3.1 1179 | | | +--- com.sun.istack:istack-commons-runtime:3.0.7 1180 | | | +--- org.jvnet.staxex:stax-ex:1.8 1181 | | | +--- com.sun.xml.fastinfoset:FastInfoset:1.2.15 1182 | | | \--- javax.activation:javax.activation-api:1.2.0 1183 | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1184 | | +--- io.micronaut:micronaut-jdbc:1.3.5 1185 | | | +--- org.slf4j:slf4j-api:1.7.26 1186 | | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1187 | | +--- io.micronaut:micronaut-spring:1.3.5 1188 | | | +--- org.slf4j:slf4j-api:1.7.26 1189 | | | +--- org.springframework:spring-core:5.2.3.RELEASE -> 5.2.7.RELEASE 1190 | | | | \--- org.springframework:spring-jcl:5.2.7.RELEASE 1191 | | | +--- org.springframework:spring-tx:5.2.3.RELEASE -> 5.2.7.RELEASE 1192 | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE 1193 | | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 1194 | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 1195 | | | +--- org.springframework:spring-context:5.2.3.RELEASE -> 5.2.7.RELEASE 1196 | | | | +--- org.springframework:spring-aop:5.2.7.RELEASE 1197 | | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 1198 | | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 1199 | | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 1200 | | | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 1201 | | | | \--- org.springframework:spring-expression:5.2.7.RELEASE 1202 | | | | \--- org.springframework:spring-core:5.2.7.RELEASE (*) 1203 | | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1204 | | | \--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1205 | | \--- org.springframework:spring-orm:5.2.7.RELEASE 1206 | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 1207 | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 1208 | | +--- org.springframework:spring-jdbc:5.2.7.RELEASE 1209 | | | +--- org.springframework:spring-beans:5.2.7.RELEASE (*) 1210 | | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 1211 | | | \--- org.springframework:spring-tx:5.2.7.RELEASE (*) 1212 | | \--- org.springframework:spring-tx:5.2.7.RELEASE (*) 1213 | +--- io.micronaut.sql:micronaut-jdbc-hikari -> 2.3.2 1214 | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1215 | | +--- io.micronaut.sql:micronaut-jdbc:2.3.2 1216 | | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1217 | | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1218 | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1219 | | \--- com.zaxxer:HikariCP:3.4.5 1220 | | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.26 1221 | +--- io.micronaut.sql:micronaut-hibernate-jpa -> 2.3.2 1222 | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1223 | | +--- org.hibernate:hibernate-core:5.4.17.Final (*) 1224 | | +--- jakarta.transaction:jakarta.transaction-api:1.3.3 1225 | | +--- io.micronaut.data:micronaut-data-tx-hibernate:1.0.2 -> 1.1.0.BUILD-SNAPSHOT 1226 | | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (*) 1227 | | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1228 | | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1229 | | | +--- io.micronaut.data:micronaut-data-tx:1.1.0.BUILD-SNAPSHOT 1230 | | | | +--- com.github.spotbugs:spotbugs-annotations:4.0.3 (*) 1231 | | | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1232 | | | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1233 | | | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1234 | | | | \--- jakarta.transaction:jakarta.transaction-api:1.3.3 1235 | | | \--- org.hibernate:hibernate-core:5.4.17.Final (*) 1236 | | +--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1237 | | +--- io.micronaut:micronaut-jdbc:1.3.5 (*) 1238 | | +--- io.micronaut:micronaut-runtime:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1239 | | +--- io.micronaut:micronaut-validation:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1240 | | \--- javax.xml.bind:jaxb-api:2.3.1 (*) 1241 | +--- io.micronaut.spring:micronaut-spring -> 2.1.0.RC3 1242 | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1243 | | +--- org.springframework:spring-core:5.2.7.RELEASE (*) 1244 | | +--- org.springframework:spring-tx:5.2.7.RELEASE (*) 1245 | | +--- org.springframework:spring-context:5.2.7.RELEASE (*) 1246 | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1247 | | \--- io.micronaut:micronaut-aop:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1248 | +--- com.h2database:h2 -> 1.4.199 1249 | +--- ch.qos.logback:logback-classic -> 1.2.3 1250 | | +--- ch.qos.logback:logback-core:1.2.3 1251 | | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.26 1252 | +--- org.junit.jupiter:junit-jupiter-api -> 5.6.2 1253 | | +--- org.junit:junit-bom:5.6.2 (*) 1254 | | +--- org.apiguardian:apiguardian-api:1.1.0 1255 | | +--- org.opentest4j:opentest4j:1.2.0 1256 | | \--- org.junit.platform:junit-platform-commons:1.6.2 1257 | | +--- org.junit:junit-bom:5.6.2 (*) 1258 | | \--- org.apiguardian:apiguardian-api:1.1.0 1259 | +--- io.micronaut.test:micronaut-test-junit5 -> 1.2.0.RC6 1260 | | +--- io.micronaut:micronaut-runtime:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1261 | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1262 | | +--- io.micronaut.test:micronaut-test-core:1.2.0.RC6 1263 | | | +--- io.micronaut:micronaut-runtime:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1264 | | | +--- io.micronaut:micronaut-bom:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1265 | | | \--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1266 | | +--- io.micronaut:micronaut-inject:1.3.5 -> 2.0.0.BUILD-SNAPSHOT (*) 1267 | | \--- org.junit.jupiter:junit-jupiter-api:5.6.2 (*) 1268 | \--- org.junit.jupiter:junit-jupiter-engine -> 5.6.2 1269 | +--- org.junit:junit-bom:5.6.2 (*) 1270 | +--- org.apiguardian:apiguardian-api:1.1.0 1271 | +--- org.junit.platform:junit-platform-engine:1.6.2 1272 | | +--- org.junit:junit-bom:5.6.2 (*) 1273 | | +--- org.apiguardian:apiguardian-api:1.1.0 1274 | | +--- org.opentest4j:opentest4j:1.2.0 1275 | | \--- org.junit.platform:junit-platform-commons:1.6.2 (*) 1276 | \--- org.junit.jupiter:junit-jupiter-api:5.6.2 (*) 1277 | 1278 | testRuntimeOnly - Runtime only dependencies for source set 'test'. (n) 1279 | \--- org.junit.jupiter:junit-jupiter-engine (n) 1280 | 1281 | (c) - dependency constraint 1282 | (*) - dependencies omitted (listed previously) 1283 | 1284 | (n) - Not resolved (configuration is not meant to be resolved) 1285 | 1286 | A web-based, searchable dependency report is available by adding the --scan option. 1287 | 1288 | Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0. 1289 | Use '--warning-mode all' to show the individual deprecation warnings. 1290 | See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings 1291 | 1292 | BUILD SUCCESSFUL in 889ms 1293 | 1 actionable task: 1 executed 1294 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micronaut-guides/micronaut-data-access-jpa-hibernate/d890a42e3f77b621f47c3db083b4d64ebd4d67e1/gradle.properties -------------------------------------------------------------------------------- /gradle/testVerbose.gradle: -------------------------------------------------------------------------------- 1 | test { 2 | afterTest { desc, result -> 3 | logger.quiet " -- Executed test ${desc.name} [${desc.className}] with result: ${result.resultType}" 4 | } 5 | testLogging { 6 | events "passed", "skipped", "failed", "standardOut" 7 | showExceptions true 8 | exceptionFormat "full" 9 | showCauses true 10 | showStackTraces true 11 | 12 | // set options for log level DEBUG and INFO 13 | debug { 14 | events "started", "passed", "skipped", "failed", "standardOut", "standardError" 15 | exceptionFormat "full" 16 | } 17 | info.events = debug.events 18 | info.exceptionFormat = debug.exceptionFormat 19 | 20 | afterSuite { desc, result -> 21 | if (!desc.parent) { // will match the outermost suite 22 | def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)" 23 | def startItem = '| ', endItem = ' |' 24 | def repeatLength = startItem.length() + output.length() + endItem.length() 25 | logger.quiet "\n${'-' * repeatLength}\n${startItem}${output}${endItem}\n${'-' * repeatLength}" 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micronaut-guides/micronaut-data-access-jpa-hibernate/d890a42e3f77b621f47c3db083b4d64ebd4d67e1/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # 4 | # Copyright 2015 the original author or authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | ## 21 | ## Gradle start up script for UN*X 22 | ## 23 | ############################################################################## 24 | 25 | # Attempt to set APP_HOME 26 | # Resolve links: $0 may be a link 27 | PRG="$0" 28 | # Need this for relative symlinks. 29 | while [ -h "$PRG" ] ; do 30 | ls=`ls -ld "$PRG"` 31 | link=`expr "$ls" : '.*-> \(.*\)$'` 32 | if expr "$link" : '/.*' > /dev/null; then 33 | PRG="$link" 34 | else 35 | PRG=`dirname "$PRG"`"/$link" 36 | fi 37 | done 38 | SAVED="`pwd`" 39 | cd "`dirname \"$PRG\"`/" >/dev/null 40 | APP_HOME="`pwd -P`" 41 | cd "$SAVED" >/dev/null 42 | 43 | APP_NAME="Gradle" 44 | APP_BASE_NAME=`basename "$0"` 45 | 46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 48 | 49 | # Use the maximum available, or set MAX_FD != -1 to use that value. 50 | MAX_FD="maximum" 51 | 52 | warn () { 53 | echo "$*" 54 | } 55 | 56 | die () { 57 | echo 58 | echo "$*" 59 | echo 60 | exit 1 61 | } 62 | 63 | # OS specific support (must be 'true' or 'false'). 64 | cygwin=false 65 | msys=false 66 | darwin=false 67 | nonstop=false 68 | case "`uname`" in 69 | CYGWIN* ) 70 | cygwin=true 71 | ;; 72 | Darwin* ) 73 | darwin=true 74 | ;; 75 | MINGW* ) 76 | msys=true 77 | ;; 78 | NONSTOP* ) 79 | nonstop=true 80 | ;; 81 | esac 82 | 83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 84 | 85 | 86 | # Determine the Java command to use to start the JVM. 87 | if [ -n "$JAVA_HOME" ] ; then 88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 89 | # IBM's JDK on AIX uses strange locations for the executables 90 | JAVACMD="$JAVA_HOME/jre/sh/java" 91 | else 92 | JAVACMD="$JAVA_HOME/bin/java" 93 | fi 94 | if [ ! -x "$JAVACMD" ] ; then 95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 96 | 97 | Please set the JAVA_HOME variable in your environment to match the 98 | location of your Java installation." 99 | fi 100 | else 101 | JAVACMD="java" 102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 103 | 104 | Please set the JAVA_HOME variable in your environment to match the 105 | location of your Java installation." 106 | fi 107 | 108 | # Increase the maximum file descriptors if we can. 109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 110 | MAX_FD_LIMIT=`ulimit -H -n` 111 | if [ $? -eq 0 ] ; then 112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 113 | MAX_FD="$MAX_FD_LIMIT" 114 | fi 115 | ulimit -n $MAX_FD 116 | if [ $? -ne 0 ] ; then 117 | warn "Could not set maximum file descriptor limit: $MAX_FD" 118 | fi 119 | else 120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 121 | fi 122 | fi 123 | 124 | # For Darwin, add options to specify how the application appears in the dock 125 | if $darwin; then 126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 127 | fi 128 | 129 | # For Cygwin or MSYS, switch paths to Windows format before running java 130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then 131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 133 | 134 | JAVACMD=`cygpath --unix "$JAVACMD"` 135 | 136 | # We build the pattern for arguments to be converted via cygpath 137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 138 | SEP="" 139 | for dir in $ROOTDIRSRAW ; do 140 | ROOTDIRS="$ROOTDIRS$SEP$dir" 141 | SEP="|" 142 | done 143 | OURCYGPATTERN="(^($ROOTDIRS))" 144 | # Add a user-defined pattern to the cygpath arguments 145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 147 | fi 148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 149 | i=0 150 | for arg in "$@" ; do 151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 153 | 154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 156 | else 157 | eval `echo args$i`="\"$arg\"" 158 | fi 159 | i=`expr $i + 1` 160 | done 161 | case $i in 162 | 0) set -- ;; 163 | 1) set -- "$args0" ;; 164 | 2) set -- "$args0" "$args1" ;; 165 | 3) set -- "$args0" "$args1" "$args2" ;; 166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;; 167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 172 | esac 173 | fi 174 | 175 | # Escape application args 176 | save () { 177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 178 | echo " " 179 | } 180 | APP_ARGS=`save "$@"` 181 | 182 | # Collect all arguments for the java command, following the shell quoting and substitution rules 183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 184 | 185 | exec "$JAVACMD" "$@" 186 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto execute 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto execute 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :execute 68 | @rem Setup the command line 69 | 70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 | 72 | 73 | @rem Execute Gradle 74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 | 76 | :end 77 | @rem End local scope for the variables with windows NT shell 78 | if "%ERRORLEVEL%"=="0" goto mainEnd 79 | 80 | :fail 81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 | rem the _cmd.exe /c_ return code! 83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 | exit /b 1 85 | 86 | :mainEnd 87 | if "%OS%"=="Windows_NT" endlocal 88 | 89 | :omega 90 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include 'complete' 2 | -------------------------------------------------------------------------------- /src/main/docs/guide/gettingStarted.adoc: -------------------------------------------------------------------------------- 1 | include::{commondir}/common-micronautonex.adoc[] 2 | 3 | In this guide, we are going to write a Micronaut application that exposes some REST endpoints and store data in a 4 | database using JPA and Hibernate. 5 | -------------------------------------------------------------------------------- /src/main/docs/guide/help.adoc: -------------------------------------------------------------------------------- 1 | include::{commondir}/common-helpWithMicronaut.adoc[] 2 | -------------------------------------------------------------------------------- /src/main/docs/guide/nextSteps.adoc: -------------------------------------------------------------------------------- 1 | Read more about https://docs.micronaut.io/latest/guide/index.html#dataAccess[Configurations for Data Access] section in the Micronaut documentation. -------------------------------------------------------------------------------- /src/main/docs/guide/requirements.adoc: -------------------------------------------------------------------------------- 1 | include::{commondir}/common-requirements.adoc[] 2 | -------------------------------------------------------------------------------- /src/main/docs/guide/runningTheApp.adoc: -------------------------------------------------------------------------------- 1 | include::{commondir}/common-runapp.adoc[] 2 | -------------------------------------------------------------------------------- /src/main/docs/guide/solution.adoc: -------------------------------------------------------------------------------- 1 | include::{commondir}/common-completesolution.adoc[] 2 | -------------------------------------------------------------------------------- /src/main/docs/guide/toc.yml: -------------------------------------------------------------------------------- 1 | gettingStarted: 2 | title: Getting Started 3 | requirements: What you will need 4 | solution: Solution 5 | writingTheApp: 6 | title: Writing the App 7 | datasource: Configure Data Source and JPA 8 | domain: Domain 9 | appConfiguration: Application Configuration 10 | repository: Repository Access 11 | controller: Controller 12 | tests: Tests 13 | runningTheApp: Running the app 14 | usingPostgresql: Using Postgresql 15 | nextSteps: 16 | title: Next Steps 17 | help: 18 | title: Help with Micronaut 19 | -------------------------------------------------------------------------------- /src/main/docs/guide/usingPostgresql.adoc: -------------------------------------------------------------------------------- 1 | When running on production you want to use a real database instead of using H2. Let's explain how to use Postgres. 2 | 3 | After installing Docker, execute the following command to run a postgresql container: 4 | 5 | [source,bash] 6 | ---- 7 | docker run -it --rm \ 8 | -p 5432:5432 \ 9 | -e POSTGRES_USER=dbuser \ 10 | -e POSTGRES_PASSWORD=theSecretPassword \ 11 | -e POSTGRES_DB=micronaut \ 12 | postgres:11.5-alpine 13 | ---- 14 | 15 | Add Postgresql driver dependency to `build.gradle`: 16 | 17 | [source,groovy] 18 | .build.gradle 19 | ---- 20 | include::{sourceDir}/build.gradle[tag=postgresql,indent=0] 21 | ---- 22 | 23 | To use postgresql, setup several environment variables which match those defined in `application.yml`: 24 | 25 | [source,bash] 26 | ---- 27 | $ export JDBC_URL=jdbc:postgresql://localhost:5432/micronaut 28 | $ export JDBC_USER=dbuser 29 | $ export JDBC_PASSWORD=theSecretPassword 30 | $ export JDBC_DRIVER=org.postgresql.Driver 31 | ---- 32 | 33 | Run the app: 34 | 35 | [source, bash] 36 | ---- 37 | $ ./gradlew run 38 | ---- 39 | 40 | If you take a close look to the output, you can see that the app uses postgresql: 41 | 42 | [source, bash] 43 | ---- 44 | .. 45 | ... 46 | 08:40:02.746 [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL10Dialect 47 | .... 48 | ---- 49 | 50 | Connect to your postgresql database and you will see both `genre` and `book` tables. 51 | 52 | image::datagrip.png[] 53 | 54 | Save one genre and your `genre` table will now contain an entry. 55 | 56 | [source, bash] 57 | ---- 58 | curl -X "POST" "http://localhost:8080/genres" \ 59 | -H 'Content-Type: application/json; charset=utf-8' \ 60 | -d $'{ 61 | "name": "music" 62 | }' 63 | ---- -------------------------------------------------------------------------------- /src/main/docs/guide/writingTheApp.adoc: -------------------------------------------------------------------------------- 1 | Create the microservice: 2 | 3 | `mn create-app example.micronaut.complete` 4 | 5 | The previous command creates a folder named `complete` and a Micronaut app inside it with default package: `example.micronaut` 6 | 7 | include::{commondir}/common-annotationprocessors.adoc[] 8 | -------------------------------------------------------------------------------- /src/main/docs/guide/writingTheApp/appConfiguration.adoc: -------------------------------------------------------------------------------- 1 | Create an interface to encapsulate the application configuration settings: 2 | 3 | [source,java] 4 | .src/main/java/example/micronaut/ApplicationConfiguration.java 5 | ---- 6 | include::{sourceDir}/src/main/java/example/micronaut/ApplicationConfiguration.java[] 7 | ---- 8 | 9 | In Micronaut, like Spring Boot and Grails, you can create type safe configuration by creating classes that are annotated with https://docs.micronaut.io/snapshot/guide/index.html#configurationProperties[@ConfigurationProperties]. 10 | 11 | Create a `ApplicationConfigurationProperties`: 12 | 13 | [source,java] 14 | .src/main/java/example/micronaut/ApplicationConfigurationProperties.java 15 | ---- 16 | include::{sourceDir}/src/main/java/example/micronaut/ApplicationConfigurationProperties.java[] 17 | ---- 18 | 19 | <1> @ConfigurationProperties` annotation takes a configuration prefix. 20 | 21 | 22 | You can override `max` if you add to your `src/main/resources/application.yml`: 23 | 24 | [source, yaml] 25 | .src/main/resources/application.yml 26 | ---- 27 | include::{sourceDir}/src/main/resources/application.yml[tag=application] 28 | ---- -------------------------------------------------------------------------------- /src/main/docs/guide/writingTheApp/controller.adoc: -------------------------------------------------------------------------------- 1 | include::{commondir}/common-validation.adoc[indent=0] 2 | 3 | Create two classes to encapsulate Save and Update operations: 4 | 5 | [source,java] 6 | .src/main/java/example/micronaut/GenreSaveCommand.java 7 | ---- 8 | include::{sourceDir}/src/main/java/example/micronaut/GenreSaveCommand.java[] 9 | ---- 10 | <1> Annotate the class with `@Introspected` to generate the Bean Metainformation at compile time. 11 | 12 | [source,java] 13 | .src/main/java/example/micronaut/GenreUpdateCommand.java 14 | ---- 15 | include::{sourceDir}/src/main/java/example/micronaut/GenreUpdateCommand.java[] 16 | ---- 17 | 18 | Create a POJO to encapsulate Sorting and Pagination: 19 | 20 | 21 | [source,java] 22 | .src/main/java/example/micronaut/SortingAndOrderArguments.java 23 | ---- 24 | include::{sourceDir}/src/main/java/example/micronaut/SortingAndOrderArguments.java[] 25 | ---- 26 | 27 | <1> Use `javax.validation.constraints` Constraints to ensure the incoming data matches your expectations. 28 | 29 | Create `GenreController`, a controller which exposes a resource with the common CRUD operations: 30 | 31 | [source,java] 32 | .src/main/java/example/micronaut/GenreController.java 33 | ---- 34 | include::{sourceDir}/src/main/java/example/micronaut/GenreController.java[] 35 | ---- 36 | 37 | <1> It is critical that any blocking I/O operations (such as fetching the data from the database) are offloaded to a separate thread pool that does not block the Event loop. 38 | <2> The class is defined as a controller with the `@Controller` annotation mapped to the path `/genres`. 39 | <3> Constructor injection. 40 | <4> Maps a `GET` request to `/genres/{id}` which attempts to show a genre. This illustrates the use of a URL path variable. 41 | <5> Returning `null` when the genre doesn't exist makes Micronaut to response with 404 (not found). 42 | <6> Maps a `PUT` request to `/genres` which attempts to update a genre. 43 | <7> Add `@Valid` to any method parameter which requires validation. Use a POJO supplied as a JSON payload in the request to populate command. 44 | <8> It is easy to add custom headers to the response. 45 | <9> Maps a `GET` request to `/genres` which returns a list of genres. This mapping illustrates URL parameters being mapped to a single POJO. 46 | <10> Maps a `POST` request to `/genres` which attempts to save a genre. 47 | <11> Maps a `POST` request to `/ex` which generates an exception. 48 | <12> Maps a `DELETE` request to `/genres/{id}` which attempts to remove a genre. This illustrates the use of a URL path variable. 49 | 50 | -------------------------------------------------------------------------------- /src/main/docs/guide/writingTheApp/datasource.adoc: -------------------------------------------------------------------------------- 1 | === Data Source configuration 2 | 3 | Add the next snippet to `build.gradle` to include the necessary dependencies: 4 | 5 | [source,groovy] 6 | .build.gradle 7 | ---- 8 | include::{sourceDir}/build.gradle[tag=jpa,indent=0] 9 | ---- 10 | 11 | <1> Configures Hibernate/JPA EntityManagerFactory beans. 12 | <2> Configures SQL DataSource instances using Hikari Connection Pool. 13 | <3> Add dependency to in-memory H2 Database. 14 | 15 | Define the data source in `src/main/resources/application.yml`. 16 | 17 | [source,yml] 18 | .src/main/resources/application.yml 19 | ---- 20 | include::{sourceDir}/src/main/resources/application.yml[tag=datasource] 21 | ---- 22 | 23 | NOTE: This way of defining the datasource properties means that we can externalize the configuration, for example for 24 | production environment, and also provide a default value for development. If the environment variables are not defined 25 | Micronaut will use the default values. + 26 | Also keep in mind that it is necessary to escape the `:` in the connection url using back ticks ```. 27 | 28 | === JPA configuration 29 | 30 | Add the next snippet to `src/main/resources/application.yml` to configure JPA: 31 | 32 | [source,yml] 33 | .src/main/resources/application.yml 34 | ---- 35 | include::{sourceDir}/src/main/resources/application.yml[tag=jpa] 36 | ---- 37 | 38 | -------------------------------------------------------------------------------- /src/main/docs/guide/writingTheApp/domain.adoc: -------------------------------------------------------------------------------- 1 | Create the domain entities: 2 | 3 | [source,java] 4 | .src/main/java/example/micronaut/domain/Genre.java 5 | ---- 6 | include::{sourceDir}/src/main/java/example/micronaut/domain/Genre.java[] 7 | ---- 8 | 9 | The previous domain has a `OneToMany` relationship with the domain `Book`. 10 | 11 | [source,java] 12 | .src/main/java/example/micronaut/domain/Book.java 13 | ---- 14 | include::{sourceDir}/src/main/java/example/micronaut/domain/Book.java[] 15 | ---- -------------------------------------------------------------------------------- /src/main/docs/guide/writingTheApp/repository.adoc: -------------------------------------------------------------------------------- 1 | To mark the transaction demarcations, we use the https://docs.oracle.com/javaee/7/api/javax/transaction/Transactional.html[Java EE 7 javax.transaction.Transactional annotation]. 2 | 3 | But to use it, you have to include the `micronaut-data-processor` dependency in your annotation processor configuration: 4 | 5 | [source, groovy] 6 | .build.gradle 7 | ---- 8 | ... 9 | .. 10 | dependencies { 11 | ... 12 | .. 13 | . 14 | include::{sourceDir}/build.gradle[tag="micronaut-data"] 15 | } 16 | ---- 17 | 18 | Next, create an interface to define the operations to access the database: 19 | 20 | [source,java] 21 | .src/main/java/example/micronaut/GenreRepository.java 22 | ---- 23 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepository.java[] 24 | ---- 25 | 26 | And the implementation: 27 | 28 | [source,java] 29 | .src/main/java/example/micronaut/GenreRepositoryImpl.java 30 | ---- 31 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="package"] 32 | 33 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="import"] 34 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="importContent"] 35 | 36 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="clazz"] 37 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="clazzContent"] 38 | 39 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="findById"] 40 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="findByIdContent"] 41 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="save"] 42 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="saveContent"] 43 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="deleteById"] 44 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="deleteByIdContent"] 45 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="findAll"] 46 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="findAllContent"] 47 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="update"] 48 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="updateContent"] 49 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="saveWithException"] 50 | include::{sourceDir}/src/main/java/example/micronaut/GenreRepositoryImpl.java[tag="saveWithExceptionContent"] 51 | ---- 52 | 53 | <1> Use `javax.inject.Singleton` to designate a class as a singleton. 54 | <2> Inject easily an `EntityManager`. 55 | <3> All database access needs to be wrapped inside a transaction. As the method 56 | only reads data from the database, annotate it with `@ReadOnly`. 57 | <4> This method modifies the database, thus it is annoated with `@Transactional`. 58 | 59 | -------------------------------------------------------------------------------- /src/main/docs/guide/writingTheApp/tests.adoc: -------------------------------------------------------------------------------- 1 | Create a Junit test which verifies the CRUD operations: 2 | 3 | [source,java] 4 | .src/test/java/example/micronaut/GenreControllerTest.java 5 | ---- 6 | include::{sourceDir}/src/test/java/example/micronaut/GenreControllerTest.java[] 7 | ---- 8 | <1> Annotate the class with `@MicronautTest` to let Micronaut starts the embedded server and inject the beans. More info: https://micronaut-projects.github.io/micronaut-test/latest/guide/index.html[https://micronaut-projects.github.io/micronaut-test/latest/guide/index.html]. 9 | <2> Inject the `HttpClient` bean in the application context. 10 | <3> Creating HTTP Requests is easy thanks to Micronaut's fluid API. 11 | <4> If you care just about the object in the response use `retrieve`. 12 | <5> Sometimes, receiving just the object is not enough and you need information about the response. In this case, instead of `retrieve` you should use the `exchange` method. 13 | 14 | include::{commondir}/common-testApp.adoc[] 15 | -------------------------------------------------------------------------------- /src/main/resources/img/annotationprocessorsintellij.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micronaut-guides/micronaut-data-access-jpa-hibernate/d890a42e3f77b621f47c3db083b4d64ebd4d67e1/src/main/resources/img/annotationprocessorsintellij.png -------------------------------------------------------------------------------- /src/main/resources/img/datagrip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micronaut-guides/micronaut-data-access-jpa-hibernate/d890a42e3f77b621f47c3db083b4d64ebd4d67e1/src/main/resources/img/datagrip.png -------------------------------------------------------------------------------- /travis-build-pr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | export EXIT_STATUS=0 5 | 6 | echo "Executing tests for branch $TRAVIS_BRANCH" 7 | 8 | ./gradlew --console=plain test || EXIT_STATUS=$? 9 | 10 | exit $EXIT_STATUS 11 | -------------------------------------------------------------------------------- /travis-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | export EXIT_STATUS=0 5 | 6 | ./gradlew --console=plain test || EXIT_STATUS=$? 7 | 8 | if [[ $EXIT_STATUS -ne 0 ]]; then 9 | exit $EXIT_STATUS 10 | fi 11 | 12 | curl -O https://raw.githubusercontent.com/micronaut-projects/micronaut-guides/master/travis/build-guide 13 | chmod 777 build-guide 14 | 15 | ./build-guide || EXIT_STATUS=$? 16 | 17 | curl -O https://raw.githubusercontent.com/micronaut-projects/micronaut-guides/master/travis/republish-guides-website.sh 18 | chmod 777 republish-guides-website.sh 19 | 20 | ./republish-guides-website.sh || EXIT_STATUS=$? 21 | 22 | exit $EXIT_STATUS 23 | --------------------------------------------------------------------------------