ソースを参照

Added gradle Spring boot project

Joshua Attwood 6年前
コミット
94e183e1bd

+ 13
- 0
bookConverter.iml ファイルの表示

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module external.linked.project.id="bookConverter" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
4
+    <exclude-output />
5
+    <content url="file://$MODULE_DIR$">
6
+      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
7
+      <excludeFolder url="file://$MODULE_DIR$/build" />
8
+      <excludeFolder url="file://$MODULE_DIR$/out" />
9
+    </content>
10
+    <orderEntry type="inheritedJdk" />
11
+    <orderEntry type="sourceFolder" forTests="false" />
12
+  </component>
13
+</module>

+ 34
- 0
build.gradle ファイルの表示

@@ -0,0 +1,34 @@
1
+buildscript {
2
+    repositories {
3
+        mavenCentral()
4
+    }
5
+    dependencies {
6
+        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.1.RELEASE")
7
+    }
8
+}
9
+
10
+apply plugin: 'java'
11
+apply plugin: 'eclipse'
12
+apply plugin: 'idea'
13
+apply plugin: 'org.springframework.boot'
14
+apply plugin: 'io.spring.dependency-management'
15
+
16
+bootJar {
17
+    baseName = 'gs-spring-boot'
18
+    version =  '0.1.0'
19
+}
20
+
21
+repositories {
22
+    mavenCentral()
23
+}
24
+
25
+sourceCompatibility = 1.8
26
+targetCompatibility = 1.8
27
+
28
+dependencies {
29
+    compile("org.springframework.boot:spring-boot-starter-web")
30
+    testCompile("junit:junit")
31
+    testCompile("org.springframework.boot:spring-boot-starter-test")
32
+    compile("org.springframework.boot:spring-boot-starter-actuator")
33
+}
34
+

バイナリ
gradle/wrapper/gradle-wrapper.jar ファイルの表示


+ 6
- 0
gradle/wrapper/gradle-wrapper.properties ファイルの表示

@@ -0,0 +1,6 @@
1
+#Thu Mar 01 09:01:15 CST 2018
2
+distributionBase=GRADLE_USER_HOME
3
+distributionPath=wrapper/dists
4
+zipStoreBase=GRADLE_USER_HOME
5
+zipStorePath=wrapper/dists
6
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip

+ 164
- 0
gradlew ファイルの表示

