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