@ -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() { | |||||
} | |||||
} |