@@ -0,0 +1,164 @@
1
+#!/usr/bin/env bash
2
+
3
+##############################################################################
4
+##
5
+##  Gradle start up script for UN*X
6
+##
7
+##############################################################################
8
+
9
+# Attempt to set APP_HOME
10
+# Resolve links: $0 may be a link
11
+PRG="$0"
12
+# Need this for relative symlinks.
13
+while [ -h "$PRG" ] ; do
14
+    ls=`ls -ld "$PRG"`
15
+    link=`expr "$ls" : '.*-> \(.*\)$'`
16
+    if expr "$link" : '/.*' > /dev/null; then
17
+        PRG="$link"
18
+    else
19
+        PRG=`dirname "$PRG"`"/$link"
20
+    fi
21
+done
22
+SAVED="`pwd`"
23
+cd "`dirname \"$PRG\"`/" >/dev/null
24
+APP_HOME="`pwd -P`"
25
+cd "$SAVED" >/dev/null
26
+
27
+APP_NAME="Gradle"
28
+APP_BASE_NAME=`basename "$0"`
29
+
30
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
31
+DEFAULT_JVM_OPTS=""
32
+
33
+# Use the maximum available, or set MAX_FD != -1 to use that value.
34
+MAX_FD="maximum"
35
+
36
+warn ( ) {
37
+    echo "$*"
38
+}
39
+
40
+die ( ) {
41
+    echo
42
+    echo "$*"
43
+    echo
44
+    exit 1
45
+}
46
+
47
+# OS specific support (must be 'true' or 'false').
48
+cygwin=false
49
+msys=false
50
+darwin=false
51
+nonstop=false
52
+case "`uname`" in
53
+  CYGWIN* )
54
+    cygwin=true
55
+    ;;
56
+  Darwin* )
57
+    darwin=true
58
+    ;;
59
+  MINGW* )
60
+    msys=true
61
+    ;;
62
+  NONSTOP* )
63
+    nonstop=true
64
+    ;;
65
+esac
66
+
67
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
68
+
69
+# Determine the Java command to use to start the JVM.
70
+if [ -n "$JAVA_HOME" ] ; then
71
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
72
+        # IBM's JDK on AIX uses strange locations for the executables
73
+        JAVACMD="$JAVA_HOME/jre/sh/java"
74
+    else
75
+        JAVACMD="$JAVA_HOME/bin/java"
76
+    fi
77
+    if [ ! -x "$JAVACMD" ] ; then
78
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
79
+
80
+Please set the JAVA_HOME variable in your environment to match the
81
+location of your Java installation."
82
+    fi
83
+else
84
+    JAVACMD="java"
85
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
86
+
87
+Please set the JAVA_HOME variable in your environment to match the
88
+location of your Java installation."
89
+fi
90
+
91
+# Increase the maximum file descriptors if we can.
92
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
93
+    MAX_FD_LIMIT=`ulimit -H -n`
94
+    if [ $? -eq 0 ] ; then
95
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
96
+            MAX_FD="$MAX_FD_LIMIT"
97
+        fi
98
+        ulimit -n $MAX_FD
99
+        if [ $? -ne 0 ] ; then
100
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
101
+        fi
102
+    else
103
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
104
+    fi
105
+fi
106
+
107
+# For Darwin, add options to specify how the application appears in the dock
108
+if $darwin; then
109
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110
+fi
111
+
112
+# For Cygwin, switch paths to Windows format before running java
113
+if $cygwin ; then
114
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
115
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
116
+    JAVACMD=`cygpath --unix "$JAVACMD"`
117
+
118
+    # We build the pattern for arguments to be converted via cygpath
119
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120
+    SEP=""
121
+    for dir in $ROOTDIRSRAW ; do
122
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
123
+        SEP="|"
124
+    done
125
+    OURCYGPATTERN="(^($ROOTDIRS))"
126
+    # Add a user-defined pattern to the cygpath arguments
127
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129
+    fi
130
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
131
+    i=0
132
+    for arg in "$@" ; do
133
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
135
+
136
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
137
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138
+        else
139
+            eval `echo args$i`="\"$arg\""
140
+        fi
141
+        i=$((i+1))
142
+    done
143
+    case $i in
144
+        (0) set -- ;;
145
+        (1) set -- "$args0" ;;
146
+        (2) set -- "$args0" "$args1" ;;
147
+        (3) set -- "$args0" "$args1" "$args2" ;;
148
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154
+    esac
155
+fi
156
+
157
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
158
+function splitJvmOpts() {
159
+    JVM_OPTS=("$@")
160
+}
161
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
162
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
163
+
164
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

+ 90
- 0
gradlew.bat ファイルの表示

@@ -0,0 +1,90 @@
1
+@if "%DEBUG%" == "" @echo off
2
+@rem ##########################################################################
3
+@rem
4
+@rem  Gradle startup script for Windows
5
+@rem
6
+@rem ##########################################################################
7
+
8
+@rem Set local scope for the variables with windows NT shell
9
+if "%OS%"=="Windows_NT" setlocal
10
+
11
+set DIRNAME=%~dp0
12
+if "%DIRNAME%" == "" set DIRNAME=.
13
+set APP_BASE_NAME=%~n0
14
+set APP_HOME=%DIRNAME%
15
+
16
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17
+set DEFAULT_JVM_OPTS=
18
+
19
+@rem Find java.exe
20
+if defined JAVA_HOME goto findJavaFromJavaHome
21
+
22
+set JAVA_EXE=java.exe
23
+%JAVA_EXE% -version >NUL 2>&1
24
+if "%ERRORLEVEL%" == "0" goto init
25
+
26
+echo.
27
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28
+echo.
29
+echo Please set the JAVA_HOME variable in your environment to match the
30
+echo location of your Java installation.
31
+
32
+goto fail
33
+
34
+:findJavaFromJavaHome
35
+set JAVA_HOME=%JAVA_HOME:"=%
36
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37
+
38
+if exist "%JAVA_EXE%" goto init
39
+
40
+echo.
41
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42
+echo.
43
+echo Please set the JAVA_HOME variable in your environment to match the
44
+echo location of your Java installation.
45
+
46
+goto fail
47
+
48
+:init
49
+@rem Get command-line arguments, handling Windows variants
50
+
51
+if not "%OS%" == "Windows_NT" goto win9xME_args
52
+if "%@eval[2+2]" == "4" goto 4NT_args
53
+
54
+:win9xME_args
55
+@rem Slurp the command line arguments.
56
+set CMD_LINE_ARGS=
57
+set _SKIP=2
58
+
59
+:win9xME_args_slurp
60
+if "x%~1" == "x" goto execute
61
+
62
+set CMD_LINE_ARGS=%*
63
+goto execute
64
+
65
+:4NT_args
66
+@rem Get arguments from the 4NT Shell from JP Software
67
+set CMD_LINE_ARGS=%$
68
+
69
+:execute
70
+@rem Setup the command line
71
+
72
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73
+
74
+@rem Execute Gradle
75
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76
+
77
+:end
78
+@rem End local scope for the variables with windows NT shell
79
+if "%ERRORLEVEL%"=="0" goto mainEnd
80
+
81
+:fail
82
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83
+rem the _cmd.exe /c_ return code!
84
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85
+exit /b 1
86
+
87
+:mainEnd
88
+if "%OS%"=="Windows_NT" endlocal
89
+
90
+:omega

