| @ -0,0 +1,33 @@ | |||
| HELP.md | |||
| target/ | |||
| !.mvn/wrapper/maven-wrapper.jar | |||
| !**/src/main/**/target/ | |||
| !**/src/test/**/target/ | |||
| ### STS ### | |||
| .apt_generated | |||
| .classpath | |||
| .factorypath | |||
| .project | |||
| .settings | |||
| .springBeans | |||
| .sts4-cache | |||
| ### IntelliJ IDEA ### | |||
| .idea | |||
| *.iws | |||
| *.iml | |||
| *.ipr | |||
| ### NetBeans ### | |||
| /nbproject/private/ | |||
| /nbbuild/ | |||
| /dist/ | |||
| /nbdist/ | |||
| /.nb-gradle/ | |||
| build/ | |||
| !**/src/main/**/build/ | |||
| !**/src/test/**/build/ | |||
| ### VS Code ### | |||
| .vscode/ | |||
| @ -0,0 +1,2 @@ | |||
| distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip | |||
| wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar | |||
| @ -0,0 +1,316 @@ | |||
| #!/bin/sh | |||
| # ---------------------------------------------------------------------------- | |||
| # Licensed to the Apache Software Foundation (ASF) under one | |||
| # or more contributor license agreements. See the NOTICE file | |||
| # distributed with this work for additional information | |||
| # regarding copyright ownership. The ASF licenses this file | |||
| # to you under the Apache License, Version 2.0 (the | |||
| # "License"); you may not use this file except in compliance | |||
| # with the License. You may obtain a copy of the License at | |||
| # | |||
| # https://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, | |||
| # software distributed under the License is distributed on an | |||
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
| # KIND, either express or implied. See the License for the | |||
| # specific language governing permissions and limitations | |||
| # under the License. | |||
| # ---------------------------------------------------------------------------- | |||
| # ---------------------------------------------------------------------------- | |||
| # Maven Start Up Batch script | |||
| # | |||
| # Required ENV vars: | |||
| # ------------------ | |||
| # JAVA_HOME - location of a JDK home dir | |||
| # | |||
| # Optional ENV vars | |||
| # ----------------- | |||
| # M2_HOME - location of maven2's installed home dir | |||
| # MAVEN_OPTS - parameters passed to the Java VM when running Maven | |||
| # e.g. to debug Maven itself, use | |||
| # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | |||
| # MAVEN_SKIP_RC - flag to disable loading of mavenrc files | |||
| # ---------------------------------------------------------------------------- | |||
| if [ -z "$MAVEN_SKIP_RC" ] ; then | |||
| if [ -f /usr/local/etc/mavenrc ] ; then | |||
| . /usr/local/etc/mavenrc | |||
| fi | |||
| if [ -f /etc/mavenrc ] ; then | |||
| . /etc/mavenrc | |||
| fi | |||
| if [ -f "$HOME/.mavenrc" ] ; then | |||
| . "$HOME/.mavenrc" | |||
| fi | |||
| fi | |||
| # OS specific support. $var _must_ be set to either true or false. | |||
| cygwin=false; | |||
| darwin=false; | |||
| mingw=false | |||
| case "`uname`" in | |||
| CYGWIN*) cygwin=true ;; | |||
| MINGW*) mingw=true;; | |||
| Darwin*) darwin=true | |||
| # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home | |||
| # See https://developer.apple.com/library/mac/qa/qa1170/_index.html | |||
| if [ -z "$JAVA_HOME" ]; then | |||
| if [ -x "/usr/libexec/java_home" ]; then | |||
| export JAVA_HOME="`/usr/libexec/java_home`" | |||
| else | |||
| export JAVA_HOME="/Library/Java/Home" | |||
| fi | |||
| fi | |||
| ;; | |||
| esac | |||
| if [ -z "$JAVA_HOME" ] ; then | |||
| if [ -r /etc/gentoo-release ] ; then | |||
| JAVA_HOME=`java-config --jre-home` | |||
| fi | |||
| fi | |||
| if [ -z "$M2_HOME" ] ; then | |||
| ## resolve links - $0 may be a link to maven's home | |||
| PRG="$0" | |||
| # need this for relative symlinks | |||
| while [ -h "$PRG" ] ; do | |||
| ls=`ls -ld "$PRG"` | |||
| link=`expr "$ls" : '.*-> \(.*\)$'` | |||
| if expr "$link" : '/.*' > /dev/null; then | |||
| PRG="$link" | |||
| else | |||
| PRG="`dirname "$PRG"`/$link" | |||
| fi | |||
| done | |||
| saveddir=`pwd` | |||
| M2_HOME=`dirname "$PRG"`/.. | |||
| # make it fully qualified | |||
| M2_HOME=`cd "$M2_HOME" && pwd` | |||
| cd "$saveddir" | |||
| # echo Using m2 at $M2_HOME | |||
| fi | |||
| # For Cygwin, ensure paths are in UNIX format before anything is touched | |||
| if $cygwin ; then | |||
| [ -n "$M2_HOME" ] && | |||
| M2_HOME=`cygpath --unix "$M2_HOME"` | |||
| [ -n "$JAVA_HOME" ] && | |||
| JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | |||
| [ -n "$CLASSPATH" ] && | |||
| CLASSPATH=`cygpath --path --unix "$CLASSPATH"` | |||
| fi | |||
| # For Mingw, ensure paths are in UNIX format before anything is touched | |||
| if $mingw ; then | |||
| [ -n "$M2_HOME" ] && | |||
| M2_HOME="`(cd "$M2_HOME"; pwd)`" | |||
| [ -n "$JAVA_HOME" ] && | |||
| JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" | |||
| fi | |||
| if [ -z "$JAVA_HOME" ]; then | |||
| javaExecutable="`which javac`" | |||
| if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then | |||
| # readlink(1) is not available as standard on Solaris 10. | |||
| readLink=`which readlink` | |||
| if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then | |||
| if $darwin ; then | |||
| javaHome="`dirname \"$javaExecutable\"`" | |||
| javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" | |||
| else | |||
| javaExecutable="`readlink -f \"$javaExecutable\"`" | |||
| fi | |||
| javaHome="`dirname \"$javaExecutable\"`" | |||
| javaHome=`expr "$javaHome" : '\(.*\)/bin'` | |||
| JAVA_HOME="$javaHome" | |||
| export JAVA_HOME | |||
| fi | |||
| fi | |||
| fi | |||
| if [ -z "$JAVACMD" ] ; then | |||
| if [ -n "$JAVA_HOME" ] ; then | |||
| if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |||
| # IBM's JDK on AIX uses strange locations for the executables | |||
| JAVACMD="$JAVA_HOME/jre/sh/java" | |||
| else | |||
| JAVACMD="$JAVA_HOME/bin/java" | |||
| fi | |||
| else | |||
| JAVACMD="`\\unset -f command; \\command -v java`" | |||
| fi | |||
| fi | |||
| if [ ! -x "$JAVACMD" ] ; then | |||
| echo "Error: JAVA_HOME is not defined correctly." >&2 | |||
| echo " We cannot execute $JAVACMD" >&2 | |||
| exit 1 | |||
| fi | |||
| if [ -z "$JAVA_HOME" ] ; then | |||
| echo "Warning: JAVA_HOME environment variable is not set." | |||
| fi | |||
| CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher | |||
| # traverses directory structure from process work directory to filesystem root | |||
| # first directory with .mvn subdirectory is considered project base directory | |||
| find_maven_basedir() { | |||
| if [ -z "$1" ] | |||
| then | |||
| echo "Path not specified to find_maven_basedir" | |||
| return 1 | |||
| fi | |||
| basedir="$1" | |||
| wdir="$1" | |||
| while [ "$wdir" != '/' ] ; do | |||
| if [ -d "$wdir"/.mvn ] ; then | |||
| basedir=$wdir | |||
| break | |||
| fi | |||
| # workaround for JBEAP-8937 (on Solaris 10/Sparc) | |||
| if [ -d "${wdir}" ]; then | |||
| wdir=`cd "$wdir/.."; pwd` | |||
| fi | |||
| # end of workaround | |||
| done | |||
| echo "${basedir}" | |||
| } | |||
| # concatenates all lines of a file | |||
| concat_lines() { | |||
| if [ -f "$1" ]; then | |||
| echo "$(tr -s '\n' ' ' < "$1")" | |||
| fi | |||
| } | |||
| BASE_DIR=`find_maven_basedir "$(pwd)"` | |||
| if [ -z "$BASE_DIR" ]; then | |||
| exit 1; | |||
| fi | |||
| ########################################################################################## | |||
| # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | |||
| # This allows using the maven wrapper in projects that prohibit checking in binary data. | |||
| ########################################################################################## | |||
| if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then | |||
| if [ "$MVNW_VERBOSE" = true ]; then | |||
| echo "Found .mvn/wrapper/maven-wrapper.jar" | |||
| fi | |||
| else | |||
| if [ "$MVNW_VERBOSE" = true ]; then | |||
| echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." | |||
| fi | |||
| if [ -n "$MVNW_REPOURL" ]; then | |||
| jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" | |||
| else | |||
| jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" | |||
| fi | |||
| while IFS="=" read key value; do | |||
| case "$key" in (wrapperUrl) jarUrl="$value"; break ;; | |||
| esac | |||
| done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" | |||
| if [ "$MVNW_VERBOSE" = true ]; then | |||
| echo "Downloading from: $jarUrl" | |||
| fi | |||
| wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" | |||
| if $cygwin; then | |||
| wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` | |||
| fi | |||
| if command -v wget > /dev/null; then | |||
| if [ "$MVNW_VERBOSE" = true ]; then | |||
| echo "Found wget ... using wget" | |||
| fi | |||
| if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then | |||
| wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" | |||
| else | |||
| wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" | |||
| fi | |||
| elif command -v curl > /dev/null; then | |||
| if [ "$MVNW_VERBOSE" = true ]; then | |||
| echo "Found curl ... using curl" | |||
| fi | |||
| if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then | |||
| curl -o "$wrapperJarPath" "$jarUrl" -f | |||
| else | |||
| curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f | |||
| fi | |||
| else | |||
| if [ "$MVNW_VERBOSE" = true ]; then | |||
| echo "Falling back to using Java to download" | |||
| fi | |||
| javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" | |||
| # For Cygwin, switch paths to Windows format before running javac | |||
| if $cygwin; then | |||
| javaClass=`cygpath --path --windows "$javaClass"` | |||
| fi | |||
| if [ -e "$javaClass" ]; then | |||
| if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | |||
| if [ "$MVNW_VERBOSE" = true ]; then | |||
| echo " - Compiling MavenWrapperDownloader.java ..." | |||
| fi | |||
| # Compiling the Java class | |||
| ("$JAVA_HOME/bin/javac" "$javaClass") | |||
| fi | |||
| if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | |||
| # Running the downloader | |||
| if [ "$MVNW_VERBOSE" = true ]; then | |||
| echo " - Running MavenWrapperDownloader.java ..." | |||
| fi | |||
| ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") | |||
| fi | |||
| fi | |||
| fi | |||
| fi | |||
| ########################################################################################## | |||
| # End of extension | |||
| ########################################################################################## | |||
| export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} | |||
| if [ "$MVNW_VERBOSE" = true ]; then | |||
| echo $MAVEN_PROJECTBASEDIR | |||
| fi | |||
| MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" | |||
| # For Cygwin, switch paths to Windows format before running java | |||
| if $cygwin; then | |||
| [ -n "$M2_HOME" ] && | |||
| M2_HOME=`cygpath --path --windows "$M2_HOME"` | |||
| [ -n "$JAVA_HOME" ] && | |||
| JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` | |||
| [ -n "$CLASSPATH" ] && | |||
| CLASSPATH=`cygpath --path --windows "$CLASSPATH"` | |||
| [ -n "$MAVEN_PROJECTBASEDIR" ] && | |||
| MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` | |||
| fi | |||
| # Provide a "standardized" way to retrieve the CLI args that will | |||
| # work with both Windows and non-Windows executions. | |||
| MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" | |||
| export MAVEN_CMD_LINE_ARGS | |||
| WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | |||
| exec "$JAVACMD" \ | |||
| $MAVEN_OPTS \ | |||
| $MAVEN_DEBUG_OPTS \ | |||
| -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ | |||
| "-Dmaven.home=${M2_HOME}" \ | |||
| "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ | |||
| ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" | |||
| @ -0,0 +1,188 @@ | |||
| @REM ---------------------------------------------------------------------------- | |||
| @REM Licensed to the Apache Software Foundation (ASF) under one | |||
| @REM or more contributor license agreements. See the NOTICE file | |||
| @REM distributed with this work for additional information | |||
| @REM regarding copyright ownership. The ASF licenses this file | |||
| @REM to you under the Apache License, Version 2.0 (the | |||
| @REM "License"); you may not use this file except in compliance | |||
| @REM with the License. You may obtain a copy of the License at | |||
| @REM | |||
| @REM https://www.apache.org/licenses/LICENSE-2.0 | |||
| @REM | |||
| @REM Unless required by applicable law or agreed to in writing, | |||
| @REM software distributed under the License is distributed on an | |||
| @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
| @REM KIND, either express or implied. See the License for the | |||
| @REM specific language governing permissions and limitations | |||
| @REM under the License. | |||
| @REM ---------------------------------------------------------------------------- | |||
| @REM ---------------------------------------------------------------------------- | |||
| @REM Maven Start Up Batch script | |||
| @REM | |||
| @REM Required ENV vars: | |||
| @REM JAVA_HOME - location of a JDK home dir | |||
| @REM | |||
| @REM Optional ENV vars | |||
| @REM M2_HOME - location of maven2's installed home dir | |||
| @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands | |||
| @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending | |||
| @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven | |||
| @REM e.g. to debug Maven itself, use | |||
| @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | |||
| @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files | |||
| @REM ---------------------------------------------------------------------------- | |||
| @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' | |||
| @echo off | |||
| @REM set title of command window | |||
| title %0 | |||
| @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' | |||
| @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% | |||
| @REM set %HOME% to equivalent of $HOME | |||
| if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") | |||
| @REM Execute a user defined script before this one | |||
| if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre | |||
| @REM check for pre script, once with legacy .bat ending and once with .cmd ending | |||
| if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* | |||
| if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* | |||
| :skipRcPre | |||
| @setlocal | |||
| set ERROR_CODE=0 | |||
| @REM To isolate internal variables from possible post scripts, we use another setlocal | |||
| @setlocal | |||
| @REM ==== START VALIDATION ==== | |||
| if not "%JAVA_HOME%" == "" goto OkJHome | |||
| echo. | |||
| echo Error: JAVA_HOME not found in your environment. >&2 | |||
| echo Please set the JAVA_HOME variable in your environment to match the >&2 | |||
| echo location of your Java installation. >&2 | |||
| echo. | |||
| goto error | |||
| :OkJHome | |||
| if exist "%JAVA_HOME%\bin\java.exe" goto init | |||
| echo. | |||
| echo Error: JAVA_HOME is set to an invalid directory. >&2 | |||
| echo JAVA_HOME = "%JAVA_HOME%" >&2 | |||
| echo Please set the JAVA_HOME variable in your environment to match the >&2 | |||
| echo location of your Java installation. >&2 | |||
| echo. | |||
| goto error | |||
| @REM ==== END VALIDATION ==== | |||
| :init | |||
| @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". | |||
| @REM Fallback to current working directory if not found. | |||
| set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% | |||
| IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir | |||
| set EXEC_DIR=%CD% | |||
| set WDIR=%EXEC_DIR% | |||
| :findBaseDir | |||
| IF EXIST "%WDIR%"\.mvn goto baseDirFound | |||
| cd .. | |||
| IF "%WDIR%"=="%CD%" goto baseDirNotFound | |||
| set WDIR=%CD% | |||
| goto findBaseDir | |||
| :baseDirFound | |||
| set MAVEN_PROJECTBASEDIR=%WDIR% | |||
| cd "%EXEC_DIR%" | |||
| goto endDetectBaseDir | |||
| :baseDirNotFound | |||
| set MAVEN_PROJECTBASEDIR=%EXEC_DIR% | |||
| cd "%EXEC_DIR%" | |||
| :endDetectBaseDir | |||
| IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig | |||
| @setlocal EnableExtensions EnableDelayedExpansion | |||
| for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a | |||
| @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% | |||
| :endReadAdditionalConfig | |||
| SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" | |||
| set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" | |||
| set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | |||
| set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" | |||
| FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( | |||
| IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B | |||
| ) | |||
| @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | |||
| @REM This allows using the maven wrapper in projects that prohibit checking in binary data. | |||
| if exist %WRAPPER_JAR% ( | |||
| if "%MVNW_VERBOSE%" == "true" ( | |||
| echo Found %WRAPPER_JAR% | |||
| ) | |||
| ) else ( | |||
| if not "%MVNW_REPOURL%" == "" ( | |||
| SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" | |||
| ) | |||
| if "%MVNW_VERBOSE%" == "true" ( | |||
| echo Couldn't find %WRAPPER_JAR%, downloading it ... | |||
| echo Downloading from: %DOWNLOAD_URL% | |||
| ) | |||
| powershell -Command "&{"^ | |||
| "$webclient = new-object System.Net.WebClient;"^ | |||
| "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ | |||
| "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ | |||
| "}"^ | |||
| "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ | |||
| "}" | |||
| if "%MVNW_VERBOSE%" == "true" ( | |||
| echo Finished downloading %WRAPPER_JAR% | |||
| ) | |||
| ) | |||
| @REM End of extension | |||
| @REM Provide a "standardized" way to retrieve the CLI args that will | |||
| @REM work with both Windows and non-Windows executions. | |||
| set MAVEN_CMD_LINE_ARGS=%* | |||
| %MAVEN_JAVA_EXE% ^ | |||
| %JVM_CONFIG_MAVEN_PROPS% ^ | |||
| %MAVEN_OPTS% ^ | |||
| %MAVEN_DEBUG_OPTS% ^ | |||
| -classpath %WRAPPER_JAR% ^ | |||
| "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ | |||
| %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* | |||
| if ERRORLEVEL 1 goto error | |||
| goto end | |||
| :error | |||
| set ERROR_CODE=1 | |||
| :end | |||
| @endlocal & set ERROR_CODE=%ERROR_CODE% | |||
| if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost | |||
| @REM check for post script, once with legacy .bat ending and once with .cmd ending | |||
| if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" | |||
| if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" | |||
| :skipRcPost | |||
| @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' | |||
| if "%MAVEN_BATCH_PAUSE%"=="on" pause | |||
| if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% | |||
| cmd /C exit /B %ERROR_CODE% | |||
| @ -0,0 +1,79 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
| xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | |||
| <modelVersion>4.0.0</modelVersion> | |||
| <parent> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-parent</artifactId> | |||
| <version>3.0.2</version> | |||
| <relativePath/> <!-- lookup parent from repository --> | |||
| </parent> | |||
| <groupId>com.ims.rallyModels</groupId> | |||
| <artifactId>com.ims.rallyModels</artifactId> | |||
| <version>0.0.1-SNAPSHOT</version> | |||
| <name>RallyModels</name> | |||
| <description>Demo project for Spring Boot</description> | |||
| <properties> | |||
| <java.version>17</java.version> | |||
| </properties> | |||
| <dependencies> | |||
| <!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client --> | |||
| <dependency> | |||
| <groupId>org.mariadb.jdbc</groupId> | |||
| <artifactId>mariadb-java-client</artifactId> | |||
| <version>3.1.0</version> | |||
| </dependency> | |||
| <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --> | |||
| <dependency> | |||
| <groupId>org.hibernate</groupId> | |||
| <artifactId>hibernate-core</artifactId> | |||
| <version>6.0.0.Final</version> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-data-jpa</artifactId> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-thymeleaf</artifactId> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-validation</artifactId> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-web</artifactId> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-devtools</artifactId> | |||
| <scope>runtime</scope> | |||
| <optional>true</optional> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>com.mysql</groupId> | |||
| <artifactId>mysql-connector-j</artifactId> | |||
| <scope>runtime</scope> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-starter-test</artifactId> | |||
| <scope>test</scope> | |||
| </dependency> | |||
| </dependencies> | |||
| <build> | |||
| <plugins> | |||
| <plugin> | |||
| <groupId>org.springframework.boot</groupId> | |||
| <artifactId>spring-boot-maven-plugin</artifactId> | |||
| </plugin> | |||
| </plugins> | |||
| </build> | |||
| </project> | |||
| @ -0,0 +1,3 @@ | |||
| Manifest-Version: 1.0 | |||
| Class-Path: | |||
| @ -0,0 +1,34 @@ | |||
| package com.ims.rallyModels; | |||
| import com.ims.rallyModels.modelo.MaquetaEntity; | |||
| import com.ims.rallyModels.repositorio.IMaquetasRepositorio; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.boot.CommandLineRunner; | |||
| import org.springframework.boot.SpringApplication; | |||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | |||
| @SpringBootApplication | |||
| public class RallyModelsApplication implements CommandLineRunner { | |||
| public static void main(String[] args) { | |||
| SpringApplication.run(RallyModelsApplication.class, args); | |||
| } | |||
| @Autowired | |||
| private IMaquetasRepositorio repositorio; | |||
| @Override | |||
| public void run(String... args) throws Exception { | |||
| /* | |||
| MaquetaEntity ds = new MaquetaEntity(10,"Hyundai I20 Dani Sordo",14.99,5,2); | |||
| repositorio.save(ds); | |||
| MaquetaEntity kr = new MaquetaEntity(9,"Toyota Yaris Kalle Rovanperä",14.99,6,1); | |||
| repositorio.save(kr); | |||
| MaquetaEntity sl = new MaquetaEntity(11,"Ford Puma Sebastien Loeb",17.99,6,3); | |||
| repositorio.save(sl); | |||
| */ | |||
| } | |||
| } | |||
| @ -0,0 +1,74 @@ | |||
| package com.ims.rallyModels.controlador; | |||
| import com.ims.rallyModels.modelo.MaquetaEntity; | |||
| import com.ims.rallyModels.servicio.IMaquetasServicio; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Controller; | |||
| import org.springframework.ui.Model; | |||
| import org.springframework.web.bind.annotation.GetMapping; | |||
| import org.springframework.web.bind.annotation.ModelAttribute; | |||
| import org.springframework.web.bind.annotation.PathVariable; | |||
| import org.springframework.web.bind.annotation.PostMapping; | |||
| @Controller | |||
| public class MaquetaControlador { | |||
| /* | |||
| HTTP GET /users – returns all the users in the system. | |||
| HTTP GET /users/{id} – returns a user by specified id. | |||
| HTTP POST /users – creates a new user in the system. | |||
| @ para path | |||
| $ para objetos | |||
| */ | |||
| @Autowired | |||
| private IMaquetasServicio servicio; | |||
| @GetMapping({"/maquetas",""})//url path | |||
| public String listarMaquetas(Model model) { | |||
| model.addAttribute("maquetas",servicio.listAll()); | |||
| return "maqueta";//html path | |||
| } | |||
| @GetMapping({"/maquetas/nuevo"}) | |||
| public String mostrarFormRegistroMaqueta(Model model) { | |||
| //maqueta que le pasaremos al formulario | |||
| MaquetaEntity maqueta = new MaquetaEntity(); | |||
| model.addAttribute("maqueta",maqueta); | |||
| return "crear_maqueta"; | |||
| } | |||
| @PostMapping("/maquetas") | |||
| public String guardarMaqueta(@ModelAttribute("maqueta")MaquetaEntity maqueta) { | |||
| //recibimos el objeto que creamos para el formulario | |||
| //agregamos métodos útiles a la Interfaz de servicio | |||
| servicio.guardarMaqueta(maqueta); | |||
| return "redirect:/maquetas";//volvemos a la página inicial | |||
| } | |||
| @GetMapping("/maquetas/editar/{id}") | |||
| public String mostrarFormularioEditar(@PathVariable Integer id, Model modelo) { | |||
| modelo.addAttribute("maqueta",servicio.obtenerMaquetaPorId(id)); | |||
| return "editar_maqueta"; | |||
| } | |||
| @PostMapping("/maquetas/{id}") | |||
| public String actualizarMaqueta(@PathVariable Integer id, | |||
| @ModelAttribute("maqueta") MaquetaEntity maqueta, | |||
| Model modelo) { | |||
| MaquetaEntity maquetaExistente = servicio.obtenerMaquetaPorId(id); | |||
| maquetaExistente.setIdMaqueta(maqueta.getIdMaqueta()); | |||
| maquetaExistente.setDescripcion(maqueta.getDescripcion()); | |||
| servicio.actualizarMaqueta(maquetaExistente); | |||
| return "redirect:/maquetas"; | |||
| } | |||
| @GetMapping("/maquetas/{id}") | |||
| public String eliminarMaqueta(@PathVariable Integer id) { | |||
| servicio.eliminarMaquetas(id); | |||
| return "redirect:/maquetas"; | |||
| } | |||
| } | |||
| @ -0,0 +1,20 @@ | |||
| package com.ims.rallyModels.controlador; | |||
| import com.ims.rallyModels.servicio.IMaquetasServicio; | |||
| import com.ims.rallyModels.servicio.IUsuarioServicio; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.ui.Model; | |||
| import org.springframework.web.bind.annotation.GetMapping; | |||
| public class UsuarioControlador { | |||
| @Autowired | |||
| private IUsuarioServicio servicio; | |||
| @GetMapping({"/usuarios",""}) | |||
| public String listarMaquetas(Model model) { | |||
| model.addAttribute("usuarios",servicio.listAll()); | |||
| return "usuarios"; | |||
| } | |||
| } | |||
| @ -0,0 +1,77 @@ | |||
| package com.ims.rallyModels.modelo; | |||
| import jakarta.persistence.*; | |||
| @Entity | |||
| @Table(name = "coche", schema = "proyecto", catalog = "") | |||
| public class CocheEntity { | |||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | |||
| @Id | |||
| @Column(name = "idCoche", nullable = false) | |||
| private int idCoche; | |||
| @Basic | |||
| @Column(name = "marca", nullable = true, length = 45) | |||
| private String marca; | |||
| @Basic | |||
| @Column(name = "modelo", nullable = true, length = 45) | |||
| private String modelo; | |||
| @Basic | |||
| @Column(name = "piloto", nullable = true, length = 45) | |||
| private String piloto; | |||
| public int getIdCoche() { | |||
| return idCoche; | |||
| } | |||
| public void setIdCoche(int idCoche) { | |||
| this.idCoche = idCoche; | |||
| } | |||
| public String getMarca() { | |||
| return marca; | |||
| } | |||
| public void setMarca(String marca) { | |||
| this.marca = marca; | |||
| } | |||
| public String getModelo() { | |||
| return modelo; | |||
| } | |||
| public void setModelo(String modelo) { | |||
| this.modelo = modelo; | |||
| } | |||
| public String getPiloto() { | |||
| return piloto; | |||
| } | |||
| public void setPiloto(String piloto) { | |||
| this.piloto = piloto; | |||
| } | |||
| @Override | |||
| public boolean equals(Object o) { | |||
| if (this == o) return true; | |||
| if (o == null || getClass() != o.getClass()) return false; | |||
| CocheEntity that = (CocheEntity) o; | |||
| if (idCoche != that.idCoche) return false; | |||
| if (marca != null ? !marca.equals(that.marca) : that.marca != null) return false; | |||
| if (modelo != null ? !modelo.equals(that.modelo) : that.modelo != null) return false; | |||
| if (piloto != null ? !piloto.equals(that.piloto) : that.piloto != null) return false; | |||
| return true; | |||
| } | |||
| @Override | |||
| public int hashCode() { | |||
| int result = idCoche; | |||
| result = 31 * result + (marca != null ? marca.hashCode() : 0); | |||
| result = 31 * result + (modelo != null ? modelo.hashCode() : 0); | |||
| result = 31 * result + (piloto != null ? piloto.hashCode() : 0); | |||
| return result; | |||
| } | |||
| } | |||
| @ -0,0 +1,91 @@ | |||
| package com.ims.rallyModels.modelo; | |||
| import jakarta.persistence.*; | |||
| @Entity | |||
| @Table(name = "competicion", schema = "proyecto", catalog = "") | |||
| public class CompeticionEntity { | |||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | |||
| @Id | |||
| @Column(name = "idCompeticion", nullable = false) | |||
| private int idCompeticion; | |||
| @Basic | |||
| @Column(name = "nombre", nullable = true, length = 45) | |||
| private String nombre; | |||
| @Basic | |||
| @Column(name = "lugar", nullable = true, length = 45) | |||
| private String lugar; | |||
| @Basic | |||
| @Column(name = "mejor_resultado", nullable = true, length = 45) | |||
| private String mejorResultado; | |||
| @Basic | |||
| @Column(name = "anio", nullable = true, length = 50) | |||
| private String anio; | |||
| public int getIdCompeticion() { | |||
| return idCompeticion; | |||
| } | |||
| public void setIdCompeticion(int idCompeticion) { | |||
| this.idCompeticion = idCompeticion; | |||
| } | |||
| public String getNombre() { | |||
| return nombre; | |||
| } | |||
| public void setNombre(String nombre) { | |||
| this.nombre = nombre; | |||
| } | |||
| public String getLugar() { | |||
| return lugar; | |||
| } | |||
| public void setLugar(String lugar) { | |||
| this.lugar = lugar; | |||
| } | |||
| public String getMejorResultado() { | |||
| return mejorResultado; | |||
| } | |||
| public void setMejorResultado(String mejorResultado) { | |||
| this.mejorResultado = mejorResultado; | |||
| } | |||
| public String getAnio() { | |||
| return anio; | |||
| } | |||
| public void setAnio(String anio) { | |||
| this.anio = anio; | |||
| } | |||
| @Override | |||
| public boolean equals(Object o) { | |||
| if (this == o) return true; | |||
| if (o == null || getClass() != o.getClass()) return false; | |||
| CompeticionEntity that = (CompeticionEntity) o; | |||
| if (idCompeticion != that.idCompeticion) return false; | |||
| if (nombre != null ? !nombre.equals(that.nombre) : that.nombre != null) return false; | |||
| if (lugar != null ? !lugar.equals(that.lugar) : that.lugar != null) return false; | |||
| if (mejorResultado != null ? !mejorResultado.equals(that.mejorResultado) : that.mejorResultado != null) | |||
| return false; | |||
| if (anio != null ? !anio.equals(that.anio) : that.anio != null) return false; | |||
| return true; | |||
| } | |||
| @Override | |||
| public int hashCode() { | |||
| int result = idCompeticion; | |||
| result = 31 * result + (nombre != null ? nombre.hashCode() : 0); | |||
| result = 31 * result + (lugar != null ? lugar.hashCode() : 0); | |||
| result = 31 * result + (mejorResultado != null ? mejorResultado.hashCode() : 0); | |||
| result = 31 * result + (anio != null ? anio.hashCode() : 0); | |||
| return result; | |||
| } | |||
| } | |||
| @ -0,0 +1,92 @@ | |||
| package com.ims.rallyModels.modelo; | |||
| import jakarta.persistence.*; | |||
| import java.sql.Date; | |||
| @Entity | |||
| @Table(name = "compra", schema = "proyecto", catalog = "") | |||
| public class CompraEntity { | |||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | |||
| @Id | |||
| @Column(name = "idCompra", nullable = false) | |||
| private int idCompra; | |||
| @Basic | |||
| @Column(name = "precio_total", nullable = true, length = 45) | |||
| private String precioTotal; | |||
| @Basic | |||
| @Column(name = "fecha", nullable = true) | |||
| private Date fecha; | |||
| @Basic | |||
| @Column(name = "fk_idUsuario", nullable = false) | |||
| private int fkIdUsuario; | |||
| @Basic | |||
| @Column(name = "fk_idMetodos_Pago", nullable = false) | |||
| private int fkIdMetodosPago; | |||
| public int getIdCompra() { | |||
| return idCompra; | |||
| } | |||
| public void setIdCompra(int idCompra) { | |||
| this.idCompra = idCompra; | |||
| } | |||
| public String getPrecioTotal() { | |||
| return precioTotal; | |||
| } | |||
| public void setPrecioTotal(String precioTotal) { | |||
| this.precioTotal = precioTotal; | |||
| } | |||
| public Date getFecha() { | |||
| return fecha; | |||
| } | |||
| public void setFecha(Date fecha) { | |||
| this.fecha = fecha; | |||
| } | |||
| public int getFkIdUsuario() { | |||
| return fkIdUsuario; | |||
| } | |||
| public void setFkIdUsuario(int fkIdUsuario) { | |||
| this.fkIdUsuario = fkIdUsuario; | |||
| } | |||
| public int getFkIdMetodosPago() { | |||
| return fkIdMetodosPago; | |||
| } | |||
| public void setFkIdMetodosPago(int fkIdMetodosPago) { | |||
| this.fkIdMetodosPago = fkIdMetodosPago; | |||
| } | |||
| @Override | |||
| public boolean equals(Object o) { | |||
| if (this == o) return true; | |||
| if (o == null || getClass() != o.getClass()) return false; | |||
| CompraEntity that = (CompraEntity) o; | |||
| if (idCompra != that.idCompra) return false; | |||
| if (fkIdUsuario != that.fkIdUsuario) return false; | |||
| if (fkIdMetodosPago != that.fkIdMetodosPago) return false; | |||
| if (precioTotal != null ? !precioTotal.equals(that.precioTotal) : that.precioTotal != null) return false; | |||
| if (fecha != null ? !fecha.equals(that.fecha) : that.fecha != null) return false; | |||
| return true; | |||
| } | |||
| @Override | |||
| public int hashCode() { | |||
| int result = idCompra; | |||
| result = 31 * result + (precioTotal != null ? precioTotal.hashCode() : 0); | |||
| result = 31 * result + (fecha != null ? fecha.hashCode() : 0); | |||
| result = 31 * result + fkIdUsuario; | |||
| result = 31 * result + fkIdMetodosPago; | |||
| return result; | |||
| } | |||
| } | |||
| @ -0,0 +1,67 @@ | |||
| package com.ims.rallyModels.modelo; | |||
| import jakarta.persistence.*; | |||
| import java.sql.Date; | |||
| @Entity | |||
| @Table(name = "log_usuario", schema = "proyecto", catalog = "") | |||
| public class LogUsuarioEntity { | |||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | |||
| @Id | |||
| @Column(name = "idLog_Usuario", nullable = false) | |||
| private int idLogUsuario; | |||
| @Basic | |||
| @Column(name = "Log_Usuariocol", nullable = true) | |||
| private Date logUsuariocol; | |||
| @Basic | |||
| @Column(name = "fk_idUsuario", nullable = false) | |||
| private int fkIdUsuario; | |||
| public int getIdLogUsuario() { | |||
| return idLogUsuario; | |||
| } | |||
| public void setIdLogUsuario(int idLogUsuario) { | |||
| this.idLogUsuario = idLogUsuario; | |||
| } | |||
| public Date getLogUsuariocol() { | |||
| return logUsuariocol; | |||
| } | |||
| public void setLogUsuariocol(Date logUsuariocol) { | |||
| this.logUsuariocol = logUsuariocol; | |||
| } | |||
| public int getFkIdUsuario() { | |||
| return fkIdUsuario; | |||
| } | |||
| public void setFkIdUsuario(int fkIdUsuario) { | |||
| this.fkIdUsuario = fkIdUsuario; | |||
| } | |||
| @Override | |||
| public boolean equals(Object o) { | |||
| if (this == o) return true; | |||
| if (o == null || getClass() != o.getClass()) return false; | |||
| LogUsuarioEntity that = (LogUsuarioEntity) o; | |||
| if (idLogUsuario != that.idLogUsuario) return false; | |||
| if (fkIdUsuario != that.fkIdUsuario) return false; | |||
| if (logUsuariocol != null ? !logUsuariocol.equals(that.logUsuariocol) : that.logUsuariocol != null) | |||
| return false; | |||
| return true; | |||
| } | |||
| @Override | |||
| public int hashCode() { | |||
| int result = idLogUsuario; | |||
| result = 31 * result + (logUsuariocol != null ? logUsuariocol.hashCode() : 0); | |||
| result = 31 * result + fkIdUsuario; | |||
| return result; | |||
| } | |||
| } | |||
| @ -0,0 +1,94 @@ | |||
| package com.ims.rallyModels.modelo; | |||
| import jakarta.persistence.*; | |||
| @Entity | |||
| @Table(name = "maqueta", schema = "proyecto", catalog = "") | |||
| public class MaquetaEntity { | |||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | |||
| @Id | |||
| @Column(name = "idMaqueta", nullable = false) | |||
| private int idMaqueta; | |||
| @Basic | |||
| @Column(name = "descripcion", nullable = true, length = 45) | |||
| private String descripcion; | |||
| @Basic | |||
| @Column(name = "precio", nullable = true, precision = 0) | |||
| private Double precio; | |||
| @Basic | |||
| @Column(name = "fk_idCompeticion", nullable = false) | |||
| private int fkIdCompeticion; | |||
| @Basic | |||
| @Column(name = "fk_idCoche", nullable = false) | |||
| private int fkIdCoche; | |||
| public MaquetaEntity() { | |||
| } | |||
| public int getIdMaqueta() { | |||
| return idMaqueta; | |||
| } | |||
| public void setIdMaqueta(int idMaqueta) { | |||
| this.idMaqueta = idMaqueta; | |||
| } | |||
| public String getDescripcion() { | |||
| return descripcion; | |||
| } | |||
| public void setDescripcion(String descripcion) { | |||
| this.descripcion = descripcion; | |||
| } | |||
| public Double getPrecio() { | |||
| return precio; | |||
| } | |||
| public void setPrecio(Double precio) { | |||
| this.precio = precio; | |||
| } | |||
| public int getFkIdCompeticion() { | |||
| return fkIdCompeticion; | |||
| } | |||
| public void setFkIdCompeticion(int fkIdCompeticion) { | |||
| this.fkIdCompeticion = fkIdCompeticion; | |||
| } | |||
| public int getFkIdCoche() { | |||
| return fkIdCoche; | |||
| } | |||
| public void setFkIdCoche(int fkIdCoche) { | |||
| this.fkIdCoche = fkIdCoche; | |||
| } | |||
| @Override | |||
| public boolean equals(Object o) { | |||
| if (this == o) return true; | |||
| if (o == null || getClass() != o.getClass()) return false; | |||
| MaquetaEntity that = (MaquetaEntity) o; | |||
| if (idMaqueta != that.idMaqueta) return false; | |||
| if (fkIdCompeticion != that.fkIdCompeticion) return false; | |||
| if (fkIdCoche != that.fkIdCoche) return false; | |||
| if (descripcion != null ? !descripcion.equals(that.descripcion) : that.descripcion != null) return false; | |||
| if (precio != null ? !precio.equals(that.precio) : that.precio != null) return false; | |||
| return true; | |||
| } | |||
| @Override | |||
| public int hashCode() { | |||
| int result = idMaqueta; | |||
| result = 31 * result + (descripcion != null ? descripcion.hashCode() : 0); | |||
| result = 31 * result + (precio != null ? precio.hashCode() : 0); | |||
| result = 31 * result + fkIdCompeticion; | |||
| result = 31 * result + fkIdCoche; | |||
| return result; | |||
| } | |||
| } | |||
| @ -0,0 +1,51 @@ | |||
| package com.ims.rallyModels.modelo; | |||
| import jakarta.persistence.*; | |||
| @Entity | |||
| @Table(name = "metodos_pago", schema = "proyecto", catalog = "") | |||
| public class MetodosPagoEntity { | |||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | |||
| @Id | |||
| @Column(name = "idMetodos_Pago", nullable = false) | |||
| private int idMetodosPago; | |||
| @Basic | |||
| @Column(name = "metodo_pago", nullable = true, length = 45) | |||
| private String metodoPago; | |||
| public int getIdMetodosPago() { | |||
| return idMetodosPago; | |||
| } | |||
| public void setIdMetodosPago(int idMetodosPago) { | |||
| this.idMetodosPago = idMetodosPago; | |||
| } | |||
| public String getMetodoPago() { | |||
| return metodoPago; | |||
| } | |||
| public void setMetodoPago(String metodoPago) { | |||
| this.metodoPago = metodoPago; | |||
| } | |||
| @Override | |||
| public boolean equals(Object o) { | |||
| if (this == o) return true; | |||
| if (o == null || getClass() != o.getClass()) return false; | |||
| MetodosPagoEntity that = (MetodosPagoEntity) o; | |||
| if (idMetodosPago != that.idMetodosPago) return false; | |||
| if (metodoPago != null ? !metodoPago.equals(that.metodoPago) : that.metodoPago != null) return false; | |||
| return true; | |||
| } | |||
| @Override | |||
| public int hashCode() { | |||
| int result = idMetodosPago; | |||
| result = 31 * result + (metodoPago != null ? metodoPago.hashCode() : 0); | |||
| return result; | |||
| } | |||
| } | |||
| @ -0,0 +1,77 @@ | |||
| package com.ims.rallyModels.modelo; | |||
| import jakarta.persistence.*; | |||
| @Entity | |||
| @Table(name = "producto", schema = "proyecto", catalog = "") | |||
| public class ProductoEntity { | |||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | |||
| @Id | |||
| @Column(name = "idProducto", nullable = false) | |||
| private int idProducto; | |||
| @Basic | |||
| @Column(name = "stock", nullable = true) | |||
| private Integer stock; | |||
| @Basic | |||
| @Column(name = "fk_idCompra", nullable = false) | |||
| private int fkIdCompra; | |||
| @Basic | |||
| @Column(name = "fk_idMaqueta", nullable = false) | |||
| private int fkIdMaqueta; | |||
| public int getIdProducto() { | |||
| return idProducto; | |||
| } | |||
| public void setIdProducto(int idProducto) { | |||
| this.idProducto = idProducto; | |||
| } | |||
| public Integer getStock() { | |||
| return stock; | |||
| } | |||
| public void setStock(Integer stock) { | |||
| this.stock = stock; | |||
| } | |||
| public int getFkIdCompra() { | |||
| return fkIdCompra; | |||
| } | |||
| public void setFkIdCompra(int fkIdCompra) { | |||
| this.fkIdCompra = fkIdCompra; | |||
| } | |||
| public int getFkIdMaqueta() { | |||
| return fkIdMaqueta; | |||
| } | |||
| public void setFkIdMaqueta(int fkIdMaqueta) { | |||
| this.fkIdMaqueta = fkIdMaqueta; | |||
| } | |||
| @Override | |||
| public boolean equals(Object o) { | |||
| if (this == o) return true; | |||
| if (o == null || getClass() != o.getClass()) return false; | |||
| ProductoEntity that = (ProductoEntity) o; | |||
| if (idProducto != that.idProducto) return false; | |||
| if (fkIdCompra != that.fkIdCompra) return false; | |||
| if (fkIdMaqueta != that.fkIdMaqueta) return false; | |||
| if (stock != null ? !stock.equals(that.stock) : that.stock != null) return false; | |||
| return true; | |||
| } | |||
| @Override | |||
| public int hashCode() { | |||
| int result = idProducto; | |||
| result = 31 * result + (stock != null ? stock.hashCode() : 0); | |||
| result = 31 * result + fkIdCompra; | |||
| result = 31 * result + fkIdMaqueta; | |||
| return result; | |||
| } | |||
| } | |||
| @ -0,0 +1,64 @@ | |||
| package com.ims.rallyModels.modelo; | |||
| import jakarta.persistence.*; | |||
| @Entity | |||
| @Table(name = "usuario", schema = "proyecto", catalog = "") | |||
| public class UsuarioEntity { | |||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | |||
| @Id | |||
| @Column(name = "idUsuario", nullable = false) | |||
| private int idUsuario; | |||
| @Basic | |||
| @Column(name = "nombre", nullable = true, length = 45) | |||
| private String nombre; | |||
| @Basic | |||
| @Column(name = "contrasena", nullable = true, length = 45) | |||
| private String contrasena; | |||
| public int getIdUsuario() { | |||
| return idUsuario; | |||
| } | |||
| public void setIdUsuario(int idUsuario) { | |||
| this.idUsuario = idUsuario; | |||
| } | |||
| public String getNombre() { | |||
| return nombre; | |||
| } | |||
| public void setNombre(String nombre) { | |||
| this.nombre = nombre; | |||
| } | |||
| public String getContrasena() { | |||
| return contrasena; | |||
| } | |||
| public void setContrasena(String contrasena) { | |||
| this.contrasena = contrasena; | |||
| } | |||
| @Override | |||
| public boolean equals(Object o) { | |||
| if (this == o) return true; | |||
| if (o == null || getClass() != o.getClass()) return false; | |||
| UsuarioEntity that = (UsuarioEntity) o; | |||
| if (idUsuario != that.idUsuario) return false; | |||
| if (nombre != null ? !nombre.equals(that.nombre) : that.nombre != null) return false; | |||
| if (contrasena != null ? !contrasena.equals(that.contrasena) : that.contrasena != null) return false; | |||
| return true; | |||
| } | |||
| @Override | |||
| public int hashCode() { | |||
| int result = idUsuario; | |||
| result = 31 * result + (nombre != null ? nombre.hashCode() : 0); | |||
| result = 31 * result + (contrasena != null ? contrasena.hashCode() : 0); | |||
| return result; | |||
| } | |||
| } | |||
| @ -0,0 +1,8 @@ | |||
| package com.ims.rallyModels.repositorio; | |||
| import com.ims.rallyModels.modelo.MaquetaEntity; | |||
| import org.springframework.data.jpa.repository.JpaRepository; | |||
| import org.springframework.stereotype.Repository; | |||
| @Repository | |||
| public interface IMaquetasRepositorio extends JpaRepository<MaquetaEntity, Integer> { } | |||
| @ -0,0 +1,10 @@ | |||
| package com.ims.rallyModels.repositorio; | |||
| import com.ims.rallyModels.modelo.MaquetaEntity; | |||
| import com.ims.rallyModels.modelo.UsuarioEntity; | |||
| import org.springframework.data.jpa.repository.JpaRepository; | |||
| import org.springframework.stereotype.Repository; | |||
| @Repository | |||
| public interface IUsuarioRepositorio extends JpaRepository<UsuarioEntity, Integer> { | |||
| } | |||
| @ -0,0 +1,21 @@ | |||
| package com.ims.rallyModels.servicio; | |||
| import com.ims.rallyModels.modelo.MaquetaEntity; | |||
| import com.ims.rallyModels.modelo.UsuarioEntity; | |||
| import org.springframework.data.jpa.repository.JpaRepository; | |||
| import java.util.List; | |||
| public interface IMaquetasServicio { | |||
| public List<MaquetaEntity> listAll(); | |||
| public MaquetaEntity guardarMaqueta(MaquetaEntity maqueta); | |||
| public MaquetaEntity obtenerMaquetaPorId(Integer id); | |||
| public MaquetaEntity actualizarMaqueta(MaquetaEntity maqueta); | |||
| public void eliminarMaquetas(Integer id); | |||
| } | |||
| @ -0,0 +1,11 @@ | |||
| package com.ims.rallyModels.servicio; | |||
| import com.ims.rallyModels.modelo.UsuarioEntity; | |||
| import java.util.List; | |||
| public interface IUsuarioServicio { | |||
| public List<UsuarioEntity> listAll(); | |||
| } | |||
| @ -0,0 +1,42 @@ | |||
| package com.ims.rallyModels.servicio; | |||
| import com.ims.rallyModels.modelo.MaquetaEntity; | |||
| import com.ims.rallyModels.repositorio.IMaquetasRepositorio; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import java.util.List; | |||
| @Service | |||
| public class MaquetasServicioImpl implements IMaquetasServicio { | |||
| @Autowired | |||
| private IMaquetasRepositorio repositorio; | |||
| @Override | |||
| public List<MaquetaEntity> listAll() { | |||
| return repositorio.findAll(); | |||
| } | |||
| @Override | |||
| public MaquetaEntity guardarMaqueta(MaquetaEntity maqueta) { | |||
| return repositorio.save(maqueta); | |||
| } | |||
| @Override | |||
| public MaquetaEntity obtenerMaquetaPorId(Integer id) { | |||
| return repositorio.findById(id).get(); | |||
| } | |||
| @Override | |||
| public MaquetaEntity actualizarMaqueta(MaquetaEntity maqueta) { | |||
| //primero se busca y luego se edita y guarda | |||
| return repositorio.save(maqueta); | |||
| } | |||
| @Override | |||
| public void eliminarMaquetas(Integer id) { | |||
| repositorio.deleteById(id); | |||
| } | |||
| } | |||
| @ -0,0 +1,20 @@ | |||
| package com.ims.rallyModels.servicio; | |||
| import com.ims.rallyModels.modelo.UsuarioEntity; | |||
| import com.ims.rallyModels.repositorio.IMaquetasRepositorio; | |||
| import com.ims.rallyModels.repositorio.IUsuarioRepositorio; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import java.util.List; | |||
| public class UsuarioServicioImpl implements IUsuarioServicio{ | |||
| @Autowired | |||
| private IUsuarioRepositorio repositorio; | |||
| @Override | |||
| public List<UsuarioEntity> listAll() { | |||
| return repositorio.findAll(); | |||
| } | |||
| } | |||
| @ -0,0 +1,12 @@ | |||
| spring.datasource.url=jdbc:mariadb://localhost:3306/Proyecto | |||
| spring.datasource.username=proyecto | |||
| spring.datasource.password=1234 | |||
| spring.datasource.driver-class-name=org.mariadb.jdbc.Driver | |||
| # none, validate, update, create-drop may be created | |||
| spring.jpa.hibernate.ddl-auto=none | |||
| server.port=2614 | |||
| #spring.jpa.hibernate.ddl-auto=none | |||
| spring.jpa.show-sql=true | |||
| spring.jpa.properties.hibernate.format_sql=true | |||
| #spring.jpa.properties.hibernate.dialect = org.hibernate.dialect | |||
| @ -0,0 +1,129 @@ | |||
| @charset "UTF-8"; | |||
| /* Remove the navbar's default rounded borders and increase the bottom margin */ | |||
| .navbar { | |||
| height: 50px; | |||
| margin-bottom: 50px; | |||
| border-radius: 0; | |||
| } | |||
| /* Remove the jumbotron's default bottom margin */ | |||
| .banner { | |||
| margin-bottom: 0; | |||
| height: auto; | |||
| width: 100%; | |||
| /*background-image: url("templates/img/banner.jpg");*/ | |||
| background: #fddb3a; | |||
| } | |||
| /* Add a gray background color and some padding to the footer */ | |||
| footer { | |||
| background-color: #f2f2f2; | |||
| padding: 25px; | |||
| } | |||
| .navbar-brand { | |||
| background-image: url("templates/img/Rally-Models.png"); | |||
| } | |||
| .logo-image{ | |||
| width: 46px; | |||
| height: 46px; | |||
| overflow: hidden; | |||
| margin-top: -6px; | |||
| } | |||
| @media (min-width: 1200px) { | |||
| .container { | |||
| width: 90%; | |||
| max-width: 90%; | |||
| } | |||
| } | |||
| .panel-heading { | |||
| font-size: 18px; | |||
| font-weight: bold; | |||
| } | |||
| .precio { | |||
| font-size: 18px; | |||
| font-weight: bold; | |||
| padding-top: 5px; | |||
| } | |||
| .panel-producto { | |||
| cursor: pointer; | |||
| } | |||
| /* Estilos para la factura */ | |||
| .invoice-title h2, .invoice-title h3 { | |||
| display: inline-block; | |||
| } | |||
| .invoice-body .table > tbody > tr > .no-line { | |||
| border-top: none; | |||
| } | |||
| .invoice-body .table > thead > tr > .no-line { | |||
| border-bottom: none; | |||
| } | |||
| .invoice-body .table > tbody > tr > .thick-line { | |||
| border-top: 2px solid; | |||
| } | |||
| * { | |||
| margin: 0; | |||
| padding: 0; | |||
| -webkit-box-sizing: border-box; | |||
| box-sizing: border-box; | |||
| } | |||
| .text-center { | |||
| font-family: "Microsport"; | |||
| } | |||
| body { | |||
| background: #272727; | |||
| font-family: "Microsport"; | |||
| } | |||
| .myNavbar { | |||
| position: absolute; | |||
| top: 50%; | |||
| left: 50%; | |||
| -webkit-transform: translate(-50%, -50%); | |||
| transform: translate(-50%, -50%); | |||
| } | |||
| .myNavbar a { | |||
| color: #f6f4e6; | |||
| text-decoration: none; | |||
| font-size: 1.2em; | |||
| text-transform: uppercase; | |||
| font-weight: 500; | |||
| display: inline-block; | |||
| width: 80px; | |||
| -webkit-transition: all 0.2s ease-in-out; | |||
| transition: all 0.2s ease-in-out; | |||
| } | |||
| .myNavbar a:hover { | |||
| color: #fddb3a; | |||
| } | |||
| .form-control { | |||
| border: #fddb3a; | |||
| background: #e6e6e6; | |||
| } | |||
| input[type=text]:focus { | |||
| border: #fddb3a | |||
| } | |||
| @ -0,0 +1,56 @@ | |||
| <!DOCTYPE html> | |||
| <html xmlns:th="https://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="UTF-8"> | |||
| <title>RallyModels</title> | |||
| <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" | |||
| integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> | |||
| </head> | |||
| <body> | |||
| <nav class="navbar navbar-expand-md bg-dark navbar-dark"> | |||
| <a class="navbar-brand" href="#">Control de Maquetas</a> | |||
| <div class="collapse navbar-collapse" id="collapsibleNavbar"> | |||
| <ul class="navbar-nav"> | |||
| <li class="nav-item"><a class="nav-link" | |||
| th:href="@{/maquetas}">Control de maquetas</a> </li> | |||
| </ul> | |||
| </div> | |||
| </nav> | |||
| <br/> | |||
| <div class="container"> | |||
| <div class="row"> | |||
| <div class="col-lg-6 col-md-6 col-sm-6 container justify-content-center card"> | |||
| <h1 class="text-center">Nueva Maqueta</h1> | |||
| <div class="card-body"> | |||
| <form th:action="@{/maquetas}" th:object="${maqueta}" method="post"> | |||
| <!-- la maqueta de th:object es la que le pasamos al controlador OJO LAS "s" --> | |||
| <div class="form-group"> | |||
| <label>Descripcion: </label> | |||
| <input type="text" name="descripcion" th:field="*{descripcion}" | |||
| class="form-control" placeholder="Descripción de la maqueta: " required> | |||
| </div> | |||
| <br/> | |||
| <div class="form-group"> | |||
| <label>Precio: </label> | |||
| <input type="number" name="precio" th:field="*{precio}" | |||
| class="form-control" placeholder="Precio de la maqueta: " required> | |||
| </div> | |||
| <br/> | |||
| <div class="box-footer"> | |||
| <button class="btn btn-success">Guardar</button> | |||
| </div> | |||
| </form> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,56 @@ | |||
| <!DOCTYPE html> | |||
| <html xmlns:th="https://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="UTF-8"> | |||
| <title>RallyModels</title> | |||
| <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" | |||
| integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> | |||
| </head> | |||
| <body> | |||
| <nav class="navbar navbar-expand-md bg-dark navbar-dark"> | |||
| <a class="navbar-brand" href="#">Control de Maquetas</a> | |||
| <div class="collapse navbar-collapse" id="collapsibleNavbar"> | |||
| <ul class="navbar-nav"> | |||
| <li class="nav-item"><a class="nav-link" | |||
| th:href="@{/maquetas}">Control de maquetas</a> </li> | |||
| </ul> | |||
| </div> | |||
| </nav> | |||
| <br/> | |||
| <div class="container"> | |||
| <div class="row"> | |||
| <div class="col-lg-6 col-md-6 col-sm-6 container justify-content-center card"> | |||
| <h1 class="text-center">Edición de maquetas</h1> | |||
| <div class="card-body"> | |||
| <form th:action="@{/maquetas/{id}(id=${maqueta.idMaqueta})}" th:object="${maqueta}" method="post"> | |||
| <!-- la maqueta de th:object es la que le pasamos al controlador OJO LAS "s" --> | |||
| <div class="form-group"> | |||
| <label>Descripcion: </label> | |||
| <input type="text" name="descripcion" th:field="*{descripcion}" | |||
| class="form-control" placeholder="Descripción de la maqueta: " required> | |||
| </div> | |||
| <br/> | |||
| <div class="form-group"> | |||
| <label>Precio: </label> | |||
| <input type="number" name="precio" th:field="*{precio}" | |||
| class="form-control" placeholder="Precio de la maqueta: " required> | |||
| </div> | |||
| <br/> | |||
| <div class="box-footer"> | |||
| <button class="btn btn-success">Guardar</button> | |||
| </div> | |||
| </form> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,13 @@ | |||
| <!DOCTYPE html> | |||
| <html> | |||
| <head> | |||
| <meta charset="UTF-8"> | |||
| <title>RallyModels</title> | |||
| </head> | |||
| <body> | |||
| <h1>Lista de maquetas</h1> | |||
| <a href="maqueta.html">Añadir Maqueta</a> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,76 @@ | |||
| <!DOCTYPE html> | |||
| <html xmlns:th="https://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="UTF-8"> | |||
| <title>RallyModels</title> | |||
| <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" | |||
| integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> | |||
| </head> | |||
| <body> | |||
| <nav class="navbar navbar-expand-md bg-dark navbar-dark"> | |||
| <a class="navbar-brand" href="#">Control de Maquetas</a> | |||
| <div class="collapse navbar-collapse" id="collapsibleNavbar"> | |||
| <ul class="navbar-nav"> | |||
| <li class="nav-item"><a class="nav-link" | |||
| th:href="@{/maquetas}">Control de maquetas</a> </li> | |||
| </ul> | |||
| </div> | |||
| </nav> | |||
| <div class="container"> | |||
| <div class="row"> | |||
| <h1>Lista Maquetas</h1> | |||
| </div> | |||
| <table class="table table-striped table-bordered"> | |||
| <thead class="table-dark"> | |||
| <tr> | |||
| <th>Descripcion</th> | |||
| <th>Coche</th> | |||
| <th>Competicion</th> | |||
| <th>Precio</th> | |||
| <th>Acciones</th> | |||
| </tr> | |||
| </thead> | |||
| <tbody> | |||
| <tr th:each="maqueta : ${maquetas}">. | |||
| <td th:text="${maqueta.descripcion}">Descripcion</td> | |||
| <td th:text="${maqueta.fkIdCoche}">Coche</td> | |||
| <td th:text="${maqueta.fkIdCompeticion}">Competicion</td> | |||
| <td th:text="${maqueta.precio}">Precio</td> | |||
| <td> | |||
| <a th:href="@{/maquetas/editar/{id}(id=${maqueta.idMaqueta})}" | |||
| class="btn btn-info">Editar</a> | |||
| <a th:href="@{/maquetas/{id}(id=${maqueta.idMaqueta})}" | |||
| class="btn btn-danger">Eliminar</a> | |||
| </td> | |||
| </tr> | |||
| </tbody> | |||
| </table> | |||
| </div> | |||
| <div class="container"> | |||
| <div class="card" style="width: 18rem;"> | |||
| <img src="raw/images.jfif" class="card-img-top" alt="..."> | |||
| <div class="card-body"> | |||
| <h5 class="card-title">Card title</h5> | |||
| <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> | |||
| <a href="#" class="btn btn-primary">Go somewhere</a> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,13 @@ | |||
| package com.ims.rallyModels; | |||
| import org.junit.jupiter.api.Test; | |||
| import org.springframework.boot.test.context.SpringBootTest; | |||
| @SpringBootTest | |||
| class RallyModelsApplicationTests { | |||
| @Test | |||
| void contextLoads() { | |||
| } | |||
| } | |||