+ 27
- 0
initial.iml ファイルの表示

@@ -0,0 +1,27 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module external.linked.project.id="initial" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3
+  <component name="FacetManager">
4
+    <facet type="Spring" name="Spring">
5
+      <configuration />
6
+    </facet>
7
+    <facet type="web" name="Web">
8
+      <configuration>
9
+        <webroots />
10
+        <sourceRoots>
11
+          <root url="file://$MODULE_DIR$/src/main/resources" />
12
+          <root url="file://$MODULE_DIR$/src/main/java" />
13
+        </sourceRoots>
14
+      </configuration>
15
+    </facet>
16
+  </component>
17
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
18
+    <exclude-output />
19
+    <content url="file://$MODULE_DIR$">
20
+      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
21
+      <excludeFolder url="file://$MODULE_DIR$/build" />
22
+      <excludeFolder url="file://$MODULE_DIR$/out" />
23
+    </content>
24
+    <orderEntry type="inheritedJdk" />
25
+    <orderEntry type="sourceFolder" forTests="false" />
26
+  </component>
27
+</module>

+ 233
- 0
mvnw ファイルの表示

@@ -0,0 +1,233 @@
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
+           #
58
+           # Look for the Apple JDKs first to preserve the existing behaviour, and then look
59
+           # for the new JDKs provided by Oracle.
60
+           #
61
+           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
62
+             #
63
+             # Apple JDKs
64
+             #
65
+             export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
66
+           fi
67
+
68
+           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
69
+             #
70
+             # Apple JDKs
71
+             #
72
+             export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
73
+           fi
74
+
75
+           if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
76
+             #
77
+             # Oracle JDKs
78
+             #
79
+             export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
80
+           fi
81
+
82
+           if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
83
+             #
84
+             # Apple JDKs
85
+             #
86
+             export JAVA_HOME=`/usr/libexec/java_home`
87
+           fi
88
+           ;;
89
+esac
90
+
91
+if [ -z "$JAVA_HOME" ] ; then
92
+  if [ -r /etc/gentoo-release ] ; then
93
+    JAVA_HOME=`java-config --jre-home`
94
+  fi
95
+fi
96
+
97
+if [ -z "$M2_HOME" ] ; then
98
+  ## resolve links - $0 may be a link to maven's home
99
+  PRG="$0"
100
+
101
+  # need this for relative symlinks
102
+  while [ -h "$PRG" ] ; do
103
+    ls=`ls -ld "$PRG"`
104
+    link=`expr "$ls" : '.*-> \(.*\)$'`
105
+    if expr "$link" : '/.*' > /dev/null; then
106
+      PRG="$link"
107
+    else
108
+      PRG="`dirname "$PRG"`/$link"
109
+    fi
110
+  done
111
+
112
+  saveddir=`pwd`
113
+
114
+  M2_HOME=`dirname "$PRG"`/..
115
+
116
+  # make it fully qualified
117
+  M2_HOME=`cd "$M2_HOME" && pwd`
118
+
119
+  cd "$saveddir"
120
+  # echo Using m2 at $M2_HOME
121
+fi
122
+
123
+# For Cygwin, ensure paths are in UNIX format before anything is touched
124
+if $cygwin ; then
125
+  [ -n "$M2_HOME" ] &&
126
+    M2_HOME=`cygpath --unix "$M2_HOME"`
127
+  [ -n "$JAVA_HOME" ] &&
128
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
129
+  [ -n "$CLASSPATH" ] &&
130
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
131
+fi
132
+
133
+# For Migwn, ensure paths are in UNIX format before anything is touched
134
+if $mingw ; then
135
+  [ -n "$M2_HOME" ] &&
136
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
137
+  [ -n "$JAVA_HOME" ] &&
138
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
139
+  # TODO classpath?
140
+fi
141
+
142
+if [ -z "$JAVA_HOME" ]; then
143
+  javaExecutable="`which javac`"
144
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
145
+    # readlink(1) is not available as standard on Solaris 10.
146
+    readLink=`which readlink`
147
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
148
+      if $darwin ; then
149
+        javaHome="`dirname \"$javaExecutable\"`"
150
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
151
+      else
152
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
153
+      fi
154
+      javaHome="`dirname \"$javaExecutable\"`"
155
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
156
+      JAVA_HOME="$javaHome"
157
+      export JAVA_HOME
158
+    fi
159
+  fi
160
+fi
161
+
162
+if [ -z "$JAVACMD" ] ; then
163
+  if [ -n "$JAVA_HOME"  ] ; then
164
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
165
+      # IBM's JDK on AIX uses strange locations for the executables
166
+      JAVACMD="$JAVA_HOME/jre/sh/java"
167
+    else
168
+      JAVACMD="$JAVA_HOME/bin/java"
169
+    fi
170
+  else
171
+    JAVACMD="`which java`"
172
+  fi
173
+fi
174
+
175
+if [ ! -x "$JAVACMD" ] ; then
176
+  echo "Error: JAVA_HOME is not defined correctly." >&2
177
+  echo "  We cannot execute $JAVACMD" >&2
178
+  exit 1
179
+fi
180
+
181
+if [ -z "$JAVA_HOME" ] ; then
182
+  echo "Warning: JAVA_HOME environment variable is not set."
183
+fi
184
+
185
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
186
+
187
+# For Cygwin, switch paths to Windows format before running java
188
+if $cygwin; then
189
+  [ -n "$M2_HOME" ] &&
190
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
191
+  [ -n "$JAVA_HOME" ] &&
192
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
193
+  [ -n "$CLASSPATH" ] &&
194
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
195
+fi
196
+
197
+# traverses directory structure from process work directory to filesystem root
198
+# first directory with .mvn subdirectory is considered project base directory
199
+find_maven_basedir() {
200
+  local basedir=$(pwd)
201
+  local wdir=$(pwd)
202
+  while [ "$wdir" != '/' ] ; do
203
+    if [ -d "$wdir"/.mvn ] ; then
204
+      basedir=$wdir
205
+      break
206
+    fi
207
+    wdir=$(cd "$wdir/.."; pwd)
208
+  done
209
+  echo "${basedir}"
210
+}
211
+
212
+# concatenates all lines of a file
213
+concat_lines() {
214
+  if [ -f "$1" ]; then
215
+    echo "$(tr -s '\n' ' ' < "$1")"
216
+  fi
217
+}
218
+
219
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
220
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
221
+
222
+# Provide a "standardized" way to retrieve the CLI args that will
223
+# work with both Windows and non-Windows executions.
224
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
225
+export MAVEN_CMD_LINE_ARGS
226
+
227
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
228
+
229
+exec "$JAVACMD" \
230
+  $MAVEN_OPTS \
231
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
232
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
233
+  ${WRAPPER_LAUNCHER} "$@"

+ 145
- 0
mvnw.cmd ファイルの表示

@@ -0,0 +1,145 @@
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 enable echoing my setting MAVEN_BATCH_ECHO to 'on'
39
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
40
+
41
+@REM set %HOME% to equivalent of $HOME
42
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
43
+
44
+@REM Execute a user defined script before this one
45
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
46
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
47
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
48
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
49
+:skipRcPre
50
+
51
+@setlocal
52
+
53
+set ERROR_CODE=0
54
+
55
+@REM To isolate internal variables from possible post scripts, we use another setlocal
56
+@setlocal
57
+
58
+@REM ==== START VALIDATION ====
59
+if not "%JAVA_HOME%" == "" goto OkJHome
60
+
61
+echo.
62
+echo Error: JAVA_HOME not found in your environment. >&2
63
+echo Please set the JAVA_HOME variable in your environment to match the >&2
64
+echo location of your Java installation. >&2
65
+echo.
66
+goto error
67
+
68
+:OkJHome
69
+if exist "%JAVA_HOME%\bin\java.exe" goto init
70
+
71
+echo.
72
+echo Error: JAVA_HOME is set to an invalid directory. >&2
73
+echo JAVA_HOME = "%JAVA_HOME%" >&2
74
+echo Please set the JAVA_HOME variable in your environment to match the >&2
75
+echo location of your Java installation. >&2
76
+echo.
77
+goto error
78
+
79
+@REM ==== END VALIDATION ====
80
+
81
+:init
82
+
83
+set MAVEN_CMD_LINE_ARGS=%*
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
+
121
+set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar""
122
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
123
+
124
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
125
+if ERRORLEVEL 1 goto error
126
+goto end
127
+
128
+:error
129
+set ERROR_CODE=1
130
+
131
+:end
132
+@endlocal & set ERROR_CODE=%ERROR_CODE%
133
+
134
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
135
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
136
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
137
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
138
+:skipRcPost
139
+
140
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
141
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
142
+
143
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
144
+
145
+exit /B %ERROR_CODE%

+ 37
- 0
pom.xml ファイルの表示

@@ -0,0 +1,37 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4
+    <modelVersion>4.0.0</modelVersion>
5
+
6
+    <groupId>org.springframework</groupId>
7
+    <artifactId>gs-spring-boot</artifactId>
8
+    <version>0.1.0</version>
9
+
10
+    <parent>
11
+        <groupId>org.springframework.boot</groupId>
12
+        <artifactId>spring-boot-starter-parent</artifactId>
13
+        <version>2.0.1.RELEASE</version>
14
+    </parent>
15
+
16
+    <dependencies>
17
+        <dependency>
18
+            <groupId>org.springframework.boot</groupId>
19
+            <artifactId>spring-boot-starter-web</artifactId>
20
+        </dependency>
21
+    </dependencies>
22
+
23
+    <properties>
24
+        <java.version>1.8</java.version>
25
+    </properties>
26
+
27
+
28
+    <build>
29
+        <plugins>
30
+            <plugin>
31
+                <groupId>org.springframework.boot</groupId>
32
+                <artifactId>spring-boot-maven-plugin</artifactId>
33
+            </plugin>
34
+        </plugins>
35
+    </build>
36
+
37
+</project>

+ 24
- 0
src/main/java/hello/Application.java ファイルの表示

@@ -0,0 +1,24 @@
1
+package hello;
2
+
3
+import java.util.Arrays;
4
+
5
+import org.springframework.boot.SpringApplication;
6
+import org.springframework.boot.autoconfigure.SpringBootApplication;
7
+import org.springframework.context.ApplicationContext;
8
+
9
+@SpringBootApplication
10
+public class Application {
11
+    
12
+    public static void main(String[] args) {
13
+        ApplicationContext ctx = SpringApplication.run(Application.class, args);
14
+        
15
+        System.out.println("Let's inspect the beans provided by Spring Boot:");
16
+        
17
+        String[] beanNames = ctx.getBeanDefinitionNames();
18
+        Arrays.sort(beanNames);
19
+        for (String beanName : beanNames) {
20
+            System.out.println(beanName);
21
+        }
22
+    }
23
+
24
+}

+ 75
- 0
src/main/java/hello/HelloController.java ファイルの表示

@@ -0,0 +1,75 @@
1
+package hello;
2
+
3
+import org.springframework.web.bind.annotation.RequestParam;
4
+import org.springframework.web.bind.annotation.RestController;
5
+import org.springframework.web.bind.annotation.RequestMapping;
6
+
7
+import java.io.File;
8
+import java.io.IOException;
9
+import java.util.Map;
10
+import java.util.concurrent.Executors;
11
+import java.io.*;
12
+import java.util.function.Consumer;
13
+
14
+
15
+@RestController
16
+public class HelloController {
17
+    
18
+    @RequestMapping("/")
19
+    public String index() {
20
+        return "Greetings from Spring Boot!";
21
+    }
22
+
23
+    @RequestMapping("/book")
24
+    public String converter(@RequestParam("book") byte[] book, @RequestParam("email") String email)
25
+    {
26
+        String convertedBook  = convertBook(book);
27
+
28
+        System.out.println("Emailed book: " + convertedBook + " to email: " + email);
29
+        return "Failed";
30
+    }
31
+
32
+    private String convertBook(byte[] book) {
33
+        ProcessBuilder builder = new ProcessBuilder();
34
+        boolean isWindows = System.getProperty("os.name").toLowerCase().startsWith("windows");
35
+        if (isWindows) {
36
+            builder.command("C:\\Program Files (x86)\\Calibre2\\ebook-convert", "testbook.epub", "output.mobi");
37
+        } else {
38
+            builder.command("ebook-convert", "testbook.epub", "output.mobi");
39
+        }
40
+        builder.directory(new File(System.getProperty("user.home")));
41
+        Process process;
42
+        try {
43
+            process = builder.start();
44
+        } catch (IOException e) {
45
+            e.printStackTrace();
46
+            return "Failed";
47
+        }
48
+        StreamGobbler streamGobbler = new StreamGobbler(process.getInputStream(), System.out::println);
49
+        Executors.newSingleThreadExecutor().submit(streamGobbler);
50
+        int exitCode;
51
+        try {
52
+            exitCode = process.waitFor();
53
+        } catch (InterruptedException e) {
54
+            e.printStackTrace();
55
+            return "Failed";
56
+        }
57
+        assert exitCode == 0;
58
+        return "output.mobi";
59
+    }
60
+
61
+    private static class StreamGobbler implements Runnable {
62
+        private InputStream inputStream;
63
+        private Consumer<String> consumer;
64
+
65
+        StreamGobbler(InputStream inputStream, Consumer<String> consumer) {
66
+            this.inputStream = inputStream;
67
+            this.consumer = consumer;
68
+        }
69
+
70
+        @Override
71
+        public void run() {
72
+            new BufferedReader(new InputStreamReader(inputStream)).lines().forEach(consumer);
73
+        }
74
+    }
75
+}

+ 41
- 0
src/test/java/hello/HelloControllerIT.java ファイルの表示

@@ -0,0 +1,41 @@
1
+package hello;
2
+
3
+import org.junit.Before;
4
+import org.junit.Test;
5
+import org.junit.runner.RunWith;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.boot.test.context.SpringBootTest;
8
+import org.springframework.boot.test.web.client.TestRestTemplate;
9
+import org.springframework.boot.web.server.LocalServerPort;
10
+import org.springframework.http.ResponseEntity;
11
+import org.springframework.test.context.junit4.SpringRunner;
12
+
13
+import java.net.URL;
14
+
15
+import static org.hamcrest.Matchers.equalTo;
16
+import static org.junit.Assert.assertThat;
17
+
18
+@RunWith(SpringRunner.class)
19
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
20
+public class HelloControllerIT {
21
+
22
+    @LocalServerPort
23
+    private int port;
24
+
25
+    private URL base;
26
+
27
+    @Autowired
28
+    private TestRestTemplate template;
29
+
30
+    @Before
31
+    public void setUp() throws Exception {
32
+        this.base = new URL("http://localhost:" + port + "/");
33
+    }
34
+
35
+    @Test
36
+    public void getHello() {
37
+        ResponseEntity<String> response = template.getForEntity(base.toString(),
38
+                String.class);
39
+        assertThat(response.getBody(), equalTo("Greetings from Spring Boot!"));
40
+    }
41
+}

+ 40
- 0
src/test/java/hello/HelloControllerTest.java ファイルの表示

@@ -0,0 +1,40 @@
1
+package hello;
2
+
3
+import org.junit.Test;
4
+import org.junit.runner.RunWith;
5
+import org.springframework.beans.factory.annotation.Autowired;
6
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
7
+import org.springframework.boot.test.context.SpringBootTest;
8
+import org.springframework.http.MediaType;
9
+import org.springframework.test.context.junit4.SpringRunner;
10
+import org.springframework.test.web.servlet.MockMvc;
11
+import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
12
+
13
+import static org.hamcrest.Matchers.equalTo;
14
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
15
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
16
+
17
+@RunWith(SpringRunner.class)
18
+@SpringBootTest
19
+@AutoConfigureMockMvc
20
+public class HelloControllerTest {
21
+
22
+    @Autowired
23
+    private MockMvc mvc;
24
+
25
+    @Test
26
+    public void getHello() throws Exception {
27
+        mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON))
28
+                .andExpect(status().isOk())
29
+                .andExpect(content().string(equalTo("Greetings from Spring Boot!")));
30
+    }
31
+
32
+    @Test
33
+    public void getBook() throws Exception {
34
+        mvc.perform(MockMvcRequestBuilders.get("/book?email=josh@nuclearlemons.uk&book=title").accept(MediaType.APPLICATION_JSON))
35
+                .andExpect(status().isOk())
36
+                .andExpect(content().string(equalTo("Failed")));
37
+    }
38
+
39
+}
40
+

読み込み中…
キャンセル
保存