From 4a40b82145dad6050ef90980fab7fb004c3120a3 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sat, 11 Jan 2020 12:45:36 +0100 Subject: [PATCH 01/25] Fix documentazione --- doc/chapters/01_introduzione.tex | 2 +- doc/img/logo_unimib.pdf | Bin 0 -> 9830 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 doc/img/logo_unimib.pdf diff --git a/doc/chapters/01_introduzione.tex b/doc/chapters/01_introduzione.tex index 19a0cad..9f2d42d 100644 --- a/doc/chapters/01_introduzione.tex +++ b/doc/chapters/01_introduzione.tex @@ -3,7 +3,7 @@ \begin{figure}[H] \centering \begin{subfigure}[b]{0.680\linewidth} - \includegraphics[width=\linewidth]{img/logo.pdf} + \includegraphics[width=\linewidth]{img/logo.png} \caption{Logo dell'applicazione} \end{subfigure} \label{fig:coffee} diff --git a/doc/img/logo_unimib.pdf b/doc/img/logo_unimib.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d57616938d929c2d9c78b65157aa4e36df4ebc03 GIT binary patch literal 9830 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 literal 0 HcmV?d00001 From 929057d1bb22346a046f0b67e9712e76a4ea6559 Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Sat, 11 Jan 2020 16:10:42 +0100 Subject: [PATCH 02/25] trasferimento codice su gitlab --- multibook/.gitignore | 31 ++ .../.mvn/wrapper/MavenWrapperDownloader.java | 117 +++++++ multibook/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + multibook/database.mv.db | Bin 0 -> 32768 bytes multibook/mvnw | 310 ++++++++++++++++++ multibook/mvnw.cmd | 182 ++++++++++ multibook/pom.xml | 60 ++++ .../mivan/multibook/MultibookApplication.java | 13 + .../multibook/controller/UserController.java | 24 ++ .../disco/mivan/multibook/model/Author.java | 55 ++++ .../disco/mivan/multibook/model/Book.java | 68 ++++ .../disco/mivan/multibook/model/Item.java | 65 ++++ .../disco/mivan/multibook/model/Loan.java | 101 ++++++ .../disco/mivan/multibook/model/Location.java | 36 ++ .../disco/mivan/multibook/model/Person.java | 68 ++++ .../disco/mivan/multibook/model/Staff.java | 26 ++ .../disco/mivan/multibook/model/User.java | 67 ++++ .../repository/PersonRepository.java | 17 + .../multibook/repository/UserRepository.java | 19 ++ .../mivan/multibook/service/UserService.java | 37 +++ .../src/main/resources/application.properties | 23 ++ .../multibook/MultibookApplicationTests.java | 13 + .../disco/mivan/multibook/UserTests.java | 33 ++ 24 files changed, 1367 insertions(+) create mode 100644 multibook/.gitignore create mode 100644 multibook/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 multibook/.mvn/wrapper/maven-wrapper.jar create mode 100644 multibook/.mvn/wrapper/maven-wrapper.properties create mode 100644 multibook/database.mv.db create mode 100755 multibook/mvnw create mode 100644 multibook/mvnw.cmd create mode 100644 multibook/pom.xml create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/MultibookApplication.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/controller/UserController.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Author.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Book.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Item.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Loan.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Location.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Person.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Staff.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/User.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/PersonRepository.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/UserRepository.java create mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/service/UserService.java create mode 100644 multibook/src/main/resources/application.properties create mode 100644 multibook/src/test/java/com/unimib/disco/mivan/multibook/MultibookApplicationTests.java create mode 100644 multibook/src/test/java/com/unimib/disco/mivan/multibook/UserTests.java diff --git a/multibook/.gitignore b/multibook/.gitignore new file mode 100644 index 0000000..a2a3040 --- /dev/null +++ b/multibook/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### 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/ + +### VS Code ### +.vscode/ diff --git a/multibook/.mvn/wrapper/MavenWrapperDownloader.java b/multibook/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..e76d1f3 --- /dev/null +++ b/multibook/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed 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. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/multibook/.mvn/wrapper/maven-wrapper.jar b/multibook/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054 GIT binary patch literal 50710 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 EfAhh=DF6Tf literal 0 HcmV?d00001 diff --git a/multibook/.mvn/wrapper/maven-wrapper.properties b/multibook/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..642d572 --- /dev/null +++ b/multibook/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/multibook/database.mv.db b/multibook/database.mv.db new file mode 100644 index 0000000000000000000000000000000000000000..c151f91106df7a8dad945c7742b38deda1813853 GIT binary patch literal 32768 zcmeHPTXW*b6*d`2ZJ71WvO9T5Rd!3O$*w&KA-Z396CjKN21W>bsH8#(5WBANfXl|4 zsXXR2Z+S>kwUvL6%0J0N{!l7Mty?1yCR3i7OmcW=OKPe6^mkhAbIx~Kt*TI-TrQ_C zs#5TGaPd2@%5xl7o_=$?cv0om^7PVk7gfGIz4qLdH>>i>T$emin=4#-zPx_vuAuT; z@A~Fq3Ad@``K7m-e&bzNMQ$ccRZb`#;13Z%1P}p401-e05CKF05kLeG0Ym^1Km^_) z0xk6a-y! zUsWZ@1Xy^lR*)ZX<$mqmK;`vvxvI(<f$Bj3rF?a_YSQX{2KN|%%qQcg)Z zBjx;X;lA`L7mJzqs=^CvXVTi4x^||2NS?b~P8#mYeHfjbx>xbB?ahBkt}m~=g>&sL zZrte#vM6qXM_2CT(yMUviAbL)^ojlvY3X(`TXvRTSNQMyYO08T$b~8n^E;{vQ86g` z;#=<&6g&k5`^WuIyNT*~0jdI}3!%~jozG-lNtDjJ<=e&WjW;t^XHgP}l*|K|H}O39 zYb1;u&NnffZ;>#xC>%8lm8@9^(=(Wblt2O>3KY%B4e{heJed-Y=%Tt+7u8S~M0Hir zX{1K~7}Q8K;UD|D{;{u#@Ch+Yn~9(i=t^Z*rJk<*j5Hg~!=1I#&RR(6A*no(OyXM0 z>3+q}Nx$*LNb7Y(CQ~=+EwjNmMy+EqY=2nmSar6-4hN>q9vA&JgKapYzR5CYhFxzN_OZx6Wx73w z=?*)ca&U*$V40eAVs+u_dQIJOM#-asEI$n&Xo)V$usZ7< zrCaJ7gTZ;v22rDtZ0pY-_#RSOHQTU9<7D8)r=|Q)nJ*3-A+CMfI)yu!wmG6;4X=*j z>R4czUYDv1AZMXTXzFLomxnh-$1&~gs$q;qgQ@qr1IIRe*b~hq7yTY6F^);ojMZ(J z&#C*@MJnaXFo+g5AX3x(iQZ%VD# zYqQ5}-}YtcjIBYf>%TMkPXNn*WME02$$o2g2*EPVo^4tuUH@H9_qu`Uj)s!a*k;qT zeG~`Oix`e77!535urAlzFse@hyI*Hwr=6eIJMu3jNpCC0NKw!9;R)Yt_U%}KTUVJ* zvVi%>J>G#FS(kPpmnlLDIl9j+xMenzjAScronGB=tX>ypguix1$Q>NyfA#1`2cO5L zDIb}pLUa(=rD&u2HtL@vvyhK-k$pELu~DsY1y|O+SJssmg*Wz$P@w;h{(lgA%62%=|BqsH?Qy32j{bitpo#uJ9oS`QUmX2^ zV5OVIS0 z$j`N@GM7Yc=8FC`RTtffJ_i|GWvY3TDW_RH0;5Qgp^oMBI=$We;~J?EHRO|vKLHw`8A3#{dK7^`GkF=5Nko-=3Gx2h z?d;nfh7v_DLLZbM5Pc^+%tmB?U93|6D}eNGcR-rN^zR~=fd{qC!C*J2n=Eu%H9II@ zAN(T#zqL2`dWx?~MiY8>#{mCtx5FRbo9zHmDuABWRp1jKX@ZSb0P_FH|0Dl@SMCDx z|49Y|c!$XUBmbY7Z`5pO68G<#|DQa1LQzvmYHCDH1zD&_O|4N=SvjivQ&U04Vah9s zscS-HgO9S25UM0R`+JnH8Z&3<^zFUV0QOAk4)EFsJv!?f$*TJ%tKuvT_nsW;VwfzR z%ITFdb9%jp;IIa%BE0){wkTjPhyWsh2p|H803v`0AOeU0B7g`W0*JtSk3h)(C;WTN z|5M-5*A;1^^X}xHoPMgADE~hlcuVpBdu;-bC8r~3RA2Xe81VlR^8c_M5&3`Q|6xbC zzq1?p|M<%Qo0%85|3921xc@(6tM(lmjxqlq^Z#-Ge~`_;gM3eR&2Rh42>C;R_JQPVv4zLNf_5JK_arbjMN literal 0 HcmV?d00001 diff --git a/multibook/mvnw b/multibook/mvnw new file mode 100755 index 0000000..a16b543 --- /dev/null +++ b/multibook/mvnw @@ -0,0 +1,310 @@ +#!/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 /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="`which 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/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.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" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$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 \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/multibook/mvnw.cmd b/multibook/mvnw.cmd new file mode 100644 index 0000000..c8d4337 --- /dev/null +++ b/multibook/mvnw.cmd @@ -0,0 +1,182 @@ +@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 "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\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/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "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%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.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 "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\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% + +exit /B %ERROR_CODE% diff --git a/multibook/pom.xml b/multibook/pom.xml new file mode 100644 index 0000000..4160597 --- /dev/null +++ b/multibook/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.2.2.RELEASE + + + com.unimib.disco.mivan + multibook + 0.0.1-SNAPSHOT + multibook + Project for book loan + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + com.h2database + h2 + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/MultibookApplication.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/MultibookApplication.java new file mode 100644 index 0000000..34fb121 --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/MultibookApplication.java @@ -0,0 +1,13 @@ +package com.unimib.disco.mivan.multibook; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MultibookApplication { + + public static void main(String[] args) { + SpringApplication.run(MultibookApplication.class, args); + } + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/controller/UserController.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/controller/UserController.java new file mode 100644 index 0000000..b6cb4d1 --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/controller/UserController.java @@ -0,0 +1,24 @@ +package com.unimib.disco.mivan.multibook.controller; + +import org.springframework.beans.factory.annotation.Autowired; + +import com.unimib.disco.mivan.multibook.model.User; +import com.unimib.disco.mivan.multibook.repository.UserRepository; + +public class UserController { + + @Autowired + UserRepository userRepository; + + + public void createUser(String firstName, String lastName, String city,String username, String email, String password) { + + User user = new User(firstName, lastName, city,username,email,password); + + userRepository.save(user); + + + + + } +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Author.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Author.java new file mode 100644 index 0000000..25010b9 --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Author.java @@ -0,0 +1,55 @@ +/*package com.unimib.disco.mivan.multibook.model; + +import java.util.List; + +import javax.persistence.*; + +public class Author { + + + @Id + @Column(name = "id", nullable=false) + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @Column(name = "firstName", nullable=false) + private String artName; + + @ManyToMany + List publications; + + public Author() { + // TODO Auto-generated constructor stub + } + + public Author(String artName, List publications) { + super(); + this.artName = artName; + this.publications = publications; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getArtName() { + return artName; + } + + public void setArtName(String artName) { + this.artName = artName; + } + + public List getPublications() { + return publications; + } + + public void setPublications(List publications) { + this.publications = publications; + } + +}*/ diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Book.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Book.java new file mode 100644 index 0000000..af7820e --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Book.java @@ -0,0 +1,68 @@ +package com.unimib.disco.mivan.multibook.model; + +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToMany; +import javax.persistence.OneToOne; + +@Entity +public class Book { + + @Id + @Column(name = "isbn", nullable=false) + private int isbn; + + @Column(name = "titolo", nullable=false) + private String titolo; + + @OneToOne + private Book prequel; + /* + @ManyToMany + List authors; + */ + + public Book() { + // TODO Auto-generated constructor stub + } + + public Book(int isbn, String titolo, Book prequel/*, List authors*/) { + super(); + this.isbn = isbn; + this.titolo = titolo; + this.prequel = prequel; + //this.authors = authors; + } + + public int getIsbn() { + return isbn; + } + + public void setIsbn(int isbn) { + this.isbn = isbn; + } + + public String getTitolo() { + return titolo; + } + + public void setTitolo(String titolo) { + this.titolo = titolo; + } + + public Book getPrequel() { + return prequel; + } + + public void setPrequel(Book prequel) { + this.prequel = prequel; + } + + + + + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Item.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Item.java new file mode 100644 index 0000000..e020d43 --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Item.java @@ -0,0 +1,65 @@ +package com.unimib.disco.mivan.multibook.model; + +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +public class Item{ + + + @Id + @Column(name = "id", nullable=false) + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + @ManyToOne + private Location location; + + @ManyToOne + private Book libro; + + + public Item() { + // TODO Auto-generated constructor stub + } + + + public Item(Book libro,Location location) { + this.libro = libro; + this.location=location; + // TODO Auto-generated constructor stub + } + + + public int getId() { + return id; + } + + + public void setId(int id) { + this.id = id; + } + + + public Location getLocation() { + return location; + } + + + public void setLocation(Location location) { + this.location = location; + } + + + public Book getLibro() { + return libro; + } + + + public void setLibro(Book libro) { + this.libro = libro; + } + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Loan.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Loan.java new file mode 100644 index 0000000..daa82e3 --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Loan.java @@ -0,0 +1,101 @@ +package com.unimib.disco.mivan.multibook.model; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +public class Loan { + + @Id + @Column(name = "id", nullable=false) + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + + @ManyToOne + private Item item; + + @ManyToOne + private Staff staff; + + @ManyToOne + private User user; + + @Column(name = "start") + @Temporal(TemporalType.TIMESTAMP) + Date start; + + @Column(name = "end") + @Temporal(TemporalType.TIMESTAMP) + Date end; + + public Loan() { + // TODO Auto-generated constructor stub + } + + public Loan(int id, Item item, Staff staff, User user, Date start, Date end) { + super(); + this.item = item; + this.staff = staff; + this.user = user; + this.start = start; + this.end = end; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public Item getItem() { + return item; + } + + public void setItem(Item item) { + this.item = item; + } + + public Staff getStaff() { + return staff; + } + + public void setStaff(Staff staff) { + this.staff = staff; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public Date getStart() { + return start; + } + + public void setStart(Date start) { + this.start = start; + } + + public Date getEnd() { + return end; + } + + public void setEnd(Date end) { + this.end = end; + } + + + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Location.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Location.java new file mode 100644 index 0000000..4c6cd8c --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Location.java @@ -0,0 +1,36 @@ +package com.unimib.disco.mivan.multibook.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class Location { + + @Id + @Column(name = "id", nullable=false) + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @Column(name = "name", nullable=false) + private String name; + + @Column(name = "address", nullable=false) + private String address; + + @Column(name = "city", nullable=false) + private String city; + + public Location() { + // TODO Auto-generated constructor stub + } + + public Location(String name, String address, String city) { + super(); + this.name = name; + this.address = address; + this.city = city; + } +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Person.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Person.java new file mode 100644 index 0000000..7dd3068 --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Person.java @@ -0,0 +1,68 @@ +package com.unimib.disco.mivan.multibook.model; + + +import javax.persistence.*; + +@MappedSuperclass +public class Person { + + + @Id + @Column(name = "id", nullable=false) + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @Column(name = "firstName", nullable=false) + private String firstName; + + @Column(name = "lastName", nullable=false) + private String lastName; + + @Column(name = "city") + private String city; + + + public Person() {} + + public Person(String firstName, String lastName, String city) { + super(); + this.firstName = firstName; + this.lastName = lastName; + this.city = city; + } + + public long getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Staff.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Staff.java new file mode 100644 index 0000000..e35f3b2 --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Staff.java @@ -0,0 +1,26 @@ +package com.unimib.disco.mivan.multibook.model; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.ManyToOne; + +@Entity +public class Staff extends User { + + @ManyToOne(fetch = FetchType.LAZY) + private Location library; + + + public Staff() { + // TODO Auto-generated constructor stub + } + + public Staff(String firstName, String lastName, String city, String username, String email, + String password, Location library) { + super(firstName, lastName, city, username, email, password); + this.library=library; + + // TODO Auto-generated constructor stub + } + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/User.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/User.java new file mode 100644 index 0000000..3a46bcc --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/User.java @@ -0,0 +1,67 @@ +package com.unimib.disco.mivan.multibook.model; + + +import javax.persistence.*; + +@Entity +public class User extends Person { + + + @Column(name = "username", nullable=false,unique=true) + private String username; + + @Column(name = "email", nullable=false,unique=true) + private String email; + + @Column(name = "password", nullable=false) + private String password; + + + public User() { + super(); + // TODO Auto-generated constructor stub + } + + public User(String firstName, String lastName, String city, String username, String email, String password) { + super(firstName, lastName, city); + this.username = username; + this.email = email; + this.password = password; + } + + + public String getUsername() { + return username; + } + + + public void setUsername(String username) { + this.username = username; + } + + + public String getEmail() { + return email; + } + + + public void setEmail(String email) { + this.email = email; + } + + + public String getPassword() { + return password; + } + + + public void setPassword(String password) { + this.password = password; + } + + + + + + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/PersonRepository.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/PersonRepository.java new file mode 100644 index 0000000..6274ec5 --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/PersonRepository.java @@ -0,0 +1,17 @@ +package com.unimib.disco.mivan.multibook.repository; + +import java.util.List; + +import org.springframework.data.repository.CrudRepository; + +import com.unimib.disco.mivan.multibook.model.Person; + +public interface PersonRepository extends CrudRepository { + + List findByFirstNameAllIgnoreCase(String firstName); + + List findByLastNameAllIgnoreCase(String lastName); + + List findByirstNameAndLastNameAllIgnoreCase(String firstName, String lastName); + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/UserRepository.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/UserRepository.java new file mode 100644 index 0000000..d11e05a --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/UserRepository.java @@ -0,0 +1,19 @@ +package com.unimib.disco.mivan.multibook.repository; + +import com.unimib.disco.mivan.multibook.model.User; + +import java.util.Optional; + + +public interface UserRepository extends PersonRepository { + + + public Optional findById(Long id); + + public User findByEmail(String email); + + public User findByUsername(String username); + + + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/service/UserService.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/service/UserService.java new file mode 100644 index 0000000..5c2e712 --- /dev/null +++ b/multibook/src/main/java/com/unimib/disco/mivan/multibook/service/UserService.java @@ -0,0 +1,37 @@ +package com.unimib.disco.mivan.multibook.service; + +import java.util.List; +import java.util.Optional; + +import com.unimib.disco.mivan.multibook.model.User; +import com.unimib.disco.mivan.multibook.repository.UserRepository; + +public class UserService { + + private UserRepository userRepository; + + public UserService(UserRepository userRepository) { + this.userRepository = userRepository; + } + /* + public List getClients(){ + return Lists.newArrayList(userRepository.findAll()); + }*/ + + public Optional getClient(Long id) { + return userRepository.findById(id); + } + + public List getClientsByNameAndSurname(String name, String surname) { + return userRepository.findByirstNameAndLastNameAllIgnoreCase(name, surname); + } + + + public void deleteClient(User client) { + userRepository.delete(client); + } + + public User insertOrUpdateClient(User client) { + return userRepository.save(client); + } +} diff --git a/multibook/src/main/resources/application.properties b/multibook/src/main/resources/application.properties new file mode 100644 index 0000000..5054168 --- /dev/null +++ b/multibook/src/main/resources/application.properties @@ -0,0 +1,23 @@ + + +spring.datasource.url=jdbc:h2:./database; +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=librarymenagment +spring.datasource.password=password123! +spring.datasource.initialization-mode=always + +spring.h2.console.enabled=true +spring.h2.console.path=/h2 + + +spring.jpa.show-sql=true +spring.jpa.hibernate.ddl-auto=update +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect + + + + +# Used for initialization of db. +# !!! Remove comment for initialize db first time. !!! +# spring.datasource.initialization-mode=always + diff --git a/multibook/src/test/java/com/unimib/disco/mivan/multibook/MultibookApplicationTests.java b/multibook/src/test/java/com/unimib/disco/mivan/multibook/MultibookApplicationTests.java new file mode 100644 index 0000000..cdeb7a8 --- /dev/null +++ b/multibook/src/test/java/com/unimib/disco/mivan/multibook/MultibookApplicationTests.java @@ -0,0 +1,13 @@ +package com.unimib.disco.mivan.multibook; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class MultibookApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/multibook/src/test/java/com/unimib/disco/mivan/multibook/UserTests.java b/multibook/src/test/java/com/unimib/disco/mivan/multibook/UserTests.java new file mode 100644 index 0000000..0aac3cb --- /dev/null +++ b/multibook/src/test/java/com/unimib/disco/mivan/multibook/UserTests.java @@ -0,0 +1,33 @@ +package com.unimib.disco.mivan.multibook; + + +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.springframework.boot.test.context.SpringBootTest; + +import com.unimib.disco.mivan.multibook.model.User; +import com.unimib.disco.mivan.multibook.service.UserService; + + + +@SpringBootTest +public class UserTests { + + + + //private UserRepository userRepository = new UserRepository(); + private UserService userRepository; + + @Test + void userCreation() { + + User asd = new User("Ivan", "Donati", "Novara", "territory", "ciao.iva@gmail.com", "sonounapassword"); + + userRepository.insertOrUpdateClient(asd); + + //userRepository.insertOrUpdateClient("Ivan", "Donati", "Novara", "territory", "ciao.iva@gmail.com", "sonounapassword"); + + + } + +} From a49b76c931b129b24bc129a9a2b79175774ef781 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sat, 11 Jan 2020 18:24:01 +0100 Subject: [PATCH 03/25] Updated documentation --- doc/chapters/01_introduzione.tex | 36 +++++++++++++++++++++++++++----- doc/main.tex | 7 +++++++ 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/doc/chapters/01_introduzione.tex b/doc/chapters/01_introduzione.tex index 9f2d42d..eebc337 100644 --- a/doc/chapters/01_introduzione.tex +++ b/doc/chapters/01_introduzione.tex @@ -15,17 +15,43 @@ Salanti Michele - 793091 \newline Ivan Donati - 781022 +\section{Repository} + +Come da consegna per l'assignment è stato fatto uso dello strumento di file versioning git gestito da GitLab. Tutto il materiale definitivo del progetto è presente nel branch master del repository raggiungibile al seguente collegamento: + +\begin{center} +\url{https://gitlab.com/meliurwen/2019_assignment3_MiVan} +\end{center} + +La radice del branch raffigurata in basso presenta un'organizzazione semplice e minimale: +\newline +\dirtree{% + .1 . + .2 app/. + .2 doc/. + .2 .gitignore. + .2 README.md. + .2 assignment3\_mivan.pdf. +} + +\begin{itemize} + \item \textbf{app:} È la cartella che contiene il sorgente dell'applicazione. + \item \textbf{doc:} È la cartella che contiene il sorgente della documentazione scritta in \latex . + \item \textbf{assignment3\_mivan.pdf:} È la versione compilata in pdf della documentazione. +\end{itemize} + \section{Applicazione} L'applicazione oggetto di questo assigment è \textbf{MiVan}. \newline -Si tratta di un'applicazione che rende possibile prenotare ed acquisire biglietti per il cinema. Essa mette a disposizione informazioni sulla programmazione, orari, locandine e sinossi. Grazie alla connessione diretta ai sistemi di biglietteria è possibile visualizzzare la mappa dei posti con lo stato di occupazione in tempo reale e selezionare i posti preferiti dall'utente. L'iscrizione è obbligatoria per permettere la modifica e la cancellazione delle prenotazioni, servizio richiesto da molti utenti. +Si tratta di un'applicazione che gestisce prestiti di libri di un sistema bibliotecario con una o più sedi. Essa, oltre ad essere in grado di gestire i prestiti, è anche in grado di gestire i libri, la loro posizione, lo staff che amministra i prestiti e gli utenti che ne fanno richiesta. \newline -Allo stato attuale l'applicazione è stata pensata per essere utilizzata nell'area metropolitana di \underline{\textit{Brescia}} e \underline{\textit{Novara}}, con un \textit{\textbf{target iniziale}} ristretto agli utenti delle \textit{\textbf{principali sale di proiezione}} delle rispettive città. +Grazie a questa applicazione è possibile creare, visualizzzare, modificare e rimuovere in tempo reale lo stato di prestito dei libri. I prestiti sono descritti da una data di inizio, di fine, uno stato, un libro, un utente ed un operatore. Si ritiene che sia importante sottolineare che durante la progettazione si è presa la decisione che un prestito possa consistere in esattamente una unità di libro, in maniera tale che questo livello di granularità permetta all'utente, in caso di prestito contemporaneo di più libri, di non dover restituirli in blocco. \newline -A seconda della trazione che potrebbe ricevere una volta lanciata, si potrà valutare un'eventuale \textit{espansione} del territorio coperto e delle sale interessate. +Altra caratteristica è la separazione tra concetto di libro ed "unità di libro", questo per gestire in maniera efficiente il caso molto frequente in cui il sistema bibliotecario possieda più copie dello stesso libro; nella nostra implementazione ogni singola unità (Item) corrisponderebbe in maniera univoca all'unità fisica corrispondente. \newline +Una feature degna di nota (che andrebbe a soddisfare il requisito del self-loop) è la possibilità di sapere se nel sistema bibliotecario è disponibile il sequel (ammesso che esistano) di un determinato libro. \newline -Il qui presente documento ha lo scopo di stabilire i requisiti dell'utenza, del sistema e raccogliere informazioni utili e relativa ad eventuali evoluzioni. Questa documentazione è principalmente rivolta agli stakeholder e ai responsabili di sviluppo. +Allo stato attuale l'applicazione è stata pensata per essere utilizzata nell'area metropolitana di \underline{\textit{Brescia}} e \underline{\textit{Novara}}, con un \textit{\textbf{target iniziale}} ristretto agli utenti delle \textit{\textbf{sedi del sistema blibliotecario comunale}} delle rispettive città. \newline -\textbf{Link:} \url{https://gitlab.com/meliurwen/2019_assignment3_MiVan} +A seconda della trazione che potrebbe ricevere una volta lanciata, si potrà valutare un'eventuale \textit{espansione} del territorio coperto e degli enti (sia pubblici che privati) interessati. diff --git a/doc/main.tex b/doc/main.tex index 3bfdea1..4da847c 100644 --- a/doc/main.tex +++ b/doc/main.tex @@ -19,6 +19,13 @@ \usepackage{csquotes} \usepackage{framed,lipsum} +\usepackage{dirtree} + +\usepackage{xspace} + +\newcommand{\latex}{\LaTeX\xspace} + + \setcounter{secnumdepth}{6} \def\code#1{\texttt{#1}} From d37d2c7b9604e9bd68f4777dda9057bef09f7d5f Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sat, 11 Jan 2020 18:30:21 +0100 Subject: [PATCH 04/25] Aggiunta struttura al doc --- doc/chapters/02_progetto.tex | 1 + doc/chapters/03_esecuzione.tex | 1 + doc/main.tex | 5 +++++ 3 files changed, 7 insertions(+) create mode 100644 doc/chapters/02_progetto.tex create mode 100644 doc/chapters/03_esecuzione.tex diff --git a/doc/chapters/02_progetto.tex b/doc/chapters/02_progetto.tex new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/doc/chapters/02_progetto.tex @@ -0,0 +1 @@ + diff --git a/doc/chapters/03_esecuzione.tex b/doc/chapters/03_esecuzione.tex new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/doc/chapters/03_esecuzione.tex @@ -0,0 +1 @@ + diff --git a/doc/main.tex b/doc/main.tex index 4da847c..1219a27 100644 --- a/doc/main.tex +++ b/doc/main.tex @@ -58,6 +58,11 @@ \Large \input{chapters/01_introduzione} +\chapter{Progetto} +\input{chapters/02_progetto} + +\chapter{Esecuzione} +\input{chapters/03_esecuzione} \bibliographystyle{unsrt} \bibliography{bibliography.bib} From c1833ab0dc0233bf7a69faa2dae7f605fa10235e Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sat, 11 Jan 2020 19:33:08 +0100 Subject: [PATCH 05/25] Update execution requirements in docs --- doc/chapters/03_esecuzione.tex | 23 +++++++++++++++++++++++ doc/main.tex | 16 ++++++++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/doc/chapters/03_esecuzione.tex b/doc/chapters/03_esecuzione.tex index 8b13789..8dee77b 100644 --- a/doc/chapters/03_esecuzione.tex +++ b/doc/chapters/03_esecuzione.tex @@ -1 +1,24 @@ +\section{Requisiti} +L'applicazione è stata sviluppata, eseguita e testata su sistemi UNIX Like, in particolare sulla distribuzione GNU/Linux Debian.\newline +Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi.\newline +\newline +Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) ed \code{mvn}; in caso di Debian o derivate si usa il seguente comando: + +\begin{lstlisting}[style=BashInputStyle] + $ sudo apt-get install openjdk-8-jdk mvn +\end{lstlisting} + +In caso si volesse usare Docker allora le dipendenze sono docker-compose, ed ovviamente docker stesso. Compose è presente nella maggior parte delle repo delle distro, il problema è che non è sempre aggiornato, per cui si ovvierà a questo possibile problema per mezzo di pip.\newline +La serie di comandi è la seguente, in caso di distro diversa da Debian usare il relativo gestore di pacchetti in sostituzione ad apt: +\begin{lstlisting}[style=BashInputStyle] + $ sudo apt-get install docker-ce python3-pip + $ sudo pip3 install docker-compose +\end{lstlisting} + +\section{Test} + +\section{Avvio tramite linea di comando} + + +\section{Avvio tramite Docker} diff --git a/doc/main.tex b/doc/main.tex index 1219a27..3623621 100644 --- a/doc/main.tex +++ b/doc/main.tex @@ -20,7 +20,7 @@ \usepackage{framed,lipsum} \usepackage{dirtree} - +\usepackage{xcolor} \usepackage{xspace} \newcommand{\latex}{\LaTeX\xspace} @@ -31,6 +31,17 @@ \def\code#1{\texttt{#1}} +\lstdefinestyle{BashInputStyle}{ + language=bash, + basicstyle=\tt, + frame=tb, + columns=fullflexible, + backgroundcolor=\color{lightgray!20}, + linewidth=1.1\linewidth, + xleftmargin=0\linewidth +} + + % Indice e citazioni linkate \usepackage{hyperref} \hypersetup{ @@ -58,12 +69,13 @@ \Large \input{chapters/01_introduzione} -\chapter{Progetto} +\chapter{Implementazione} \input{chapters/02_progetto} \chapter{Esecuzione} \input{chapters/03_esecuzione} + \bibliographystyle{unsrt} \bibliography{bibliography.bib} From e76fa5882df3d6048337c5463d66d7694621250e Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sat, 11 Jan 2020 22:02:52 +0100 Subject: [PATCH 06/25] Updated doc chap Execution --- doc/chapters/03_esecuzione.tex | 48 +++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/doc/chapters/03_esecuzione.tex b/doc/chapters/03_esecuzione.tex index 8dee77b..c6e7c98 100644 --- a/doc/chapters/03_esecuzione.tex +++ b/doc/chapters/03_esecuzione.tex @@ -4,21 +4,67 @@ L'applicazione è stata sviluppata, eseguita e testata su sistemi UNIX Like, in Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi.\newline \newline Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) ed \code{mvn}; in caso di Debian o derivate si usa il seguente comando: - +\newline \begin{lstlisting}[style=BashInputStyle] $ sudo apt-get install openjdk-8-jdk mvn \end{lstlisting} In caso si volesse usare Docker allora le dipendenze sono docker-compose, ed ovviamente docker stesso. Compose è presente nella maggior parte delle repo delle distro, il problema è che non è sempre aggiornato, per cui si ovvierà a questo possibile problema per mezzo di pip.\newline La serie di comandi è la seguente, in caso di distro diversa da Debian usare il relativo gestore di pacchetti in sostituzione ad apt: +\newline \begin{lstlisting}[style=BashInputStyle] $ sudo apt-get install docker-ce python3-pip $ sudo pip3 install docker-compose \end{lstlisting} + \section{Test} +Per eseguire i test è necessario spostarsi all'interno della cartella del sorgente dell'applicazione e poi lanciare il relativo comando: +\newline +\begin{lstlisting}[style=BashInputStyle] + $ cd mivan + $ ./mvnw clean verify +\end{lstlisting} + + +\section{Build} + +L'operazione di build genera un file \code{.jar} all'interno della cartella di nome \code{target}, la quale se non è già presente verrà creata runtime.\newline +Per seguire la build è necessario spostarsi all'interno della cartella del sorgente dell'applicazione e poi lanciare il relativo comando: +\newline +\begin{lstlisting}[style=BashInputStyle] + $ cd mivan + $ ./mvnw clean package spring-boot:repackage +\end{lstlisting} + \section{Avvio tramite linea di comando} +L'avvio immediato dell'applicazione, utile durante lo sviluppo si esegue con un solo comando. Si ricorda che prima è necessario spostarsi all'interno della cartella del sorgente dell'applicazione: +\newline +\begin{lstlisting}[style=BashInputStyle] + $ cd mivan + $ ./mvnw spring-boot:run +\end{lstlisting} \section{Avvio tramite Docker} + +Per poter eseguire l'applicazione per mezzo di Docker container è necessario soddisfare i requisiti indicati all'inizio di questo capitolo. Il vantaggio di usare Docker è che semplifica notevolmente sia la fase di sviluppo che di deploy dell'applicazione, specialmente per l'ultimo punto che ne riduce in maniera sensibile sia il tempo che la complessità. + +\begin{quote} +\begin{center} +\textit{\textbf{Nota:} per poter utilizzare docker è necessario avere i privilegi di root od essere nel gruppo \code{docker}!} +\end{center} +\end{quote} + +Un comodo strumento di cui faremo uso per gestire i container è Compose, di cui, dato il file \code{.yaml} già compilato alla radice della repository eseguiamo il comando di build: +\newline +\begin{lstlisting}[style=BashInputStyle] + $ sudo docker-compose build +\end{lstlisting} + +E poi, una volta buildate le immagini dei container, le eseguiamo: +\newline +\begin{lstlisting}[style=BashInputStyle] + $ sudo docker-compose up +\end{lstlisting} From bed1c257499c89625b08c0e2a3c3e9515def11ac Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sun, 12 Jan 2020 02:03:32 +0100 Subject: [PATCH 07/25] Updated doc and logo --- README.md | 12 ++++-- assets/logo.svg | 66 ------------------------------- doc/chapters/01_introduzione.tex | 4 +- doc/chapters/02_progetto.tex | 40 +++++++++++++++++++ doc/chapters/03_esecuzione.tex | 1 - doc/img/logo.png | Bin 11007 -> 101242 bytes 6 files changed, 51 insertions(+), 72 deletions(-) delete mode 100644 assets/logo.svg diff --git a/README.md b/README.md index 00f9422..33652a8 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,17 @@ L'applicazione oggetto di questo assigment è **_MiVan_**. -Si tratta di un'applicazione che rende possibile _prenotare_ ed _acquisire_ biglietti per il cinema. Essa mette a disposizione informazioni sulla programmazione, orari, locandine e sinossi. Grazie alla connessione diretta ai sistemi di biglietteria è possibile visualizzzare la mappa dei posti con lo stato di occupazione in tempo reale e selezionare i posti preferiti dall'utente. L'iscrizione è obbligatoria per permettere la _modifica_ e la _cancellazione_ delle prenotazioni, servizio richiesto da molti utenti. +Si tratta di un'applicazione che gestisce _prestiti di libri_ di un sistema bibliotecario _con una o più sedi_. Essa, oltre ad essere in grado di gestire i prestiti, è anche in grado di _gestire i libri_, la loro _posizione_, lo _staff_ che amministra i prestiti e gli utenti che ne fanno richiesta. -Allo stato attuale l'applicazione è stata pensata per essere utilizzata nell'area metropolitana di _Brescia_ e _Novara_, con un target iniziale ristretto agli utenti delle principali sale di proiezione delle rispettive città. +Grazie a questa applicazione è possibile _creare_, _visualizzzare_, _modificare_ e _rimuovere_ in tempo reale lo stato di prestito dei libri. I prestiti sono descritti da una _data di inizio_, _di fine_, uno _stato_, un _libro_, un _utente_ ed un _operatore_. Si ritiene che sia importante sottolineare che durante la progettazione si è presa la decisione che un prestito possa consistere in _esattamente una unità di libro_, in maniera tale che questo livello di granularità permetta all'utente, in caso di prestito contemporaneo di più libri, di _non_ doverli restituire tutti in blocco. -A seconda della trazione che potrebbe ricevere una volta lanciata, si potrà valutare un'eventuale _espansione_ del territorio coperto e delle sale interessate. +Altra caratteristica è la separazione tra concetto di libro ed "unità di libro", questo per gestire in maniera efficiente il caso molto frequente in cui il sistema bibliotecario possieda più copie dello stesso libro; nella nostra implementazione ogni singola unità (Item) corrisponderebbe in maniera univoca all'unità fisica corrispondente. + +Una feature degna di nota (che andrebbe a soddisfare il requisito del self-loop) è la possibilità di sapere se nel sistema bibliotecario è disponibile il sequel (ammesso che esista) di un determinato libro. + +Allo stato attuale l'applicazione è stata pensata per essere utilizzata nell'area metropolitana di _Brescia_ e _Novara_, con un _target iniziale_ ristretto agli utenti delle _sedi del sistema blibliotecario comunale_ delle rispettive città. + +A seconda della trazione che potrebbe ricevere una volta lanciata, si potrà valutare un'eventuale _espansione_ del territorio coperto e degli enti (sia pubblici che privati) interessati. ## Membri del Gruppo diff --git a/assets/logo.svg b/assets/logo.svg deleted file mode 100644 index 5384441..0000000 --- a/assets/logo.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/doc/chapters/01_introduzione.tex b/doc/chapters/01_introduzione.tex index eebc337..8395fed 100644 --- a/doc/chapters/01_introduzione.tex +++ b/doc/chapters/01_introduzione.tex @@ -3,7 +3,7 @@ \begin{figure}[H] \centering \begin{subfigure}[b]{0.680\linewidth} - \includegraphics[width=\linewidth]{img/logo.png} + \includegraphics[width=\linewidth]{img/logo.png} \caption{Logo dell'applicazione} \end{subfigure} \label{fig:coffee} @@ -46,7 +46,7 @@ L'applicazione oggetto di questo assigment è \textbf{MiVan}. \newline Si tratta di un'applicazione che gestisce prestiti di libri di un sistema bibliotecario con una o più sedi. Essa, oltre ad essere in grado di gestire i prestiti, è anche in grado di gestire i libri, la loro posizione, lo staff che amministra i prestiti e gli utenti che ne fanno richiesta. \newline -Grazie a questa applicazione è possibile creare, visualizzzare, modificare e rimuovere in tempo reale lo stato di prestito dei libri. I prestiti sono descritti da una data di inizio, di fine, uno stato, un libro, un utente ed un operatore. Si ritiene che sia importante sottolineare che durante la progettazione si è presa la decisione che un prestito possa consistere in esattamente una unità di libro, in maniera tale che questo livello di granularità permetta all'utente, in caso di prestito contemporaneo di più libri, di non dover restituirli in blocco. +Grazie a questa applicazione è possibile creare, visualizzzare, modificare e rimuovere in tempo reale lo stato di prestito dei libri. I prestiti sono descritti da una data di inizio, di fine, uno stato, un libro, un utente ed un operatore. Si ritiene che sia importante sottolineare che durante la progettazione si è presa la decisione che un prestito possa consistere in esattamente una unità di libro, in maniera tale che questo livello di granularità permetta all'utente, in caso di prestito contemporaneo di più libri, di non doverli restituire tutti in blocco. \newline Altra caratteristica è la separazione tra concetto di libro ed "unità di libro", questo per gestire in maniera efficiente il caso molto frequente in cui il sistema bibliotecario possieda più copie dello stesso libro; nella nostra implementazione ogni singola unità (Item) corrisponderebbe in maniera univoca all'unità fisica corrispondente. \newline diff --git a/doc/chapters/02_progetto.tex b/doc/chapters/02_progetto.tex index 8b13789..e460030 100644 --- a/doc/chapters/02_progetto.tex +++ b/doc/chapters/02_progetto.tex @@ -1 +1,41 @@ +\section{Progettazione} +Nella fase iniziale di progettazione, invece che iniziare direttamente con la stesura di un diagramma UML delle Classi si è ritenuto più comodo sviluppare prima l'idea su carta disegnando un semplice diagramma ER (Entity Relationship). + +\begin{figure}[h!] + \centering + \includegraphics[scale=0.6]{img/logo.png} + \caption{Diagramma ER} + \label{fig:er} +\end{figure} + +Una volta stesa una bozza definitva e chiara sulle entità, relazioni e relativi attributi da definire si è passati a trasporre in una forma più dettagliata e più comoda per noi da tenere come riferimento, ossia un EER (Enhaced Entity Relationship) disegnato con il tool MySQL Workbench. + +\begin{figure}[h!] + \centering + \includegraphics[scale=0.6]{img/logo.png} + \caption{Diagramma EER} + \label{fig:eer} +\end{figure} + +\begin{figure}[h!] + \centering + \includegraphics[scale=0.6]{img/logo.png} + \caption{Diagramma delle Classi} + \label{fig:classi} +\end{figure} + +\section{Struttura} + +L'applicazione è strutturata in diversi package con ognuno funzionalità specifiche: + +\begin{itemize} + \item \textbf{com.mivan.model:} In questo package sono presenti tutte le entità del modello dati dell'applicazione, implementate in classi come mostrate in figura \ref{fig:classi}. Per gestire la persistenza dei dati di un database relazionere, per tali classi sono state utilizzate le annotazioni delle JPA (Java Persistence API). + \item \textbf{com.mivan.repository:} In questo package sono implementate le query per l'interrogazione al database. + \item \textbf{com.mivan.exception:} In questo package sono contenute le classi che gestiscono le eccezioni generate dalle interrogazioni al database. +\end{itemize} + +\section{Test} + +Per verificare l'effettivo funzionamento del programma sono stati sviluppati dei test d'integrazione, posizionati all'interno della cartella \code{mivan/src/test/java/}.\newline +Per i JUnit test volti a verificare la corretta esecuzione delle operazioni CRUD (Create, Read, Update, Delete) è stato fatto uso dell'engine H2, il quale consente di eseguire tali operazioni su un database temporaneo caricato in memoria (RAM). Tale approccio consente arginare del tutto il problema di intaccare il database persistente dai dati fittizzi dei test. diff --git a/doc/chapters/03_esecuzione.tex b/doc/chapters/03_esecuzione.tex index c6e7c98..4d0d702 100644 --- a/doc/chapters/03_esecuzione.tex +++ b/doc/chapters/03_esecuzione.tex @@ -2,7 +2,6 @@ L'applicazione è stata sviluppata, eseguita e testata su sistemi UNIX Like, in particolare sulla distribuzione GNU/Linux Debian.\newline Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi.\newline -\newline Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) ed \code{mvn}; in caso di Debian o derivate si usa il seguente comando: \newline \begin{lstlisting}[style=BashInputStyle] diff --git a/doc/img/logo.png b/doc/img/logo.png index c65420f29e826a283bb96af15fe09b321cac3b44..fb766e6b03a88f7ecee831baf9555bf3861fe5a7 100644 GIT binary patch literal 101242 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

#!(+pMqqjrpHv(x(if?Da#hHh8 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 Date: Sun, 12 Jan 2020 02:53:28 +0100 Subject: [PATCH 08/25] Dockerfile and docker-compose.yml --- Dockerfile | 17 +++++++++++++++++ doc/chapters/03_esecuzione.tex | 2 +- docker-compose.yml | 6 ++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f2ee30c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM openjdk:8-jdk-slim AS builder + +COPY multibook /usr/src/ + +WORKDIR /usr/src/multibook + +RUN apt-get update && apt-get install -y mvn && \ + ./mvnw clean package spring-boot:repackage + +FROM openjdk:8-jdk-slim AS app + +COPY --from=builder /usr/src/multibook/target/multibook.jar /usr/src/app.jar + +WORKDIR /usr/src + +ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] + diff --git a/doc/chapters/03_esecuzione.tex b/doc/chapters/03_esecuzione.tex index 4d0d702..815f107 100644 --- a/doc/chapters/03_esecuzione.tex +++ b/doc/chapters/03_esecuzione.tex @@ -56,7 +56,7 @@ Per poter eseguire l'applicazione per mezzo di Docker container è necessario so \end{center} \end{quote} -Un comodo strumento di cui faremo uso per gestire i container è Compose, di cui, dato il file \code{.yaml} già compilato alla radice della repository eseguiamo il comando di build: +Un comodo strumento di cui faremo uso per gestire i container è Compose, di cui, dato il file \code{.yml} già compilato alla radice della repository eseguiamo il comando di build: \newline \begin{lstlisting}[style=BashInputStyle] $ sudo docker-compose build diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ff87bae --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + build: . + environment: + TZ: 'Europe/Rome' From e08e2f54447d9104a2892f207ea5a1e5df35f999 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sun, 12 Jan 2020 03:48:55 +0100 Subject: [PATCH 09/25] Piccolo miglioramento alla doc ed aggiunta LICCENSE --- LICENSE | 22 ++++++++++++++++++++++ doc/chapters/03_esecuzione.tex | 8 +++----- 2 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d5e8f4b --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2020 Meliurwen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/doc/chapters/03_esecuzione.tex b/doc/chapters/03_esecuzione.tex index 815f107..74694c5 100644 --- a/doc/chapters/03_esecuzione.tex +++ b/doc/chapters/03_esecuzione.tex @@ -50,11 +50,9 @@ L'avvio immediato dell'applicazione, utile durante lo sviluppo si esegue con un Per poter eseguire l'applicazione per mezzo di Docker container è necessario soddisfare i requisiti indicati all'inizio di questo capitolo. Il vantaggio di usare Docker è che semplifica notevolmente sia la fase di sviluppo che di deploy dell'applicazione, specialmente per l'ultimo punto che ne riduce in maniera sensibile sia il tempo che la complessità. -\begin{quote} -\begin{center} -\textit{\textbf{Nota:} per poter utilizzare docker è necessario avere i privilegi di root od essere nel gruppo \code{docker}!} -\end{center} -\end{quote} +\begin{leftbar} + \noindent\textbf{Nota:}\newline Per poter utilizzare docker è necessario avere i privilegi di root od essere nel gruppo \code{docker}!. +\end{leftbar} Un comodo strumento di cui faremo uso per gestire i container è Compose, di cui, dato il file \code{.yml} già compilato alla radice della repository eseguiamo il comando di build: \newline From e9d766a54b054f2e7c6f775e30024ad4e94875ea Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sun, 12 Jan 2020 21:53:14 +0100 Subject: [PATCH 10/25] Huge refactoring --- .gitignore | 4 + mivan/.editorconfig | 14 ++ {multibook => mivan}/.gitignore | 0 .../.mvn/wrapper/MavenWrapperDownloader.java | 4 +- .../.mvn/wrapper/maven-wrapper.jar | Bin 50710 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 4 +- {multibook => mivan}/mvnw | 8 +- {multibook => mivan}/mvnw.cmd | 8 +- {multibook => mivan}/pom.xml | 36 ++-- mivan/src/main/java/mivan/Mivan.java | 37 +++++ mivan/src/main/java/mivan/model/Author.java | 74 +++++++++ mivan/src/main/java/mivan/model/Book.java | 93 +++++++++++ mivan/src/main/java/mivan/model/Location.java | 83 +++++++++ .../src/main/java/mivan}/model/Person.java | 17 +- mivan/src/main/java/mivan/model/Staff.java | 71 ++++++++ mivan/src/main/java/mivan/model/User.java | 90 ++++++++++ .../mivan/repository/AuthorRepository.java | 20 +++ .../repository/AuthorRepositoryImpl.java | 156 +++++++++++++++++ .../java/mivan/repository/BookRepository.java | 24 +++ .../mivan/repository/BookRepositoryImpl.java | 157 ++++++++++++++++++ .../mivan/repository/LocationRepository.java | 20 +++ .../repository/LocationRepositoryImpl.java | 114 +++++++++++++ .../java/mivan/repository/Repository.java | 8 + .../mivan/repository/StaffRepository.java | 21 +++ .../mivan/repository/StaffRepositoryImpl.java | 118 +++++++++++++ .../java/mivan/repository/UserRepository.java | 21 +++ .../mivan/repository/UserRepositoryImpl.java | 133 +++++++++++++++ .../main/resources/META-INF/persistence.xml | 27 +++ .../src/main/resources/application.properties | 2 + mivan/src/test/java/mivan/AuthorBookTest.java | 30 ++++ mivan/src/test/java/mivan/AuthorTest.java | 77 +++++++++ mivan/src/test/java/mivan/BookTest.java | 41 +++++ mivan/src/test/java/mivan/LocationTest.java | 116 +++++++++++++ mivan/src/test/java/mivan/StaffTest.java | 146 ++++++++++++++++ mivan/src/test/java/mivan/UserTest.java | 109 ++++++++++++ multibook/database.mv.db | Bin 32768 -> 0 bytes .../mivan/multibook/MultibookApplication.java | 13 -- .../multibook/controller/UserController.java | 24 --- .../disco/mivan/multibook/model/Author.java | 55 ------ .../disco/mivan/multibook/model/Book.java | 68 -------- .../disco/mivan/multibook/model/Item.java | 65 -------- .../disco/mivan/multibook/model/Loan.java | 101 ----------- .../disco/mivan/multibook/model/Location.java | 36 ---- .../disco/mivan/multibook/model/Staff.java | 26 --- .../disco/mivan/multibook/model/User.java | 67 -------- .../repository/PersonRepository.java | 17 -- .../multibook/repository/UserRepository.java | 19 --- .../mivan/multibook/service/UserService.java | 37 ----- .../src/main/resources/application.properties | 23 --- .../multibook/MultibookApplicationTests.java | 13 -- .../disco/mivan/multibook/UserTests.java | 33 ---- 51 files changed, 1855 insertions(+), 625 deletions(-) create mode 100644 mivan/.editorconfig rename {multibook => mivan}/.gitignore (100%) rename {multibook => mivan}/.mvn/wrapper/MavenWrapperDownloader.java (97%) rename {multibook => mivan}/.mvn/wrapper/maven-wrapper.jar (91%) rename {multibook => mivan}/.mvn/wrapper/maven-wrapper.properties (58%) rename {multibook => mivan}/mvnw (98%) rename {multibook => mivan}/mvnw.cmd (97%) rename {multibook => mivan}/pom.xml (56%) create mode 100644 mivan/src/main/java/mivan/Mivan.java create mode 100644 mivan/src/main/java/mivan/model/Author.java create mode 100644 mivan/src/main/java/mivan/model/Book.java create mode 100644 mivan/src/main/java/mivan/model/Location.java rename {multibook/src/main/java/com/unimib/disco/mivan/multibook => mivan/src/main/java/mivan}/model/Person.java (70%) create mode 100644 mivan/src/main/java/mivan/model/Staff.java create mode 100644 mivan/src/main/java/mivan/model/User.java create mode 100644 mivan/src/main/java/mivan/repository/AuthorRepository.java create mode 100644 mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java create mode 100644 mivan/src/main/java/mivan/repository/BookRepository.java create mode 100644 mivan/src/main/java/mivan/repository/BookRepositoryImpl.java create mode 100644 mivan/src/main/java/mivan/repository/LocationRepository.java create mode 100644 mivan/src/main/java/mivan/repository/LocationRepositoryImpl.java create mode 100644 mivan/src/main/java/mivan/repository/Repository.java create mode 100644 mivan/src/main/java/mivan/repository/StaffRepository.java create mode 100644 mivan/src/main/java/mivan/repository/StaffRepositoryImpl.java create mode 100644 mivan/src/main/java/mivan/repository/UserRepository.java create mode 100644 mivan/src/main/java/mivan/repository/UserRepositoryImpl.java create mode 100644 mivan/src/main/resources/META-INF/persistence.xml create mode 100644 mivan/src/main/resources/application.properties create mode 100644 mivan/src/test/java/mivan/AuthorBookTest.java create mode 100644 mivan/src/test/java/mivan/AuthorTest.java create mode 100644 mivan/src/test/java/mivan/BookTest.java create mode 100644 mivan/src/test/java/mivan/LocationTest.java create mode 100644 mivan/src/test/java/mivan/StaffTest.java create mode 100644 mivan/src/test/java/mivan/UserTest.java delete mode 100644 multibook/database.mv.db delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/MultibookApplication.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/controller/UserController.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Author.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Book.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Item.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Loan.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Location.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Staff.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/model/User.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/PersonRepository.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/UserRepository.java delete mode 100644 multibook/src/main/java/com/unimib/disco/mivan/multibook/service/UserService.java delete mode 100644 multibook/src/main/resources/application.properties delete mode 100644 multibook/src/test/java/com/unimib/disco/mivan/multibook/MultibookApplicationTests.java delete mode 100644 multibook/src/test/java/com/unimib/disco/mivan/multibook/UserTests.java diff --git a/.gitignore b/.gitignore index df19b1b..0c01375 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,7 @@ *.bib~ *.pdf + + +mivan/target +mivan/bin diff --git a/mivan/.editorconfig b/mivan/.editorconfig new file mode 100644 index 0000000..2eccc8b --- /dev/null +++ b/mivan/.editorconfig @@ -0,0 +1,14 @@ +# http://editorconfig.org + +root = true + +[*] +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true +end_of_line = lf +charset = utf-8 + +[*.{yml,yaml,json}] +insert_final_newline = false diff --git a/multibook/.gitignore b/mivan/.gitignore similarity index 100% rename from multibook/.gitignore rename to mivan/.gitignore diff --git a/multibook/.mvn/wrapper/MavenWrapperDownloader.java b/mivan/.mvn/wrapper/MavenWrapperDownloader.java similarity index 97% rename from multibook/.mvn/wrapper/MavenWrapperDownloader.java rename to mivan/.mvn/wrapper/MavenWrapperDownloader.java index e76d1f3..2281075 100644 --- a/multibook/.mvn/wrapper/MavenWrapperDownloader.java +++ b/mivan/.mvn/wrapper/MavenWrapperDownloader.java @@ -1,5 +1,5 @@ /* - * Copyright 2007-present the original author or authors. + * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ import java.util.Properties; public class MavenWrapperDownloader { - private static final String WRAPPER_VERSION = "0.5.6"; + private static final String WRAPPER_VERSION = "0.5.5"; /** * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. */ diff --git a/multibook/.mvn/wrapper/maven-wrapper.jar b/mivan/.mvn/wrapper/maven-wrapper.jar similarity index 91% rename from multibook/.mvn/wrapper/maven-wrapper.jar rename to mivan/.mvn/wrapper/maven-wrapper.jar index 2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054..0d5e649888a4843c1520054d9672f80c62ebbb48 100644 GIT binary patch delta 3147 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 delta 3148 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 diff --git a/multibook/.mvn/wrapper/maven-wrapper.properties b/mivan/.mvn/wrapper/maven-wrapper.properties similarity index 58% rename from multibook/.mvn/wrapper/maven-wrapper.properties rename to mivan/.mvn/wrapper/maven-wrapper.properties index 642d572..7d59a01 100644 --- a/multibook/.mvn/wrapper/maven-wrapper.properties +++ b/mivan/.mvn/wrapper/maven-wrapper.properties @@ -1,2 +1,2 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar diff --git a/multibook/mvnw b/mivan/mvnw similarity index 98% rename from multibook/mvnw rename to mivan/mvnw index a16b543..21d3ee8 100755 --- a/multibook/mvnw +++ b/mivan/mvnw @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- -# Maven Start Up Batch script +# Maven2 Start Up Batch script # # Required ENV vars: # ------------------ @@ -212,9 +212,9 @@ else echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." fi if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" else - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" fi while IFS="=" read key value; do case "$key" in (wrapperUrl) jarUrl="$value"; break ;; @@ -246,7 +246,7 @@ else 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" diff --git a/multibook/mvnw.cmd b/mivan/mvnw.cmd similarity index 97% rename from multibook/mvnw.cmd rename to mivan/mvnw.cmd index c8d4337..84d60ab 100644 --- a/multibook/mvnw.cmd +++ b/mivan/mvnw.cmd @@ -18,7 +18,7 @@ @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script +@REM Maven2 Start Up Batch script @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @@ -26,7 +26,7 @@ @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_BATCH_PAUSE - set to 'on' to wait for a key stroke 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 @@ -120,7 +120,7 @@ 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/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B @@ -134,7 +134,7 @@ if exist %WRAPPER_JAR% ( ) ) else ( if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" ) if "%MVNW_VERBOSE%" == "true" ( echo Couldn't find %WRAPPER_JAR%, downloading it ... diff --git a/multibook/pom.xml b/mivan/pom.xml similarity index 56% rename from multibook/pom.xml rename to mivan/pom.xml index 4160597..4b75c2b 100644 --- a/multibook/pom.xml +++ b/mivan/pom.xml @@ -1,35 +1,43 @@ - 4.0.0 org.springframework.boot spring-boot-starter-parent - 2.2.2.RELEASE - + 2.2.1.RELEASE + - com.unimib.disco.mivan - multibook + mivan 0.0.1-SNAPSHOT - multibook - Project for book loan + mivan + Spring MVC and Hibernate project + UTF-8 + UTF-8 1.8 org.springframework.boot - spring-boot-starter-data-jpa + spring-boot-starter-thymeleaf - org.springframework.boot - spring-boot-devtools - runtime - true + spring-boot-starter-web + + org.hibernate + hibernate-core + + + org.hibernate + hibernate-entitymanager + + com.h2database h2 @@ -53,6 +61,10 @@ org.springframework.boot spring-boot-maven-plugin + + true + ${project.artifactId} + diff --git a/mivan/src/main/java/mivan/Mivan.java b/mivan/src/main/java/mivan/Mivan.java new file mode 100644 index 0000000..f8b851a --- /dev/null +++ b/mivan/src/main/java/mivan/Mivan.java @@ -0,0 +1,37 @@ +package mivan; + +import java.io.Console; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +import mivan.model.User; +import mivan.repository.UserRepository; +import mivan.repository.UserRepositoryImpl; + +@SpringBootApplication +public class Mivan { + + public static void main(String[] args) { + + String firstName = "Paolo"; + String lastName = "Verdi"; + String city = "Milano"; + String username = "p.verdi1"; + String email = "p.verdi1@campus.unimib.it"; + String password = "pverdipassword"; + + User user = new User(firstName, lastName, city, username, email, password); + + + UserRepository userRepository = new UserRepositoryImpl(); + userRepository.addUser(user); + + int size = userRepository.getSize(); + + System.out.print(size); + + SpringApplication.run(Mivan.class, args); + } + +} diff --git a/mivan/src/main/java/mivan/model/Author.java b/mivan/src/main/java/mivan/model/Author.java new file mode 100644 index 0000000..3df1f6d --- /dev/null +++ b/mivan/src/main/java/mivan/model/Author.java @@ -0,0 +1,74 @@ +package mivan.model; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "author") +public class Author implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", unique = true) + private long id; + + @Column(name = "name", nullable=false) + + private String name; + + @ManyToMany(mappedBy="authors") + private List books; + + public Author() {} + public Author(String name) { + super(); + this.name = name; + this.books = new ArrayList (); + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getBooks() { + return this.books; + } + + public void addBook(Book book) { + if (!this.books.contains(book)) { + this.books.add(book); + book.addAuthor(this); + } + } + + public void removeBook(Book book) { + if (this.books.contains(book)) + this.books.remove(book); + book.removeAuthor(this); + } + + +} diff --git a/mivan/src/main/java/mivan/model/Book.java b/mivan/src/main/java/mivan/model/Book.java new file mode 100644 index 0000000..3c75b49 --- /dev/null +++ b/mivan/src/main/java/mivan/model/Book.java @@ -0,0 +1,93 @@ +package mivan.model; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinTable; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToMany; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "book") +public class Book implements Serializable { + + private static final long serialVersionUID = -5124436115031696628L; + + @Id + @Column(name = "isbn", nullable=false) + private int isbn; + + @Column(name = "title", nullable=false) + private String title; + + @OneToOne + private Book prequel; + + @ManyToMany + @JoinTable( + name = "book_has_author", + joinColumns=@JoinColumn(name="isbn", referencedColumnName="isbn"), + inverseJoinColumns=@JoinColumn(name="id", referencedColumnName="id") ) + private List authors; + + public Book() { + } + + public Book(int isbn, String title, Book prequel) { + this.isbn = isbn; + this.title = title; + this.prequel = prequel; + this.authors = new ArrayList(); + } + + public int getIsbn() { + return isbn; + } + + public String getTitolo() { + return title; + } + + public Book getPrequel() { + return prequel; + } + + public void setIsbn(int isbn) { + this.isbn = isbn; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setPrequel(Book prequel) { + this.prequel = prequel; + } + + public List getAuthors() { + return this.authors; + } + + public void addAuthor(Author author) { + + if (!this.authors.contains(author)) { + this.authors.add(author); + author.addBook(this); + } + } + + public void removeAuthor(Author author) { + if (this.authors.contains(author)) { + this.authors.remove(author); + author.removeBook(this); + } + + } + +} diff --git a/mivan/src/main/java/mivan/model/Location.java b/mivan/src/main/java/mivan/model/Location.java new file mode 100644 index 0000000..58246d9 --- /dev/null +++ b/mivan/src/main/java/mivan/model/Location.java @@ -0,0 +1,83 @@ +package mivan.model; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "location") +public class Location implements Serializable { + + private static final long serialVersionUID = -5124436115031696628L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", unique = true) + private Long id; + + @Column(name = "name", nullable = false, unique = true) + private String name; + + @Column(name = "adress", nullable = false) + private String adress; + + @OneToMany(mappedBy = "location") + private List staffs; + + protected Location() { + } + + public Location(String name, String adress) { + this.name = name; + this.adress = adress; + this.staffs = new ArrayList(); + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getAdress() { + return adress; + } + + public List getStaffs() { + return staffs; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setAdress(String adress) { + this.adress = adress; + } + + public void setStaffs(List staffs) { + this.staffs = staffs; + } + + public void addStaff(Staff staff) { + this.staffs.add(staff); + if (staff.getLocation() != this) { + staff.setLocation(this); + } + } + +} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Person.java b/mivan/src/main/java/mivan/model/Person.java similarity index 70% rename from multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Person.java rename to mivan/src/main/java/mivan/model/Person.java index 7dd3068..9c9d46a 100644 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Person.java +++ b/mivan/src/main/java/mivan/model/Person.java @@ -1,15 +1,19 @@ -package com.unimib.disco.mivan.multibook.model; +package mivan.model; +import java.io.Serializable; import javax.persistence.*; @MappedSuperclass -public class Person { +public class Person implements Serializable { + private static final long serialVersionUID = -5124436115031696628L; + + @Id - @Column(name = "id", nullable=false) - @GeneratedValue(strategy = GenerationType.AUTO) + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", unique = true) private long id; @Column(name = "firstName", nullable=false) @@ -63,6 +67,11 @@ public class Person { this.city = city; } + @Override + public String toString() { + return "Person [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", city=" + city + "]"; + } + } diff --git a/mivan/src/main/java/mivan/model/Staff.java b/mivan/src/main/java/mivan/model/Staff.java new file mode 100644 index 0000000..cbec79c --- /dev/null +++ b/mivan/src/main/java/mivan/model/Staff.java @@ -0,0 +1,71 @@ +package mivan.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "staff") +public class Staff extends Person { + + private static final long serialVersionUID = -5124436115031696628L; + + @Column(name = "idka", nullable = false, unique = true) + private String idka; + + @Column(name = "ruolo", nullable = false) + private String ruolo; + + @ManyToOne + @JoinColumn(name = "location_id", referencedColumnName = "id") + private Location location; + + public Staff() { + super(); + // TODO Auto-generated constructor stub + } + + public Staff(String firstName, String lastName, String city, String idka, String ruolo, Location location) { + super(firstName, lastName, city); + this.idka = idka; + this.ruolo = ruolo; + setLocation(location); + } + + public Staff(String firstName, String lastName, String city, String idka, String ruolo) { + super(firstName, lastName, city); + this.idka = idka; + this.ruolo = ruolo; + + } + + public String getIdka() { + return idka; + } + + public String getRuolo() { + return ruolo; + } + + public Location getLocation() { + return location; + } + + public void setIdka(String idka) { + this.idka = idka; + } + + public void setRuolo(String ruolo) { + this.ruolo = ruolo; + } + + public void setLocation(Location location) { + this.location = location; + if (!location.getStaffs().contains(this)) { + location.getStaffs().add(this); + } + } + +} diff --git a/mivan/src/main/java/mivan/model/User.java b/mivan/src/main/java/mivan/model/User.java new file mode 100644 index 0000000..3b4bdec --- /dev/null +++ b/mivan/src/main/java/mivan/model/User.java @@ -0,0 +1,90 @@ +package mivan.model; + + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +@Entity +@Table(name = "user") +public class User extends Person { + + private static final long serialVersionUID = -5124436115031696628L; + + @Column(name = "username", nullable=false,unique=true) + private String username; + + @Column(name = "email", nullable=false,unique=true) + private String email; + + @Column(name = "password", nullable=false) + private String password; + + + protected User() { + } + + + +public User(String firstName, String lastName, String city,String username, String email, String password) { + super(firstName,lastName,city); + this.username = username; + this.email = email; + this.password = password; +} + + + +public String getUsername() { + return username; +} + + + +public void setUsername(String username) { + this.username = username; +} + + + +public String getEmail() { + return email; +} + + + +public void setEmail(String email) { + this.email = email; +} + + + +public String getPassword() { + return password; +} + + + +public void setPassword(String password) { + this.password = password; +} + + + +public static long getSerialversionuid() { + return serialVersionUID; +} + + + +@Override +public String toString() { + return "User [username=" + username + ", email=" + email + ", password=" + password + "]"; +} + + + + + + +} diff --git a/mivan/src/main/java/mivan/repository/AuthorRepository.java b/mivan/src/main/java/mivan/repository/AuthorRepository.java new file mode 100644 index 0000000..ab2b72a --- /dev/null +++ b/mivan/src/main/java/mivan/repository/AuthorRepository.java @@ -0,0 +1,20 @@ +package mivan.repository; + +import mivan.model.Author; + +public interface AuthorRepository extends Repository { + + public void deleteAuthorById(Long id); + + public void addAuthor(Author author); + + public void updateAuthor(Long id, String name); + + public Author searchAuthorByName(String name); + + public void addBook(int isbn, long id); + + public void removeBook(int isbn, long id); + + public int getSize(); +} diff --git a/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java b/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java new file mode 100644 index 0000000..0e5086a --- /dev/null +++ b/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java @@ -0,0 +1,156 @@ +package mivan.repository; + +import java.util.List; +import java.util.Optional; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +import mivan.model.Author; +import mivan.model.Book; + +public class AuthorRepositoryImpl implements AuthorRepository { + + private EntityManagerFactory entityManagerFactory; + + public AuthorRepositoryImpl() { + this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); + } + + @Override + public Optional findById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + Author author = entityManager.find(Author.class, id); + entityManager.close(); + return Optional.ofNullable(author); + } + + @Override + public Iterable findAll() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + List author = entityManager.createQuery("FROM Author", Author.class).getResultList(); + entityManager.close(); + return author; + } + + @Override + public void deleteAuthorById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Author author = entityManager.find(Author.class, id); + entityManager.remove(author); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public void addAuthor(Author author) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + entityManager.persist(author); + entityManager.getTransaction().commit(); + entityManager.close(); + + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public void updateAuthor(Long id, String name) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Author author = entityManager.find(Author.class, id); + author.setName(name); + entityManager.persist(author); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public Author searchAuthorByName(String name) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + + Author author = null; + try { + author = (Author) entityManager.createQuery("FROM Author u WHERE lower(u.name) = '" + name.toLowerCase() + "'") + .getSingleResult(); + + entityManager.close(); + } catch (Exception ex) { + author = null; + } + + return author; + } + + @Override + public int getSize() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + int size = 0; + try { + size = entityManager.createQuery("FROM Author").getResultList().size(); + + entityManager.close(); + } catch (Exception ex) { + size = 0; + } + return size; + } + + @Override + public void addBook(int isbn, long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Book book = entityManager.find(Book.class, isbn); + Author author = entityManager.find(Author.class, id); + book.addAuthor(author); + entityManager.persist(book); + entityManager.persist(author); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public void removeBook(int isbn, long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Book book = entityManager.find(Book.class, isbn); + Author author = entityManager.find(Author.class, id); + book.removeAuthor(author); + entityManager.persist(book); + entityManager.persist(author); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + +} diff --git a/mivan/src/main/java/mivan/repository/BookRepository.java b/mivan/src/main/java/mivan/repository/BookRepository.java new file mode 100644 index 0000000..63f0465 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/BookRepository.java @@ -0,0 +1,24 @@ +package mivan.repository; + +import mivan.model.Author; +import mivan.model.Book; + +public interface BookRepository extends Repository{ + + //public Optional findUserAddressById(Long id); + + public void deleteBookById(int isbn); + + public void addBook(Book book); + + public void updateBook(int isbn, String title, Book prequel); + + public Book searchBookByTitle(String title); + + public void addAuthor(int isbn, long id); + + public void removeAuthor(int isbn, long id); + + public int getSize(); +} + diff --git a/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java b/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java new file mode 100644 index 0000000..72cd1b7 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java @@ -0,0 +1,157 @@ +package mivan.repository; + +import java.util.List; +import java.util.Optional; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; + +import mivan.model.Author; +import mivan.model.Book; + +public class BookRepositoryImpl implements BookRepository { + + private EntityManagerFactory entityManagerFactory; + + @Override + public Optional findById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + Book book = entityManager.find(Book.class, id); + entityManager.close(); + return Optional.ofNullable(book); + } + + @Override + public Iterable findAll() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + List book = entityManager.createQuery("FROM Book", Book.class).getResultList(); + entityManager.close(); + return book; + } + + @Override + public void deleteBookById(int isbn) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Book book = entityManager.find(Book.class, isbn); + entityManager.remove(book); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public void addBook(Book book) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + entityManager.persist(book); + entityManager.getTransaction().commit(); + entityManager.close(); + + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public void updateBook(int isbn, String title, Book prequel) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Book book = entityManager.find(Book.class, isbn); + book.setTitle(title); + entityManager.persist(book); + if (prequel != null) { + book.setPrequel(prequel); + } + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public Book searchBookByTitle(String title) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + + Book book = null; + try { + book = (Book) entityManager.createQuery("FROM Book u WHERE lower(u.title) = '" + title.toLowerCase() + "'") + .getSingleResult(); + + entityManager.close(); + } catch (Exception ex) { + book = null; + } + + return book; + } + + @Override + public int getSize() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + int size = 0; + try { + size = entityManager.createQuery("FROM Book").getResultList().size(); + + entityManager.close(); + } catch (Exception ex) { + size = 0; + } + return size; + } + + + + @Override + public void addAuthor(int isbn, long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Book book = entityManager.find(Book.class, isbn); + Author author = entityManager.find(Author.class, id); + book.addAuthor(author); + entityManager.persist(book); + entityManager.persist(author); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public void removeAuthor(int isbn, long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Book book = entityManager.find(Book.class, isbn); + Author author = entityManager.find(Author.class, id); + book.removeAuthor(author); + entityManager.persist(book); + entityManager.persist(author); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + + +} diff --git a/mivan/src/main/java/mivan/repository/LocationRepository.java b/mivan/src/main/java/mivan/repository/LocationRepository.java new file mode 100644 index 0000000..2980213 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/LocationRepository.java @@ -0,0 +1,20 @@ +package mivan.repository; + +import java.util.List; + +import mivan.model.Location; +import mivan.model.Staff; + +public interface LocationRepository extends Repository { + + public void deleteLocationById(Long id); + + public void addLocation(Location user); + + public void updateLocation(Long id, String name, String adress, List staffs); + + public Location searchLocationByName(String name); + + public int getSize(); + +} diff --git a/mivan/src/main/java/mivan/repository/LocationRepositoryImpl.java b/mivan/src/main/java/mivan/repository/LocationRepositoryImpl.java new file mode 100644 index 0000000..a60cadc --- /dev/null +++ b/mivan/src/main/java/mivan/repository/LocationRepositoryImpl.java @@ -0,0 +1,114 @@ +package mivan.repository; + +import java.util.List; +import java.util.Optional; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +import mivan.model.Location; +import mivan.model.Staff; + +public class LocationRepositoryImpl implements LocationRepository { + + private EntityManagerFactory entityManagerFactory; + + public LocationRepositoryImpl() { + this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); + } + + @Override + public Optional findById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + Location location = entityManager.find(Location.class, id); + entityManager.close(); + return Optional.ofNullable(location); + } + + @Override + public Iterable findAll() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + List location = entityManager.createQuery("FROM Location", Location.class).getResultList(); + entityManager.close(); + return location; + } + + public void deleteLocationById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Location location = entityManager.find(Location.class, id); + entityManager.remove(location); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + public void addLocation(Location location) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + entityManager.persist(location); + entityManager.getTransaction().commit(); + entityManager.close(); + + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + public void updateLocation(Long id, String name, String adress, List staffs) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Location location = entityManager.find(Location.class, id); + location.setName(name); + location.setAdress(adress); + location.setStaffs(staffs); + entityManager.persist(location); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + public Location searchLocationByName(String name) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + + Location location = null; + try { + location = (Location) entityManager + .createQuery("FROM Location u WHERE lower(u.name) = '" + name.toLowerCase() + "'") + .getSingleResult(); + + entityManager.close(); + } catch (Exception ex) { + location = null; + } + + return location; + } + + public int getSize() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + int size = 0; + try { + size = entityManager.createQuery("FROM Location").getResultList().size(); + + entityManager.close(); + } catch (Exception ex) { + size = 0; + } + return size; + } +} diff --git a/mivan/src/main/java/mivan/repository/Repository.java b/mivan/src/main/java/mivan/repository/Repository.java new file mode 100644 index 0000000..8c14a0f --- /dev/null +++ b/mivan/src/main/java/mivan/repository/Repository.java @@ -0,0 +1,8 @@ +package mivan.repository; + +import java.util.Optional; + +public interface Repository { + Optional findById(ID id); + Iterable findAll(); +} diff --git a/mivan/src/main/java/mivan/repository/StaffRepository.java b/mivan/src/main/java/mivan/repository/StaffRepository.java new file mode 100644 index 0000000..651b5c6 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/StaffRepository.java @@ -0,0 +1,21 @@ +package mivan.repository; + +import mivan.model.Location; +import mivan.model.Staff; + + +public interface StaffRepository extends Repository{ + + public void deleteStaffById(Long id); + + public void addStaff(Staff user); + + public void updateStaff(Long id, String firstname, String lastname, String city, String idka, String ruolo, Location location); + + public Staff searchStaffByidka(String idka); + + //public List searchStaffByRole(String role); + + + public int getSize(); +} diff --git a/mivan/src/main/java/mivan/repository/StaffRepositoryImpl.java b/mivan/src/main/java/mivan/repository/StaffRepositoryImpl.java new file mode 100644 index 0000000..ae8df0c --- /dev/null +++ b/mivan/src/main/java/mivan/repository/StaffRepositoryImpl.java @@ -0,0 +1,118 @@ +package mivan.repository; + +import java.util.List; +import java.util.Optional; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +import mivan.model.Location; +import mivan.model.Staff; + +public class StaffRepositoryImpl implements StaffRepository{ + + private EntityManagerFactory entityManagerFactory; + + public StaffRepositoryImpl() { + this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); + } + + @Override + public Optional findById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + Staff staff = entityManager.find(Staff.class, id); + entityManager.close(); + return Optional.ofNullable(staff); + } + + + @Override + public Iterable findAll() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + List staffs = entityManager.createQuery("FROM Staff", Staff.class).getResultList(); + entityManager.close(); + return staffs; + } + + public void deleteStaffById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Staff staff = entityManager.find(Staff.class, id); + entityManager.remove(staff); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + public void addStaff(Staff staff) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + entityManager.persist(staff); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + + public void updateStaff(Long id, String firstname, String lastname, String city,String idka,String ruolo,Location location) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Staff staff = entityManager.find(Staff.class, id); + staff.setFirstName(firstname); + staff.setLastName(lastname); + staff.setCity(city); + staff.setIdka(idka); + staff.setRuolo(ruolo); + staff.setLocation(location); + + entityManager.persist(staff); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + public Staff searchStaffByidka(String idka) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + + Staff staff = null; + try { + staff = (Staff) entityManager.createQuery("FROM Staff u WHERE lower(u.idka) = '" + idka.toLowerCase() + "'") + .getSingleResult(); + + entityManager.close(); + } catch (Exception ex) { + staff = null; + } + + return staff; + } + + public int getSize() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + int size = 0; + try { + size = entityManager.createQuery("FROM Staff").getResultList().size(); + + entityManager.close(); + } catch (Exception ex) { + size = 0; + } + return size; + } +} diff --git a/mivan/src/main/java/mivan/repository/UserRepository.java b/mivan/src/main/java/mivan/repository/UserRepository.java new file mode 100644 index 0000000..f040321 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/UserRepository.java @@ -0,0 +1,21 @@ +package mivan.repository; + +import mivan.model.User; + +public interface UserRepository extends Repository{ + + //public Optional findUserAddressById(Long id); + + public void deleteUserById(Long id); + + public void addUser(User user); + + public void updateUser(Long id, String firstname, String lastname, String city,String username, String email, String password); + + public User searchUserByName(String username); + + public User searchUserByEmail(String email); + + + public int getSize(); +} diff --git a/mivan/src/main/java/mivan/repository/UserRepositoryImpl.java b/mivan/src/main/java/mivan/repository/UserRepositoryImpl.java new file mode 100644 index 0000000..6ce5cd8 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/UserRepositoryImpl.java @@ -0,0 +1,133 @@ +package mivan.repository; + +import java.util.List; +import java.util.Optional; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + + +import mivan.model.User; + +public class UserRepositoryImpl implements UserRepository { + + private EntityManagerFactory entityManagerFactory; + + public UserRepositoryImpl() { + this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); + } + + @Override + public Optional findById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + User user = entityManager.find(User.class, id); + entityManager.close(); + return Optional.ofNullable(user); + } + + @Override + public Iterable findAll() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + List users = entityManager.createQuery("FROM User", User.class).getResultList(); + entityManager.close(); + return users; + } + + public void deleteUserById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + User user = entityManager.find(User.class, id); + entityManager.remove(user); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + public void addUser(User user) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + entityManager.persist(user); + entityManager.getTransaction().commit(); + entityManager.close(); + + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + + public void updateUser(Long id, String firstname, String lastname, String city,String username, String email, String password) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + User user = entityManager.find(User.class, id); + user.setFirstName(firstname); + user.setLastName(lastname); + user.setCity(city); + user.setUsername(username); + user.setEmail(email); + user.setPassword(password); + entityManager.persist(user); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + public User searchUserByName(String username) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + + User user = null; + try { + user = (User) entityManager.createQuery("FROM User u WHERE lower(u.username) = '" + username.toLowerCase() + "'") + .getSingleResult(); + + entityManager.close(); + } catch (Exception ex) { + user = null; + } + + return user; + } + + public User searchUserByEmail(String email) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + + User user = null; + try { + user = (User) entityManager.createQuery("FROM User u WHERE lower(u.email) = '" + email.toLowerCase() + "'") + .getSingleResult(); + + entityManager.close(); + } catch (Exception ex) { + user = null; + } + + return user; + } + + public int getSize() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + int size = 0; + try { + size = entityManager.createQuery("FROM User").getResultList().size(); + + entityManager.close(); + } catch (Exception ex) { + size = 0; + } + return size; + } +} diff --git a/mivan/src/main/resources/META-INF/persistence.xml b/mivan/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..fec0853 --- /dev/null +++ b/mivan/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,27 @@ + + + org.hibernate.jpa.HibernatePersistenceProvider + + + + + + + + + + + + + + + diff --git a/mivan/src/main/resources/application.properties b/mivan/src/main/resources/application.properties new file mode 100644 index 0000000..a860a0d --- /dev/null +++ b/mivan/src/main/resources/application.properties @@ -0,0 +1,2 @@ +spring.application.name=Mivan +spring.datasource.url=jdbc:h2:file:./data/demo \ No newline at end of file diff --git a/mivan/src/test/java/mivan/AuthorBookTest.java b/mivan/src/test/java/mivan/AuthorBookTest.java new file mode 100644 index 0000000..3500557 --- /dev/null +++ b/mivan/src/test/java/mivan/AuthorBookTest.java @@ -0,0 +1,30 @@ +package mivan; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Optional; + +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; + +import mivan.model.Author; +import mivan.repository.AuthorRepository; +import mivan.repository.AuthorRepositoryImpl; +import mivan.repository.BookRepository; +import mivan.repository.BookRepositoryImpl; + +@TestMethodOrder(OrderAnnotation.class) +public class AuthorBookTest { + + private AuthorRepository authorRepository = new AuthorRepositoryImpl(); + + private BookRepository bookRepository = new BookRepositoryImpl(); + + + + + + +} diff --git a/mivan/src/test/java/mivan/AuthorTest.java b/mivan/src/test/java/mivan/AuthorTest.java new file mode 100644 index 0000000..197309a --- /dev/null +++ b/mivan/src/test/java/mivan/AuthorTest.java @@ -0,0 +1,77 @@ +package mivan; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Optional; + +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; + +import mivan.model.Author; +import mivan.repository.AuthorRepository; +import mivan.repository.AuthorRepositoryImpl; + +@TestMethodOrder(OrderAnnotation.class) +public class AuthorTest { + + private AuthorRepository authorRepository = new AuthorRepositoryImpl(); + + + @Test + @Order(1) + void testAddAuthor() { + + + String name = "Ivan"; + + Author author = new Author(name); + + authorRepository.addAuthor(author); + + int size = authorRepository.getSize(); + + + assertEquals(size, 1); + } + + @Test + @Order(2) + void testUpdateAuthor() { + + String name = "Ivan"; + + Author author = new Author(name); + + authorRepository.addAuthor(author); + + String updatedName ="Javoso"; + + authorRepository.updateAuthor(author.getId(), updatedName); + Optional updated_author = authorRepository.findById(author.getId()); + updated_author.ifPresent(a -> {assertEquals(a.getName(), updatedName);}); + + } + + @Test + @Order(3) + void testDeleteUser() { + String name = "ivan"; + + Author author = new Author(name); + + authorRepository.addAuthor(author); + + Author editAuthor = authorRepository.searchAuthorByName(name); + + long ID = editAuthor.getId(); + + authorRepository.deleteAuthorById(ID); + + int size = authorRepository.getSize(); + assertEquals(size, 0); + } + + +} diff --git a/mivan/src/test/java/mivan/BookTest.java b/mivan/src/test/java/mivan/BookTest.java new file mode 100644 index 0000000..c127605 --- /dev/null +++ b/mivan/src/test/java/mivan/BookTest.java @@ -0,0 +1,41 @@ +package mivan; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; + +import mivan.model.Author; +import mivan.model.Book; +import mivan.model.User; +import mivan.repository.BookRepository; +import mivan.repository.BookRepositoryImpl; + +public class BookTest { + + + private BookRepository bookRepository = new BookRepositoryImpl(); + + + @Test + @Order(1) + void testAddBook() { + + int isbn = 1234; + String title = "illiade"; + Book prequel = null; + + Book book = new Book(isbn, title, prequel); + + bookRepository.addBook(book); + + int size = bookRepository.getSize(); + + + assertEquals(size, 1); + + } + + + +} diff --git a/mivan/src/test/java/mivan/LocationTest.java b/mivan/src/test/java/mivan/LocationTest.java new file mode 100644 index 0000000..4202fa8 --- /dev/null +++ b/mivan/src/test/java/mivan/LocationTest.java @@ -0,0 +1,116 @@ +package mivan; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; + +import mivan.model.Location; +import mivan.model.Staff; +import mivan.repository.LocationRepository; +import mivan.repository.LocationRepositoryImpl; +import mivan.repository.StaffRepository; +import mivan.repository.StaffRepositoryImpl; + +@TestMethodOrder(OrderAnnotation.class) +public class LocationTest { + + private StaffRepository staffRepository = new StaffRepositoryImpl(); + private LocationRepository locationRepository = new LocationRepositoryImpl(); + + @Test + @Order(1) + void testAddLocation() { + + String lname = "Library bria 2"; + String ladress = "via chissa dove2"; + Location location = new Location(lname, ladress); + + int size = locationRepository.getSize(); + + locationRepository.addLocation(location); + + int newsize = locationRepository.getSize(); + + assertEquals(newsize, size + 1); + } + + @Test + @Order(2) + void testUpdateLocation() { + + // creo nuovo menìmbro dello staff + String firstname = "Ivan"; + String lastname = "Donati"; + String city = "Milano"; + String idka = "lihwelhqluchwlir8"; + String ruolo = "frontoffice"; + Staff newstaff1 = new Staff(firstname, lastname, city, idka, ruolo); + + String firstname2 = "Rossi"; + String lastname2 = "Donati"; + String city2 = "Milano"; + String idka2 = "lihwelhsfgdghhwlir8"; + String ruolo2 = "manager"; + Staff newstaff2 = new Staff(firstname2, lastname2, city2, idka2, ruolo2); + + staffRepository.addStaff(newstaff1); + staffRepository.addStaff(newstaff2); + + List staffs = new ArrayList(); + staffs.add(newstaff1); + staffs.add(newstaff2); + + // creo una locazione + String lname = "Library cosa 2"; + String ladress = "via chissa dove"; + Location newlocation = new Location(lname, ladress); + locationRepository.addLocation(newlocation); + + Location editLocation = locationRepository.searchLocationByName(lname); + + long id = editLocation.getId(); + // nuovi dati per modificare i vecchi + String newlName = "Library bria 5"; + String newlAdress = "via prossima stella"; + + // aggungo i membri dello staff / modifico i dati della location + locationRepository.updateLocation(id, newlName, newlAdress, staffs); + + Optional location = locationRepository.findById(id); + location.ifPresent(a -> { + assertEquals(a.getName(), newlName); + assertEquals(a.getAdress(), newlAdress); + assertEquals(a.getStaffs(), staffs); + }); + } + + @Test + @Order(3) + void testDeleteLocation() { + + String lname = "Library bria 9"; + String ladress = "via chissa dove9"; + Location location = new Location(lname, ladress); + locationRepository.addLocation(location); + + Location removeLocation = locationRepository.searchLocationByName(lname); + + long ID = removeLocation.getId(); + + int size = locationRepository.getSize(); + + locationRepository.deleteLocationById(ID); + + int newsize = locationRepository.getSize(); + + assertEquals(newsize, size -1); + } + +} diff --git a/mivan/src/test/java/mivan/StaffTest.java b/mivan/src/test/java/mivan/StaffTest.java new file mode 100644 index 0000000..5920453 --- /dev/null +++ b/mivan/src/test/java/mivan/StaffTest.java @@ -0,0 +1,146 @@ +package mivan; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Optional; + +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; + +import mivan.model.Location; +import mivan.model.Staff; +import mivan.repository.LocationRepository; +import mivan.repository.LocationRepositoryImpl; +import mivan.repository.StaffRepository; +import mivan.repository.StaffRepositoryImpl; + +@TestMethodOrder(OrderAnnotation.class) +public class StaffTest { + + private StaffRepository staffRepository = new StaffRepositoryImpl(); + private LocationRepository locationRepository = new LocationRepositoryImpl(); + + @Test + @Order(1) + void testAddStaff() { + + String firstname = "Ivan"; + String lastname = "Donati"; + String city = "Milano"; + String idka = "lihwelhqluchwlir8"; + String ruolo = "frontoffice"; + + String lname = "Library bria 2"; + String ladress = "via chissa dove"; + Location location = new Location(lname, ladress); + locationRepository.addLocation(location); + + Staff newstaff = new Staff(firstname, lastname, city, idka, ruolo, location); + + int size = staffRepository.getSize(); + + staffRepository.addStaff(newstaff); + + int newsize = staffRepository.getSize(); + + assertEquals(newsize, size + 1); + + Iterable sad2 = staffRepository.findAll(); + } + + @Test + @Order(2) + void testUpdateStaff() { + + // creo una locazione + String lname = "Library cosa 2"; + String ladress = "via chissa dove"; + Location location = new Location(lname, ladress); + + // creo una seconda locazione + String newlName = "Library destra 5"; + String newlAdress = "via prossima stella"; + Location newlocation = new Location(newlName, newlAdress); + + int losize = locationRepository.getSize(); + + locationRepository.addLocation(location); + locationRepository.addLocation(newlocation); + + int newlosize = locationRepository.getSize(); + + assertEquals(newlosize, losize + 2); // ci sono 2 locazioni aggunte + + // creo un membro dello staff + String firstname = "Maccio"; + String lastname = "Donati"; + String city = "Milano"; + String idka = "lihwelhqluchwlir8"; + String ruolo = "frontoffice"; + Staff newstaff = new Staff(firstname, lastname, city, idka, ruolo); + + int size = staffRepository.getSize(); + + staffRepository.addStaff(newstaff); + + int newsize = staffRepository.getSize(); + + assertEquals(newsize, size + 1); // c'è 1 nuovo membro dello staff + + Staff editStaff = staffRepository.searchStaffByidka(idka); + + long id = editStaff.getId(); + String newfirstname = "Ivans"; + String newlastname = "Donatis"; + String newcity = "Milanos"; + String newidka = "lihwelhkluchwlir5"; + String newruolo = "spazzino"; + + staffRepository.updateStaff(id, newfirstname, newlastname, newcity, newidka, newruolo, newlocation); + + Optional staff = staffRepository.findById(id); + staff.ifPresent(a -> { + assertEquals(a.getFirstName(), newfirstname); + assertEquals(a.getLastName(), newlastname); + assertEquals(a.getCity(), newcity); + assertEquals(a.getIdka(), newidka); + assertEquals(a.getRuolo(), newruolo); + assertEquals(a.getLocation().getName(), newlName); + assertEquals(a.getLocation().getAdress(), newlAdress); + + }); + } + + @Test + @Order(3) + void testDeleteStaff() { + + String firstname = "John"; + String lastname = "Donati"; + String city = "Milano"; + String idka = "lihwelhsfghhwlir8"; + String ruolo = "manager"; + + String lname = "Library siniz 2"; + String ladress = "via sassa dove"; + Location location = new Location(lname, ladress); + locationRepository.addLocation(location); + + Staff newstaff = new Staff(firstname, lastname, city, idka, ruolo, location); + + staffRepository.addStaff(newstaff); + + Staff editStaff = staffRepository.searchStaffByidka(idka); + + long ID = editStaff.getId(); + + staffRepository.deleteStaffById(ID); + ; + + int size = staffRepository.getSize(); + assertEquals(size, 0); + } + +} diff --git a/mivan/src/test/java/mivan/UserTest.java b/mivan/src/test/java/mivan/UserTest.java new file mode 100644 index 0000000..d7efa13 --- /dev/null +++ b/mivan/src/test/java/mivan/UserTest.java @@ -0,0 +1,109 @@ +package mivan; + +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Optional; + +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; + +import mivan.model.User; +import mivan.repository.UserRepository; +import mivan.repository.UserRepositoryImpl; + +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(OrderAnnotation.class) +class UserTest { + + private UserRepository userRepository = new UserRepositoryImpl(); + + @Test + @Order(1) + void testAddUser() { + + String firstname = "Ivan"; + String lastname = "Donati"; + String city = "Milano"; + String username = "p.donati"; + String email = "p.donati@campus.unimib.it"; + String password = "pdonatipassword"; + User user = new User(firstname, lastname, city, username, email, password); + + int size = userRepository.getSize(); + + userRepository.addUser(user); + + int newsize = userRepository.getSize(); + + assertEquals(newsize, size + 1); + } + + @Test + @Order(2) + void testUpdateCompany() { + + String firstname = "Simone"; + String lastname = "Donati"; + String city = "Milano"; + String username = "i.donati"; + String email = "i.donati@campus.unimib.it"; + String password = "passwordsicura"; + + User newuser = new User(firstname, lastname, city, username, email, password); + + userRepository.addUser(newuser); + + User editUser = userRepository.searchUserByName(username); + + long id = editUser.getId(); + + String newfirstname = "Ivans"; + String newlastname = "Donatis"; + String newcity = "Milanos"; + String newusername = "asd.donati1s"; + String newemail = "asd.donati@campus.unimib.com"; + String newpassword = "newpdonatipassword"; + + userRepository.updateUser(id, newfirstname, newlastname, newcity, newusername, newemail, newpassword); + + Optional user = userRepository.findById(id); + user.ifPresent(a -> { + assertEquals(a.getFirstName(), newfirstname); + assertEquals(a.getLastName(), newlastname); + assertEquals(a.getCity(), newcity); + assertEquals(a.getUsername(), newusername); + assertEquals(a.getEmail(), newemail); + assertEquals(a.getPassword(), newpassword); + + }); + } + + @Test + @Order(3) + void testDeleteUser() { + + String firstname = "Rossi"; + String lastname = "Donati"; + String city = "Milano"; + String username = "r.donati"; + String email = "r.donati@campus.unimib.it"; + String password = "rdonatipassword"; + + User newuser = new User(firstname, lastname, city, username, email, password); + + userRepository.addUser(newuser); + + User editUser = userRepository.searchUserByName(username); + + long ID = editUser.getId(); + + int size = userRepository.getSize(); + + userRepository.deleteUserById(ID); + + int newsize = userRepository.getSize(); + assertEquals(newsize, size - 1); + } +} diff --git a/multibook/database.mv.db b/multibook/database.mv.db deleted file mode 100644 index c151f91106df7a8dad945c7742b38deda1813853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeHPTXW*b6*d`2ZJ71WvO9T5Rd!3O$*w&KA-Z396CjKN21W>bsH8#(5WBANfXl|4 zsXXR2Z+S>kwUvL6%0J0N{!l7Mty?1yCR3i7OmcW=OKPe6^mkhAbIx~Kt*TI-TrQ_C zs#5TGaPd2@%5xl7o_=$?cv0om^7PVk7gfGIz4qLdH>>i>T$emin=4#-zPx_vuAuT; z@A~Fq3Ad@``K7m-e&bzNMQ$ccRZb`#;13Z%1P}p401-e05CKF05kLeG0Ym^1Km^_) z0xk6a-y! zUsWZ@1Xy^lR*)ZX<$mqmK;`vvxvI(<f$Bj3rF?a_YSQX{2KN|%%qQcg)Z zBjx;X;lA`L7mJzqs=^CvXVTi4x^||2NS?b~P8#mYeHfjbx>xbB?ahBkt}m~=g>&sL zZrte#vM6qXM_2CT(yMUviAbL)^ojlvY3X(`TXvRTSNQMyYO08T$b~8n^E;{vQ86g` z;#=<&6g&k5`^WuIyNT*~0jdI}3!%~jozG-lNtDjJ<=e&WjW;t^XHgP}l*|K|H}O39 zYb1;u&NnffZ;>#xC>%8lm8@9^(=(Wblt2O>3KY%B4e{heJed-Y=%Tt+7u8S~M0Hir zX{1K~7}Q8K;UD|D{;{u#@Ch+Yn~9(i=t^Z*rJk<*j5Hg~!=1I#&RR(6A*no(OyXM0 z>3+q}Nx$*LNb7Y(CQ~=+EwjNmMy+EqY=2nmSar6-4hN>q9vA&JgKapYzR5CYhFxzN_OZx6Wx73w z=?*)ca&U*$V40eAVs+u_dQIJOM#-asEI$n&Xo)V$usZ7< zrCaJ7gTZ;v22rDtZ0pY-_#RSOHQTU9<7D8)r=|Q)nJ*3-A+CMfI)yu!wmG6;4X=*j z>R4czUYDv1AZMXTXzFLomxnh-$1&~gs$q;qgQ@qr1IIRe*b~hq7yTY6F^);ojMZ(J z&#C*@MJnaXFo+g5AX3x(iQZ%VD# zYqQ5}-}YtcjIBYf>%TMkPXNn*WME02$$o2g2*EPVo^4tuUH@H9_qu`Uj)s!a*k;qT zeG~`Oix`e77!535urAlzFse@hyI*Hwr=6eIJMu3jNpCC0NKw!9;R)Yt_U%}KTUVJ* zvVi%>J>G#FS(kPpmnlLDIl9j+xMenzjAScronGB=tX>ypguix1$Q>NyfA#1`2cO5L zDIb}pLUa(=rD&u2HtL@vvyhK-k$pELu~DsY1y|O+SJssmg*Wz$P@w;h{(lgA%62%=|BqsH?Qy32j{bitpo#uJ9oS`QUmX2^ zV5OVIS0 z$j`N@GM7Yc=8FC`RTtffJ_i|GWvY3TDW_RH0;5Qgp^oMBI=$We;~J?EHRO|vKLHw`8A3#{dK7^`GkF=5Nko-=3Gx2h z?d;nfh7v_DLLZbM5Pc^+%tmB?U93|6D}eNGcR-rN^zR~=fd{qC!C*J2n=Eu%H9II@ zAN(T#zqL2`dWx?~MiY8>#{mCtx5FRbo9zHmDuABWRp1jKX@ZSb0P_FH|0Dl@SMCDx z|49Y|c!$XUBmbY7Z`5pO68G<#|DQa1LQzvmYHCDH1zD&_O|4N=SvjivQ&U04Vah9s zscS-HgO9S25UM0R`+JnH8Z&3<^zFUV0QOAk4)EFsJv!?f$*TJ%tKuvT_nsW;VwfzR z%ITFdb9%jp;IIa%BE0){wkTjPhyWsh2p|H803v`0AOeU0B7g`W0*JtSk3h)(C;WTN z|5M-5*A;1^^X}xHoPMgADE~hlcuVpBdu;-bC8r~3RA2Xe81VlR^8c_M5&3`Q|6xbC zzq1?p|M<%Qo0%85|3921xc@(6tM(lmjxqlq^Z#-Ge~`_;gM3eR&2Rh42>C;R_JQPVv4zLNf_5JK_arbjMN diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/MultibookApplication.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/MultibookApplication.java deleted file mode 100644 index 34fb121..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/MultibookApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.unimib.disco.mivan.multibook; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MultibookApplication { - - public static void main(String[] args) { - SpringApplication.run(MultibookApplication.class, args); - } - -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/controller/UserController.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/controller/UserController.java deleted file mode 100644 index b6cb4d1..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/controller/UserController.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.unimib.disco.mivan.multibook.controller; - -import org.springframework.beans.factory.annotation.Autowired; - -import com.unimib.disco.mivan.multibook.model.User; -import com.unimib.disco.mivan.multibook.repository.UserRepository; - -public class UserController { - - @Autowired - UserRepository userRepository; - - - public void createUser(String firstName, String lastName, String city,String username, String email, String password) { - - User user = new User(firstName, lastName, city,username,email,password); - - userRepository.save(user); - - - - - } -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Author.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Author.java deleted file mode 100644 index 25010b9..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Author.java +++ /dev/null @@ -1,55 +0,0 @@ -/*package com.unimib.disco.mivan.multibook.model; - -import java.util.List; - -import javax.persistence.*; - -public class Author { - - - @Id - @Column(name = "id", nullable=false) - @GeneratedValue(strategy = GenerationType.AUTO) - private long id; - - @Column(name = "firstName", nullable=false) - private String artName; - - @ManyToMany - List publications; - - public Author() { - // TODO Auto-generated constructor stub - } - - public Author(String artName, List publications) { - super(); - this.artName = artName; - this.publications = publications; - } - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getArtName() { - return artName; - } - - public void setArtName(String artName) { - this.artName = artName; - } - - public List getPublications() { - return publications; - } - - public void setPublications(List publications) { - this.publications = publications; - } - -}*/ diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Book.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Book.java deleted file mode 100644 index af7820e..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Book.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.unimib.disco.mivan.multibook.model; - -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToMany; -import javax.persistence.OneToOne; - -@Entity -public class Book { - - @Id - @Column(name = "isbn", nullable=false) - private int isbn; - - @Column(name = "titolo", nullable=false) - private String titolo; - - @OneToOne - private Book prequel; - /* - @ManyToMany - List authors; - */ - - public Book() { - // TODO Auto-generated constructor stub - } - - public Book(int isbn, String titolo, Book prequel/*, List authors*/) { - super(); - this.isbn = isbn; - this.titolo = titolo; - this.prequel = prequel; - //this.authors = authors; - } - - public int getIsbn() { - return isbn; - } - - public void setIsbn(int isbn) { - this.isbn = isbn; - } - - public String getTitolo() { - return titolo; - } - - public void setTitolo(String titolo) { - this.titolo = titolo; - } - - public Book getPrequel() { - return prequel; - } - - public void setPrequel(Book prequel) { - this.prequel = prequel; - } - - - - - -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Item.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Item.java deleted file mode 100644 index e020d43..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Item.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.unimib.disco.mivan.multibook.model; - -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; - -public class Item{ - - - @Id - @Column(name = "id", nullable=false) - @GeneratedValue(strategy = GenerationType.AUTO) - private int id; - - @ManyToOne - private Location location; - - @ManyToOne - private Book libro; - - - public Item() { - // TODO Auto-generated constructor stub - } - - - public Item(Book libro,Location location) { - this.libro = libro; - this.location=location; - // TODO Auto-generated constructor stub - } - - - public int getId() { - return id; - } - - - public void setId(int id) { - this.id = id; - } - - - public Location getLocation() { - return location; - } - - - public void setLocation(Location location) { - this.location = location; - } - - - public Book getLibro() { - return libro; - } - - - public void setLibro(Book libro) { - this.libro = libro; - } - -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Loan.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Loan.java deleted file mode 100644 index daa82e3..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Loan.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.unimib.disco.mivan.multibook.model; - -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - -public class Loan { - - @Id - @Column(name = "id", nullable=false) - @GeneratedValue(strategy = GenerationType.AUTO) - private int id; - - - @ManyToOne - private Item item; - - @ManyToOne - private Staff staff; - - @ManyToOne - private User user; - - @Column(name = "start") - @Temporal(TemporalType.TIMESTAMP) - Date start; - - @Column(name = "end") - @Temporal(TemporalType.TIMESTAMP) - Date end; - - public Loan() { - // TODO Auto-generated constructor stub - } - - public Loan(int id, Item item, Staff staff, User user, Date start, Date end) { - super(); - this.item = item; - this.staff = staff; - this.user = user; - this.start = start; - this.end = end; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public Item getItem() { - return item; - } - - public void setItem(Item item) { - this.item = item; - } - - public Staff getStaff() { - return staff; - } - - public void setStaff(Staff staff) { - this.staff = staff; - } - - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - - public Date getStart() { - return start; - } - - public void setStart(Date start) { - this.start = start; - } - - public Date getEnd() { - return end; - } - - public void setEnd(Date end) { - this.end = end; - } - - - -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Location.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Location.java deleted file mode 100644 index 4c6cd8c..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Location.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.unimib.disco.mivan.multibook.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -@Entity -public class Location { - - @Id - @Column(name = "id", nullable=false) - @GeneratedValue(strategy = GenerationType.AUTO) - private long id; - - @Column(name = "name", nullable=false) - private String name; - - @Column(name = "address", nullable=false) - private String address; - - @Column(name = "city", nullable=false) - private String city; - - public Location() { - // TODO Auto-generated constructor stub - } - - public Location(String name, String address, String city) { - super(); - this.name = name; - this.address = address; - this.city = city; - } -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Staff.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Staff.java deleted file mode 100644 index e35f3b2..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/Staff.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.unimib.disco.mivan.multibook.model; - -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.ManyToOne; - -@Entity -public class Staff extends User { - - @ManyToOne(fetch = FetchType.LAZY) - private Location library; - - - public Staff() { - // TODO Auto-generated constructor stub - } - - public Staff(String firstName, String lastName, String city, String username, String email, - String password, Location library) { - super(firstName, lastName, city, username, email, password); - this.library=library; - - // TODO Auto-generated constructor stub - } - -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/User.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/User.java deleted file mode 100644 index 3a46bcc..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/model/User.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.unimib.disco.mivan.multibook.model; - - -import javax.persistence.*; - -@Entity -public class User extends Person { - - - @Column(name = "username", nullable=false,unique=true) - private String username; - - @Column(name = "email", nullable=false,unique=true) - private String email; - - @Column(name = "password", nullable=false) - private String password; - - - public User() { - super(); - // TODO Auto-generated constructor stub - } - - public User(String firstName, String lastName, String city, String username, String email, String password) { - super(firstName, lastName, city); - this.username = username; - this.email = email; - this.password = password; - } - - - public String getUsername() { - return username; - } - - - public void setUsername(String username) { - this.username = username; - } - - - public String getEmail() { - return email; - } - - - public void setEmail(String email) { - this.email = email; - } - - - public String getPassword() { - return password; - } - - - public void setPassword(String password) { - this.password = password; - } - - - - - - -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/PersonRepository.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/PersonRepository.java deleted file mode 100644 index 6274ec5..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/PersonRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.unimib.disco.mivan.multibook.repository; - -import java.util.List; - -import org.springframework.data.repository.CrudRepository; - -import com.unimib.disco.mivan.multibook.model.Person; - -public interface PersonRepository extends CrudRepository { - - List findByFirstNameAllIgnoreCase(String firstName); - - List findByLastNameAllIgnoreCase(String lastName); - - List findByirstNameAndLastNameAllIgnoreCase(String firstName, String lastName); - -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/UserRepository.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/UserRepository.java deleted file mode 100644 index d11e05a..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/repository/UserRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.unimib.disco.mivan.multibook.repository; - -import com.unimib.disco.mivan.multibook.model.User; - -import java.util.Optional; - - -public interface UserRepository extends PersonRepository { - - - public Optional findById(Long id); - - public User findByEmail(String email); - - public User findByUsername(String username); - - - -} diff --git a/multibook/src/main/java/com/unimib/disco/mivan/multibook/service/UserService.java b/multibook/src/main/java/com/unimib/disco/mivan/multibook/service/UserService.java deleted file mode 100644 index 5c2e712..0000000 --- a/multibook/src/main/java/com/unimib/disco/mivan/multibook/service/UserService.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.unimib.disco.mivan.multibook.service; - -import java.util.List; -import java.util.Optional; - -import com.unimib.disco.mivan.multibook.model.User; -import com.unimib.disco.mivan.multibook.repository.UserRepository; - -public class UserService { - - private UserRepository userRepository; - - public UserService(UserRepository userRepository) { - this.userRepository = userRepository; - } - /* - public List getClients(){ - return Lists.newArrayList(userRepository.findAll()); - }*/ - - public Optional getClient(Long id) { - return userRepository.findById(id); - } - - public List getClientsByNameAndSurname(String name, String surname) { - return userRepository.findByirstNameAndLastNameAllIgnoreCase(name, surname); - } - - - public void deleteClient(User client) { - userRepository.delete(client); - } - - public User insertOrUpdateClient(User client) { - return userRepository.save(client); - } -} diff --git a/multibook/src/main/resources/application.properties b/multibook/src/main/resources/application.properties deleted file mode 100644 index 5054168..0000000 --- a/multibook/src/main/resources/application.properties +++ /dev/null @@ -1,23 +0,0 @@ - - -spring.datasource.url=jdbc:h2:./database; -spring.datasource.driverClassName=org.h2.Driver -spring.datasource.username=librarymenagment -spring.datasource.password=password123! -spring.datasource.initialization-mode=always - -spring.h2.console.enabled=true -spring.h2.console.path=/h2 - - -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect - - - - -# Used for initialization of db. -# !!! Remove comment for initialize db first time. !!! -# spring.datasource.initialization-mode=always - diff --git a/multibook/src/test/java/com/unimib/disco/mivan/multibook/MultibookApplicationTests.java b/multibook/src/test/java/com/unimib/disco/mivan/multibook/MultibookApplicationTests.java deleted file mode 100644 index cdeb7a8..0000000 --- a/multibook/src/test/java/com/unimib/disco/mivan/multibook/MultibookApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.unimib.disco.mivan.multibook; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class MultibookApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/multibook/src/test/java/com/unimib/disco/mivan/multibook/UserTests.java b/multibook/src/test/java/com/unimib/disco/mivan/multibook/UserTests.java deleted file mode 100644 index 0aac3cb..0000000 --- a/multibook/src/test/java/com/unimib/disco/mivan/multibook/UserTests.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.unimib.disco.mivan.multibook; - - -import org.junit.jupiter.api.Test; -import org.mockito.Mock; -import org.springframework.boot.test.context.SpringBootTest; - -import com.unimib.disco.mivan.multibook.model.User; -import com.unimib.disco.mivan.multibook.service.UserService; - - - -@SpringBootTest -public class UserTests { - - - - //private UserRepository userRepository = new UserRepository(); - private UserService userRepository; - - @Test - void userCreation() { - - User asd = new User("Ivan", "Donati", "Novara", "territory", "ciao.iva@gmail.com", "sonounapassword"); - - userRepository.insertOrUpdateClient(asd); - - //userRepository.insertOrUpdateClient("Ivan", "Donati", "Novara", "territory", "ciao.iva@gmail.com", "sonounapassword"); - - - } - -} From 708184146f4bd4ebdedb89a76dd0bd25702dcd03 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sun, 12 Jan 2020 22:58:54 +0100 Subject: [PATCH 11/25] Test book fix --- mivan/src/main/java/mivan/model/Book.java | 12 ++++++------ .../java/mivan/repository/AuthorRepository.java | 4 ++-- .../mivan/repository/AuthorRepositoryImpl.java | 4 ++-- .../java/mivan/repository/BookRepository.java | 9 ++++----- .../java/mivan/repository/BookRepositoryImpl.java | 15 ++++++++++----- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/mivan/src/main/java/mivan/model/Book.java b/mivan/src/main/java/mivan/model/Book.java index 3c75b49..96e14b7 100644 --- a/mivan/src/main/java/mivan/model/Book.java +++ b/mivan/src/main/java/mivan/model/Book.java @@ -17,11 +17,11 @@ import javax.persistence.Table; @Table(name = "book") public class Book implements Serializable { - private static final long serialVersionUID = -5124436115031696628L; + private static final long serialVersionUID = 19L; @Id - @Column(name = "isbn", nullable=false) - private int isbn; + @Column(name = "isbn", nullable=false, unique=true) + private long isbn; @Column(name = "title", nullable=false) private String title; @@ -39,14 +39,14 @@ public class Book implements Serializable { public Book() { } - public Book(int isbn, String title, Book prequel) { + public Book(long isbn, String title, Book prequel) { this.isbn = isbn; this.title = title; this.prequel = prequel; this.authors = new ArrayList(); } - public int getIsbn() { + public long getIsbn() { return isbn; } @@ -58,7 +58,7 @@ public class Book implements Serializable { return prequel; } - public void setIsbn(int isbn) { + public void setIsbn(long isbn) { this.isbn = isbn; } diff --git a/mivan/src/main/java/mivan/repository/AuthorRepository.java b/mivan/src/main/java/mivan/repository/AuthorRepository.java index ab2b72a..b5fc0d2 100644 --- a/mivan/src/main/java/mivan/repository/AuthorRepository.java +++ b/mivan/src/main/java/mivan/repository/AuthorRepository.java @@ -12,9 +12,9 @@ public interface AuthorRepository extends Repository { public Author searchAuthorByName(String name); - public void addBook(int isbn, long id); + public void addBook(Long isbn, Long id); - public void removeBook(int isbn, long id); + public void removeBook(Long isbn, Long id); public int getSize(); } diff --git a/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java b/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java index 0e5086a..ea0d85b 100644 --- a/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java +++ b/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java @@ -115,7 +115,7 @@ public class AuthorRepositoryImpl implements AuthorRepository { } @Override - public void addBook(int isbn, long id) { + public void addBook(Long isbn, Long id) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { @@ -134,7 +134,7 @@ public class AuthorRepositoryImpl implements AuthorRepository { } @Override - public void removeBook(int isbn, long id) { + public void removeBook(Long isbn, Long id) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { diff --git a/mivan/src/main/java/mivan/repository/BookRepository.java b/mivan/src/main/java/mivan/repository/BookRepository.java index 63f0465..ba772ae 100644 --- a/mivan/src/main/java/mivan/repository/BookRepository.java +++ b/mivan/src/main/java/mivan/repository/BookRepository.java @@ -1,23 +1,22 @@ package mivan.repository; -import mivan.model.Author; import mivan.model.Book; public interface BookRepository extends Repository{ //public Optional findUserAddressById(Long id); - public void deleteBookById(int isbn); + public void deleteBookById(Long isbn); public void addBook(Book book); - public void updateBook(int isbn, String title, Book prequel); + public void updateBook(Long isbn, String title, Book prequel); public Book searchBookByTitle(String title); - public void addAuthor(int isbn, long id); + public void addAuthor(Long isbn, Long id); - public void removeAuthor(int isbn, long id); + public void removeAuthor(Long isbn, Long id); public int getSize(); } diff --git a/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java b/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java index 72cd1b7..4c0006e 100644 --- a/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java +++ b/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java @@ -5,6 +5,7 @@ import java.util.Optional; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; import mivan.model.Author; import mivan.model.Book; @@ -13,6 +14,10 @@ public class BookRepositoryImpl implements BookRepository { private EntityManagerFactory entityManagerFactory; + public BookRepositoryImpl(){ + this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); + } + @Override public Optional findById(Long id) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); @@ -30,7 +35,7 @@ public class BookRepositoryImpl implements BookRepository { } @Override - public void deleteBookById(int isbn) { + public void deleteBookById(Long isbn) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { @@ -46,7 +51,7 @@ public class BookRepositoryImpl implements BookRepository { } @Override - public void addBook(Book book) { + public void addBook(Book book) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { @@ -62,7 +67,7 @@ public class BookRepositoryImpl implements BookRepository { } @Override - public void updateBook(int isbn, String title, Book prequel) { + public void updateBook(Long isbn, String title, Book prequel) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { @@ -115,7 +120,7 @@ public class BookRepositoryImpl implements BookRepository { @Override - public void addAuthor(int isbn, long id) { + public void addAuthor(Long isbn, Long id) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { @@ -134,7 +139,7 @@ public class BookRepositoryImpl implements BookRepository { } @Override - public void removeAuthor(int isbn, long id) { + public void removeAuthor(Long isbn, Long id) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { From a62040d5f7aa104e6c919e26e9080ab27fa9ba5a Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sun, 12 Jan 2020 23:23:45 +0100 Subject: [PATCH 12/25] Aggiornamento test Book e Author --- mivan/src/main/java/mivan/model/Book.java | 2 +- mivan/src/test/java/mivan/AuthorTest.java | 7 ++-- mivan/src/test/java/mivan/BookTest.java | 49 ++++++++++++++++++++++- 3 files changed, 53 insertions(+), 5 deletions(-) diff --git a/mivan/src/main/java/mivan/model/Book.java b/mivan/src/main/java/mivan/model/Book.java index 96e14b7..0c00668 100644 --- a/mivan/src/main/java/mivan/model/Book.java +++ b/mivan/src/main/java/mivan/model/Book.java @@ -50,7 +50,7 @@ public class Book implements Serializable { return isbn; } - public String getTitolo() { + public String getTitle() { return title; } diff --git a/mivan/src/test/java/mivan/AuthorTest.java b/mivan/src/test/java/mivan/AuthorTest.java index 197309a..59002f2 100644 --- a/mivan/src/test/java/mivan/AuthorTest.java +++ b/mivan/src/test/java/mivan/AuthorTest.java @@ -57,7 +57,8 @@ public class AuthorTest { @Test @Order(3) void testDeleteUser() { - String name = "ivan"; + int size = authorRepository.getSize(); + String name = "gollum"; Author author = new Author(name); @@ -69,8 +70,8 @@ public class AuthorTest { authorRepository.deleteAuthorById(ID); - int size = authorRepository.getSize(); - assertEquals(size, 0); + int end_size = authorRepository.getSize(); + assertEquals(end_size, size); } diff --git a/mivan/src/test/java/mivan/BookTest.java b/mivan/src/test/java/mivan/BookTest.java index c127605..9ff3abe 100644 --- a/mivan/src/test/java/mivan/BookTest.java +++ b/mivan/src/test/java/mivan/BookTest.java @@ -1,6 +1,11 @@ package mivan; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Optional; + +import javax.validation.constraints.AssertTrue; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; @@ -21,7 +26,7 @@ public class BookTest { @Order(1) void testAddBook() { - int isbn = 1234; + long isbn = 1234; String title = "illiade"; Book prequel = null; @@ -36,6 +41,48 @@ public class BookTest { } + @Test + @Order(2) + void testUpdateBook(){ + long isbn = 12348; + String title = "odissea"; + Book prequel = null; + + Book book = new Book(isbn, title, prequel); + + bookRepository.addBook(book); + String update_title = "eneide"; + bookRepository.updateBook(isbn, update_title, prequel); + + Optional opt_book2 = bookRepository.findById(isbn); + + Book book2 = opt_book2.get(); + assertTrue(update_title.equals(book2.getTitle())); + + } + + @Test + @Order(3) + void testDeleteBook() { + int start_size = bookRepository.getSize(); + long isbn = 12345; + String title = "illiade"; + Book prequel = null; + + Book book = new Book(isbn, title, prequel); + + bookRepository.addBook(book); + + Optional opt_book2 = bookRepository.findById(isbn); + + Book book2 = opt_book2.get(); + long ID = book2.getIsbn(); + + bookRepository.deleteBookById(ID); + + int size = bookRepository.getSize(); + assertEquals(start_size,size); + } } From dbef4697afadb10aeca0f86f4b2240193c708626 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sun, 12 Jan 2020 23:30:41 +0100 Subject: [PATCH 13/25] Aggiorna doc e alcuni fix --- doc/chapters/01_introduzione.tex | 41 +++++++++++++++++++------------- doc/chapters/02_progetto.tex | 25 +++++++------------ doc/chapters/03_esecuzione.tex | 20 +++++++++------- 3 files changed, 44 insertions(+), 42 deletions(-) diff --git a/doc/chapters/01_introduzione.tex b/doc/chapters/01_introduzione.tex index 8395fed..4e388d3 100644 --- a/doc/chapters/01_introduzione.tex +++ b/doc/chapters/01_introduzione.tex @@ -17,41 +17,48 @@ Ivan Donati - 781022 \section{Repository} -Come da consegna per l'assignment è stato fatto uso dello strumento di file versioning git gestito da GitLab. Tutto il materiale definitivo del progetto è presente nel branch master del repository raggiungibile al seguente collegamento: +Come da consegna per l'assignment è stato fatto uso dello strumento di file versioning \code{git} gestito da \textit{GitLab}. Tutto il materiale finale del progetto è presente nel branch master del repository raggiungibile al seguente collegamento: \begin{center} \url{https://gitlab.com/meliurwen/2019_assignment3_MiVan} \end{center} La radice del branch raffigurata in basso presenta un'organizzazione semplice e minimale: -\newline + +\begin{itemize} + \item \textbf{mivan:} È la cartella che contiene il sorgente dell'applicazione. + \item \textbf{doc:} È la cartella che contiene il sorgente della documentazione scritta in \latex . + \item \textbf{assignment3\_mivan.pdf:} È la versione compilata in pdf della documentazione. + \item \textbf{Dockerfile} e \textbf{docker-compose.yml:} Sono i file necessari per eseguire la versione containerizzata dell'applicazione. + \item \textbf{LICENSE} e \textbf{README.md:} Sono rispettivamente la licenza (MIT) assegnata per il progeto ed una sua breve introduzione. +\end{itemize} + \dirtree{% .1 . - .2 app/. + .2 mivan/. .2 doc/. .2 .gitignore. + .2 Dockerfile. + .2 docker-compose.yml. + .2 LICENSE. .2 README.md. .2 assignment3\_mivan.pdf. } -\begin{itemize} - \item \textbf{app:} È la cartella che contiene il sorgente dell'applicazione. - \item \textbf{doc:} È la cartella che contiene il sorgente della documentazione scritta in \latex . - \item \textbf{assignment3\_mivan.pdf:} È la versione compilata in pdf della documentazione. -\end{itemize} \section{Applicazione} L'applicazione oggetto di questo assigment è \textbf{MiVan}. \newline -Si tratta di un'applicazione che gestisce prestiti di libri di un sistema bibliotecario con una o più sedi. Essa, oltre ad essere in grado di gestire i prestiti, è anche in grado di gestire i libri, la loro posizione, lo staff che amministra i prestiti e gli utenti che ne fanno richiesta. -\newline -Grazie a questa applicazione è possibile creare, visualizzzare, modificare e rimuovere in tempo reale lo stato di prestito dei libri. I prestiti sono descritti da una data di inizio, di fine, uno stato, un libro, un utente ed un operatore. Si ritiene che sia importante sottolineare che durante la progettazione si è presa la decisione che un prestito possa consistere in esattamente una unità di libro, in maniera tale che questo livello di granularità permetta all'utente, in caso di prestito contemporaneo di più libri, di non doverli restituire tutti in blocco. -\newline -Altra caratteristica è la separazione tra concetto di libro ed "unità di libro", questo per gestire in maniera efficiente il caso molto frequente in cui il sistema bibliotecario possieda più copie dello stesso libro; nella nostra implementazione ogni singola unità (Item) corrisponderebbe in maniera univoca all'unità fisica corrispondente. -\newline -Una feature degna di nota (che andrebbe a soddisfare il requisito del self-loop) è la possibilità di sapere se nel sistema bibliotecario è disponibile il sequel (ammesso che esistano) di un determinato libro. -\newline + +Si tratta di un'applicazione \textbf{back-end only} che \textit{gestisce prestiti di libri di un sistema bibliotecario} con \textit{una o più sedi}. Essa, oltre ad essere in grado di gestire i prestiti, possiede la capacità di gestire i libri, la loro \textit{posizione}, lo \textit{staff} che ne amministra i \textit{prestiti} e gli \textit{utenti} che ne fanno richiesta. + +Grazie a questa applicazione è possibile \textit{creare, visualizzzare, modificare e rimuovere} in tempo reale lo stato di cessione dei libri. I prestiti sono descritti da una \textit{data di inizio}, \textit{di fine}, uno \textit{stato}, un \textit{libro}, un \textit{utente} ed un \textit{operatore}. Si ritiene che sia importante sottolineare che durante la progettazione si è presa la decisione che un prestito debba consistere in esattamente una unità di libro, in maniera tale che questo livello di granularità permetta all'utente, in caso di prestito "contemporaneo" (in realtà avviene in rapida sequenza dal punto di vista del backend) di più libri, di non doverli restituire tutti in blocco. + +Altra caratteristica è la \textit{separazione} tra \textit{"concetto di libro"} ed \textit{"unità di libro"}, questo per gestire in maniera efficiente il caso molto frequente in cui il sistema bibliotecario possieda più copie dello stesso libro; nella nostra implementazione ogni singola unità (descritta come \textit{"Item"}) corrisponderebbe in maniera univoca all'unità fisica corrispondente. In altre parole, se il sistema bibliotecario è in possesso di \textit{n} libri identici (stesso ISBN) ognuno di essi è identificabile univocamente. + +Una feature degna di nota (che andrebbe a soddisfare il requisito del \textit{self-loop}) è la possibilità di sapere se nel sistema bibliotecario è presente il \textit{prequel} (ammesso che esista) di un determinato libro assieme al suos tato di disponibilità. + Allo stato attuale l'applicazione è stata pensata per essere utilizzata nell'area metropolitana di \underline{\textit{Brescia}} e \underline{\textit{Novara}}, con un \textit{\textbf{target iniziale}} ristretto agli utenti delle \textit{\textbf{sedi del sistema blibliotecario comunale}} delle rispettive città. -\newline + A seconda della trazione che potrebbe ricevere una volta lanciata, si potrà valutare un'eventuale \textit{espansione} del territorio coperto e degli enti (sia pubblici che privati) interessati. diff --git a/doc/chapters/02_progetto.tex b/doc/chapters/02_progetto.tex index e460030..4b934d1 100644 --- a/doc/chapters/02_progetto.tex +++ b/doc/chapters/02_progetto.tex @@ -1,41 +1,34 @@ \section{Progettazione} -Nella fase iniziale di progettazione, invece che iniziare direttamente con la stesura di un diagramma UML delle Classi si è ritenuto più comodo sviluppare prima l'idea su carta disegnando un semplice diagramma ER (Entity Relationship). +Nella fase iniziale di progettazione, invece che iniziare direttamente con la stesura di un \textit{diagramma UML delle Classi} si è ritenuto più comodo sviluppare prima l'idea su carta disegnando un semplice \textit{diagramma ER} (Entity Relationship), mostrato in figura \ref{fig:er}. \begin{figure}[h!] \centering - \includegraphics[scale=0.6]{img/logo.png} + \includegraphics[scale=0.8]{img/er.pdf} \caption{Diagramma ER} \label{fig:er} \end{figure} -Una volta stesa una bozza definitva e chiara sulle entità, relazioni e relativi attributi da definire si è passati a trasporre in una forma più dettagliata e più comoda per noi da tenere come riferimento, ossia un EER (Enhaced Entity Relationship) disegnato con il tool MySQL Workbench. +Una volta stesa una bozza definitva e chiara sulle entità, relazioni e relativi attributi da definire si è passati a trasporre in una forma più dettagliata e \textit{più comoda} per noi da tenere come riferimento, ossia un \textit{EER} (\textit{Enhaced Entity Relationship}) disegnato con il tool \textit{MySQL Workbench}. \begin{figure}[h!] \centering - \includegraphics[scale=0.6]{img/logo.png} + \includegraphics[scale=0.9]{img/eer.pdf} \caption{Diagramma EER} \label{fig:eer} \end{figure} -\begin{figure}[h!] - \centering - \includegraphics[scale=0.6]{img/logo.png} - \caption{Diagramma delle Classi} - \label{fig:classi} -\end{figure} - \section{Struttura} -L'applicazione è strutturata in diversi package con ognuno funzionalità specifiche: +L'applicazione è strutturata in diversi \textit{package} con ognuno funzionalità specifiche: \begin{itemize} - \item \textbf{com.mivan.model:} In questo package sono presenti tutte le entità del modello dati dell'applicazione, implementate in classi come mostrate in figura \ref{fig:classi}. Per gestire la persistenza dei dati di un database relazionere, per tali classi sono state utilizzate le annotazioni delle JPA (Java Persistence API). + \item \textbf{com.mivan.model:} In questo package sono presenti tutte le entità del modello dati dell'applicazione, implementate in classi \textit{Author}, \textit{Book}, \textit{Location}, \textit{Staff}, \textit{User}, \textit{Loan}, \textit{Item} e \textit{Item}. Per gestire la persistenza dei dati di un database relazionere, per tali classi sono state utilizzate le annotazioni delle \textit{JPA} (\textit{Java Persistence API}). \item \textbf{com.mivan.repository:} In questo package sono implementate le query per l'interrogazione al database. - \item \textbf{com.mivan.exception:} In questo package sono contenute le classi che gestiscono le eccezioni generate dalle interrogazioni al database. \end{itemize} \section{Test} -Per verificare l'effettivo funzionamento del programma sono stati sviluppati dei test d'integrazione, posizionati all'interno della cartella \code{mivan/src/test/java/}.\newline -Per i JUnit test volti a verificare la corretta esecuzione delle operazioni CRUD (Create, Read, Update, Delete) è stato fatto uso dell'engine H2, il quale consente di eseguire tali operazioni su un database temporaneo caricato in memoria (RAM). Tale approccio consente arginare del tutto il problema di intaccare il database persistente dai dati fittizzi dei test. +Per verificare l'effettivo funzionamento del programma sono stati sviluppati dei test d'integrazione, posizionati all'interno della cartella \code{mivan/src/test/java/}. + +Per i \textit{JUnit test} volti a verificare la \textit{corretta esecuzione} delle operazioni \textit{CRUD} (\textit{Create, Read, Update, Delete}) è stato fatto uso dell'engine \textit{H2}, il quale consente di eseguire tali operazioni su un \textit{database temporaneo} caricato in memoria (\textit{RAM}). Tale approccio consente \textit{arginare} del tutto il problema di intaccare il database persistente dai dati fittizzi dei test. diff --git a/doc/chapters/03_esecuzione.tex b/doc/chapters/03_esecuzione.tex index 74694c5..102e0e3 100644 --- a/doc/chapters/03_esecuzione.tex +++ b/doc/chapters/03_esecuzione.tex @@ -1,14 +1,15 @@ \section{Requisiti} -L'applicazione è stata sviluppata, eseguita e testata su sistemi UNIX Like, in particolare sulla distribuzione GNU/Linux Debian.\newline +L'applicazione è stata sviluppata, eseguita e testata su sistemi \textit{UNIX Like}, in particolare sulla distribuzione \textit{GNU/Linux Debian}.\newline Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi.\newline -Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) ed \code{mvn}; in caso di Debian o derivate si usa il seguente comando: +Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) e \code{mvn} corrispondenti rispettivamente a \textit{Open Java Development Kit} ed al tool \textit{Apache Maven}; in caso di Debian o derivate si usa il seguente comando: \newline \begin{lstlisting}[style=BashInputStyle] $ sudo apt-get install openjdk-8-jdk mvn \end{lstlisting} -In caso si volesse usare Docker allora le dipendenze sono docker-compose, ed ovviamente docker stesso. Compose è presente nella maggior parte delle repo delle distro, il problema è che non è sempre aggiornato, per cui si ovvierà a questo possibile problema per mezzo di pip.\newline +In caso si volesse usare \textit{Docker} allora le dipendenze sono \textit{docker-compose}, ed ovviamente \textit{docker} stesso. \textit{Compose} è presente nella maggior parte delle repo delle distro, il problema è che non è sempre aggiornato, per cui si ovvierà a questo possibile problema per mezzo di \code{pip}. + La serie di comandi è la seguente, in caso di distro diversa da Debian usare il relativo gestore di pacchetti in sostituzione ad apt: \newline \begin{lstlisting}[style=BashInputStyle] @@ -29,8 +30,9 @@ Per eseguire i test è necessario spostarsi all'interno della cartella del sorge \section{Build} -L'operazione di build genera un file \code{.jar} all'interno della cartella di nome \code{target}, la quale se non è già presente verrà creata runtime.\newline -Per seguire la build è necessario spostarsi all'interno della cartella del sorgente dell'applicazione e poi lanciare il relativo comando: +L'operazione di build genera un file \code{.jar} all'interno della cartella di nome \code{target}, la quale se non è già presente \textit{verrà creata a runtime}. + +Per eseguire la build è necessario spostarsi all'interno della cartella del sorgente dell'applicazione e poi lanciare il wrapper \code{mvnw}: \newline \begin{lstlisting}[style=BashInputStyle] $ cd mivan @@ -48,19 +50,19 @@ L'avvio immediato dell'applicazione, utile durante lo sviluppo si esegue con un \section{Avvio tramite Docker} -Per poter eseguire l'applicazione per mezzo di Docker container è necessario soddisfare i requisiti indicati all'inizio di questo capitolo. Il vantaggio di usare Docker è che semplifica notevolmente sia la fase di sviluppo che di deploy dell'applicazione, specialmente per l'ultimo punto che ne riduce in maniera sensibile sia il tempo che la complessità. +Per poter eseguire l'applicazione per mezzo di Docker container è necessario soddisfare i requisiti indicati all'inizio di questo capitolo. Il vantaggio di usare Docker è che semplifica \textit{notevolmente} sia la fase di sviluppo che di \textit{deploy} dell'applicazione, specialmente per l'ultimo punto che ne riduce in maniera sensibile sia il tempo che la complessità. \begin{leftbar} - \noindent\textbf{Nota:}\newline Per poter utilizzare docker è necessario avere i privilegi di root od essere nel gruppo \code{docker}!. + \noindent\textbf{Nota:}\newline Per poter utilizzare docker è necessario avere i privilegi di root od essere nel gruppo \code{docker}! \end{leftbar} -Un comodo strumento di cui faremo uso per gestire i container è Compose, di cui, dato il file \code{.yml} già compilato alla radice della repository eseguiamo il comando di build: +Un comodo strumento di cui faremo uso per gestire i container è \textit{Compose}, di cui, dato il file \code{.yml} già compilato alla radice della repository eseguiamo il comando di build: \newline \begin{lstlisting}[style=BashInputStyle] $ sudo docker-compose build \end{lstlisting} -E poi, una volta buildate le immagini dei container, le eseguiamo: +E poi, una volta buildate l'immagine del container, lo lanciamo: \newline \begin{lstlisting}[style=BashInputStyle] $ sudo docker-compose up From aed390be8ccbab8030dd342a9f2f67fd27ac9b27 Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Sun, 12 Jan 2020 23:45:37 +0100 Subject: [PATCH 14/25] Sistemati alcuni test --- mivan/src/main/java/mivan/model/User.java | 105 ++++++++------------ mivan/src/test/java/mivan/LocationTest.java | 48 ++++----- mivan/src/test/java/mivan/StaffTest.java | 61 ++++++------ mivan/src/test/java/mivan/UserTest.java | 48 ++++----- 4 files changed, 119 insertions(+), 143 deletions(-) diff --git a/mivan/src/main/java/mivan/model/User.java b/mivan/src/main/java/mivan/model/User.java index 3b4bdec..a153eab 100644 --- a/mivan/src/main/java/mivan/model/User.java +++ b/mivan/src/main/java/mivan/model/User.java @@ -1,6 +1,5 @@ package mivan.model; - import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; @@ -9,82 +8,58 @@ import javax.persistence.Table; @Table(name = "user") public class User extends Person { - private static final long serialVersionUID = -5124436115031696628L; - - @Column(name = "username", nullable=false,unique=true) - private String username; - - @Column(name = "email", nullable=false,unique=true) - private String email; - - @Column(name = "password", nullable=false) - private String password; - - - protected User() { - } - - - -public User(String firstName, String lastName, String city,String username, String email, String password) { - super(firstName,lastName,city); - this.username = username; - this.email = email; - this.password = password; -} - - - -public String getUsername() { - return username; -} - - - -public void setUsername(String username) { - this.username = username; -} - - - -public String getEmail() { - return email; -} - - - -public void setEmail(String email) { - this.email = email; -} - - - -public String getPassword() { - return password; -} + private static final long serialVersionUID = -5124436115031696628L; + @Column(name = "username", nullable = false, unique = true) + private String username; + @Column(name = "email", nullable = false, unique = true) + private String email; -public void setPassword(String password) { - this.password = password; -} + @Column(name = "password", nullable = false) + private String password; + protected User() { + } + public User(String firstName, String lastName, String city, String username, String email, String password) { + super(firstName, lastName, city); + this.username = username; + this.email = email; + this.password = password; + } -public static long getSerialversionuid() { - return serialVersionUID; -} + public String getUsername() { + return username; + } + public void setUsername(String username) { + this.username = username; + } + public String getEmail() { + return email; + } -@Override -public String toString() { - return "User [username=" + username + ", email=" + email + ", password=" + password + "]"; -} + public void setEmail(String email) { + this.email = email; + } + public String getPassword() { + return password; + } + public void setPassword(String password) { + this.password = password; + } + public static long getSerialversionuid() { + return serialVersionUID; + } - + @Override + public String toString() { + return "User [username=" + username + ", email=" + email + ", password=" + password + "]"; + } } diff --git a/mivan/src/test/java/mivan/LocationTest.java b/mivan/src/test/java/mivan/LocationTest.java index 4202fa8..77b0f92 100644 --- a/mivan/src/test/java/mivan/LocationTest.java +++ b/mivan/src/test/java/mivan/LocationTest.java @@ -28,8 +28,8 @@ public class LocationTest { @Order(1) void testAddLocation() { - String lname = "Library bria 2"; - String ladress = "via chissa dove2"; + String lname = "test_add_location_name"; + String ladress = "test_add_location_adress"; Location location = new Location(lname, ladress); int size = locationRepository.getSize(); @@ -46,18 +46,18 @@ public class LocationTest { void testUpdateLocation() { // creo nuovo menìmbro dello staff - String firstname = "Ivan"; - String lastname = "Donati"; - String city = "Milano"; - String idka = "lihwelhqluchwlir8"; - String ruolo = "frontoffice"; - Staff newstaff1 = new Staff(firstname, lastname, city, idka, ruolo); - - String firstname2 = "Rossi"; - String lastname2 = "Donati"; - String city2 = "Milano"; - String idka2 = "lihwelhsfgdghhwlir8"; - String ruolo2 = "manager"; + String firstname1 = "test_update_location_name1"; + String lastname1 = "test_update_location_lastname1"; + String city1 = "test_update_location_city1"; + String idka1 = "test_update_location_idka1"; + String ruolo1 = "test_update_location_role1"; + Staff newstaff1 = new Staff(firstname1, lastname1, city1, idka1, ruolo1); + + String firstname2 = "test_update_location_name2"; + String lastname2 = "test_update_location_lastname2"; + String city2 = "test_update_location_city2"; + String idka2 = "test_update_location_idka2"; + String ruolo2 = "test_update_location_role2"; Staff newstaff2 = new Staff(firstname2, lastname2, city2, idka2, ruolo2); staffRepository.addStaff(newstaff1); @@ -68,8 +68,8 @@ public class LocationTest { staffs.add(newstaff2); // creo una locazione - String lname = "Library cosa 2"; - String ladress = "via chissa dove"; + String lname = "test_update_location_name"; + String ladress = "test_update_location_adress"; Location newlocation = new Location(lname, ladress); locationRepository.addLocation(newlocation); @@ -77,16 +77,16 @@ public class LocationTest { long id = editLocation.getId(); // nuovi dati per modificare i vecchi - String newlName = "Library bria 5"; - String newlAdress = "via prossima stella"; + String newlname = "test_update_location_newname"; + String newladress = "test_update_location_newadress"; // aggungo i membri dello staff / modifico i dati della location - locationRepository.updateLocation(id, newlName, newlAdress, staffs); + locationRepository.updateLocation(id, newlname, newladress, staffs); Optional location = locationRepository.findById(id); location.ifPresent(a -> { - assertEquals(a.getName(), newlName); - assertEquals(a.getAdress(), newlAdress); + assertEquals(a.getName(), newlname); + assertEquals(a.getAdress(), newladress); assertEquals(a.getStaffs(), staffs); }); } @@ -95,8 +95,8 @@ public class LocationTest { @Order(3) void testDeleteLocation() { - String lname = "Library bria 9"; - String ladress = "via chissa dove9"; + String lname = "test_delete_location_name"; + String ladress = "test_delete_location_adress"; Location location = new Location(lname, ladress); locationRepository.addLocation(location); @@ -110,7 +110,7 @@ public class LocationTest { int newsize = locationRepository.getSize(); - assertEquals(newsize, size -1); + assertEquals(newsize, size - 1); } } diff --git a/mivan/src/test/java/mivan/StaffTest.java b/mivan/src/test/java/mivan/StaffTest.java index 5920453..1a4fcaa 100644 --- a/mivan/src/test/java/mivan/StaffTest.java +++ b/mivan/src/test/java/mivan/StaffTest.java @@ -26,14 +26,14 @@ public class StaffTest { @Order(1) void testAddStaff() { - String firstname = "Ivan"; - String lastname = "Donati"; - String city = "Milano"; - String idka = "lihwelhqluchwlir8"; - String ruolo = "frontoffice"; - - String lname = "Library bria 2"; - String ladress = "via chissa dove"; + String firstname = "test_add_staff_name"; + String lastname = "test_add_staff_lastname"; + String city = "test_add_staff_city"; + String idka = "test_add_staff_idka"; + String ruolo = "test_add_staff_role"; + + String lname = "test_add_staff_loc_name"; + String ladress = "test_add_staff_loc_adress"; Location location = new Location(lname, ladress); locationRepository.addLocation(location); @@ -55,13 +55,13 @@ public class StaffTest { void testUpdateStaff() { // creo una locazione - String lname = "Library cosa 2"; - String ladress = "via chissa dove"; + String lname = "test_update_staff_loc_name"; + String ladress = "test_update_staff_loc_adress"; Location location = new Location(lname, ladress); // creo una seconda locazione - String newlName = "Library destra 5"; - String newlAdress = "via prossima stella"; + String newlName = "test_update_staff_loc_newname"; + String newlAdress = "test_update_staff_loc_newname"; Location newlocation = new Location(newlName, newlAdress); int losize = locationRepository.getSize(); @@ -73,12 +73,13 @@ public class StaffTest { assertEquals(newlosize, losize + 2); // ci sono 2 locazioni aggunte - // creo un membro dello staff - String firstname = "Maccio"; - String lastname = "Donati"; - String city = "Milano"; - String idka = "lihwelhqluchwlir8"; - String ruolo = "frontoffice"; + // creo un membro dello staff + String firstname = "test_update_staff_name"; + String lastname = "test_update_staff_lastname"; + String city = "test_update_staff_city"; + String idka = "test_update_staff_idka"; + String ruolo = "test_update_staff_role"; + Staff newstaff = new Staff(firstname, lastname, city, idka, ruolo); int size = staffRepository.getSize(); @@ -92,11 +93,11 @@ public class StaffTest { Staff editStaff = staffRepository.searchStaffByidka(idka); long id = editStaff.getId(); - String newfirstname = "Ivans"; - String newlastname = "Donatis"; - String newcity = "Milanos"; - String newidka = "lihwelhkluchwlir5"; - String newruolo = "spazzino"; + String newfirstname = "test_update_staff_newname"; + String newlastname = "test_update_staff_newlastname"; + String newcity = "test_update_staff_newcity"; + String newidka = "test_update_staff_newidka"; + String newruolo = "test_update_staff_newrole"; staffRepository.updateStaff(id, newfirstname, newlastname, newcity, newidka, newruolo, newlocation); @@ -117,14 +118,14 @@ public class StaffTest { @Order(3) void testDeleteStaff() { - String firstname = "John"; - String lastname = "Donati"; - String city = "Milano"; - String idka = "lihwelhsfghhwlir8"; - String ruolo = "manager"; + String firstname = "test_delete_staff_name"; + String lastname = "test_delete_staff_lastname"; + String city = "test_delete_staff_city"; + String idka = "test_delete_staff_idka"; + String ruolo = "test_delete_staff_role"; - String lname = "Library siniz 2"; - String ladress = "via sassa dove"; + String lname = "test_delete_staff_loc_name"; + String ladress = "test_delete_staff_loc_adress"; Location location = new Location(lname, ladress); locationRepository.addLocation(location); diff --git a/mivan/src/test/java/mivan/UserTest.java b/mivan/src/test/java/mivan/UserTest.java index d7efa13..efc8f40 100644 --- a/mivan/src/test/java/mivan/UserTest.java +++ b/mivan/src/test/java/mivan/UserTest.java @@ -23,12 +23,12 @@ class UserTest { @Order(1) void testAddUser() { - String firstname = "Ivan"; - String lastname = "Donati"; - String city = "Milano"; - String username = "p.donati"; - String email = "p.donati@campus.unimib.it"; - String password = "pdonatipassword"; + String firstname = "test_add_user_name"; + String lastname = "test_add_user_lastname"; + String city = "test_add_user_city"; + String username = "test_add_user_username"; + String email = "test_add_user_email"; + String password = "test_add_user_password"; User user = new User(firstname, lastname, city, username, email, password); int size = userRepository.getSize(); @@ -44,12 +44,12 @@ class UserTest { @Order(2) void testUpdateCompany() { - String firstname = "Simone"; - String lastname = "Donati"; - String city = "Milano"; - String username = "i.donati"; - String email = "i.donati@campus.unimib.it"; - String password = "passwordsicura"; + String firstname = "test_update_user_name"; + String lastname = "test_update_user_lastname"; + String city = "test_update_user_city"; + String username = "test_update_user_username"; + String email = "test_update_user_email"; + String password = "test_update_user_password"; User newuser = new User(firstname, lastname, city, username, email, password); @@ -59,12 +59,12 @@ class UserTest { long id = editUser.getId(); - String newfirstname = "Ivans"; - String newlastname = "Donatis"; - String newcity = "Milanos"; - String newusername = "asd.donati1s"; - String newemail = "asd.donati@campus.unimib.com"; - String newpassword = "newpdonatipassword"; + String newfirstname = "test_update_user_newname"; + String newlastname = "test_update_user_newlastname"; + String newcity = "test_update_user_newcity"; + String newusername = "test_update_user_newusername"; + String newemail = "test_update_user_newemail"; + String newpassword = "test_update_user_newpassword"; userRepository.updateUser(id, newfirstname, newlastname, newcity, newusername, newemail, newpassword); @@ -84,12 +84,12 @@ class UserTest { @Order(3) void testDeleteUser() { - String firstname = "Rossi"; - String lastname = "Donati"; - String city = "Milano"; - String username = "r.donati"; - String email = "r.donati@campus.unimib.it"; - String password = "rdonatipassword"; + String firstname = "test_delete_user_name"; + String lastname = "test_delete_user_lastname"; + String city = "test_delete_user_city"; + String username = "test_delete_user_username"; + String email = "test_delete_user_email"; + String password = "test_delete_user_password"; User newuser = new User(firstname, lastname, city, username, email, password); From 3315249c70f9d8d8a98d8c3ec2fe0c4aa52c2182 Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Sun, 12 Jan 2020 23:46:57 +0100 Subject: [PATCH 15/25] Update UserTest.java --- mivan/src/test/java/mivan/UserTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mivan/src/test/java/mivan/UserTest.java b/mivan/src/test/java/mivan/UserTest.java index efc8f40..cea2a7f 100644 --- a/mivan/src/test/java/mivan/UserTest.java +++ b/mivan/src/test/java/mivan/UserTest.java @@ -42,7 +42,7 @@ class UserTest { @Test @Order(2) - void testUpdateCompany() { + void testUpdateUser() { String firstname = "test_update_user_name"; String lastname = "test_update_user_lastname"; From 3e8775e93f6d1a0fc11cae27405e4879fe11b431 Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Mon, 13 Jan 2020 00:23:02 +0100 Subject: [PATCH 16/25] Aggunto loan base con loanrepository --- mivan/src/main/java/mivan/model/Loan.java | 63 ++++++++++++ .../java/mivan/repository/LoanRepository.java | 16 +++ .../mivan/repository/LoanRepositoryImpl.java | 98 +++++++++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 mivan/src/main/java/mivan/model/Loan.java create mode 100644 mivan/src/main/java/mivan/repository/LoanRepository.java create mode 100644 mivan/src/main/java/mivan/repository/LoanRepositoryImpl.java diff --git a/mivan/src/main/java/mivan/model/Loan.java b/mivan/src/main/java/mivan/model/Loan.java new file mode 100644 index 0000000..34f2e45 --- /dev/null +++ b/mivan/src/main/java/mivan/model/Loan.java @@ -0,0 +1,63 @@ +package mivan.model; + +import javax.persistence.Column; +import javax.persistence.Id; + +public class Loan { + + private static final long serialVersionUID = -5124436115031696628L; + + @Id + @Column(name = "id", nullable=false, unique=true) + private long id; + + @Column(name = "date_start", nullable = false) + private String date_start; + + @Column(name = "date_end", nullable = false) + private String date_end; + + @Column(name = "state", nullable = false) + private String state; + + public Loan(long id, String date_start, String date_end, String state) { + this.id = id; + this.date_start = date_start; + this.date_end = date_end; + this.state = state; + } + + public long getId() { + return id; + } + + public String getDate_start() { + return date_start; + } + + public String getDate_end() { + return date_end; + } + + public String getState() { + return state; + } + + public void setId(long id) { + this.id = id; + } + + public void setDate_start(String date_start) { + this.date_start = date_start; + } + + public void setDate_end(String date_end) { + this.date_end = date_end; + } + + public void setState(String state) { + this.state = state; + } + + +} diff --git a/mivan/src/main/java/mivan/repository/LoanRepository.java b/mivan/src/main/java/mivan/repository/LoanRepository.java new file mode 100644 index 0000000..4898199 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/LoanRepository.java @@ -0,0 +1,16 @@ +package mivan.repository; + + +import mivan.model.Loan; + +public interface LoanRepository extends Repository { + + public void deleteLoanById(Long id); + + public void addLoan(Loan loan); + + public void updateLoan(Long id, String stato); + + public int getSize(); + +} diff --git a/mivan/src/main/java/mivan/repository/LoanRepositoryImpl.java b/mivan/src/main/java/mivan/repository/LoanRepositoryImpl.java new file mode 100644 index 0000000..0dec829 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/LoanRepositoryImpl.java @@ -0,0 +1,98 @@ +package mivan.repository; + +import java.util.List; +import java.util.Optional; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +import mivan.model.Loan; + +public class LoanRepositoryImpl implements LoanRepository{ + + private EntityManagerFactory entityManagerFactory; + + public LoanRepositoryImpl() { + this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); + } + + public Optional findById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + Loan loan = entityManager.find(Loan.class, id); + entityManager.close(); + return Optional.ofNullable(loan); + } + + @Override + public Iterable findAll() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + List loan = entityManager.createQuery("FROM Loan", Loan.class).getResultList(); + entityManager.close(); + return loan; + } + + @Override + public void deleteLoanById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Loan loan = entityManager.find(Loan.class, id); + entityManager.remove(loan); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public void addLoan(Loan loan) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + entityManager.persist(loan); + entityManager.getTransaction().commit(); + entityManager.close(); + + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public void updateLoan(Long id, String state) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Loan loan = entityManager.find(Loan.class, id); + loan.setState(state); + entityManager.persist(loan); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + + @Override + public int getSize() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + int size = 0; + try { + size = entityManager.createQuery("FROM Loan").getResultList().size(); + + entityManager.close(); + } catch (Exception ex) { + size = 0; + } + return size; + } +} From 1455880a008b11ac20efc9d8992d4d1a1853af75 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Mon, 13 Jan 2020 00:24:41 +0100 Subject: [PATCH 17/25] Integrazione doc --- .gitignore | 1 + doc/bibliography.bib | 26 ++++++++++++++++++++++++++ doc/chapters/02_progetto.tex | 21 ++++++++++++++++++--- doc/chapters/03_esecuzione.tex | 10 ++++++---- 4 files changed, 51 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 0c01375..38c7bc6 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ *.toc *.out *.bbl +*.bbl~ *.blg *.bib~ diff --git a/doc/bibliography.bib b/doc/bibliography.bib index 8b13789..637fad3 100644 --- a/doc/bibliography.bib +++ b/doc/bibliography.bib @@ -1 +1,27 @@ +@article{docker, + title = {Docker Documentation}, + author = {Docker Inc}, + year={2019}, + journal = {docs.docker.com} +} +@article{pip, + title = {The Python Package Installer Documentation}, + author = {PyPA}, + year={2019}, + journal = {pip.pypa.io/en/stable/} +} + +@article{jpa, + title = {Using JPA}, + author = {Spring}, + year={2019}, + journal = {https://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/reference/htmlsingle/\#boot-features-jpa-and-spring-data} +} + +@article{maven, + title = {Apache Maven Documentation}, + author = {Apache Software Foundation}, + year={2019}, + journal = {https://maven.apache.org/guides/index.html} +} diff --git a/doc/chapters/02_progetto.tex b/doc/chapters/02_progetto.tex index 4b934d1..dfe5cca 100644 --- a/doc/chapters/02_progetto.tex +++ b/doc/chapters/02_progetto.tex @@ -23,12 +23,27 @@ Una volta stesa una bozza definitva e chiara sulle entità, relazioni e relativi L'applicazione è strutturata in diversi \textit{package} con ognuno funzionalità specifiche: \begin{itemize} - \item \textbf{com.mivan.model:} In questo package sono presenti tutte le entità del modello dati dell'applicazione, implementate in classi \textit{Author}, \textit{Book}, \textit{Location}, \textit{Staff}, \textit{User}, \textit{Loan}, \textit{Item} e \textit{Item}. Per gestire la persistenza dei dati di un database relazionere, per tali classi sono state utilizzate le annotazioni delle \textit{JPA} (\textit{Java Persistence API}). + \item \textbf{com.mivan.model:} In questo package sono presenti tutte le entità del modello dati dell'applicazione, implementate in classi \textit{Author}, \textit{Book}, \textit{Location}, \textit{Staff}, \textit{User}, \textit{Loan}, \textit{Item} e \textit{Item}. Per gestire la persistenza dei dati di un database relazionere, per tali classi sono state utilizzate le annotazioni delle \textit{JPA} \cite{jpa} (\textit{Java Persistence API}). \item \textbf{com.mivan.repository:} In questo package sono implementate le query per l'interrogazione al database. \end{itemize} \section{Test} -Per verificare l'effettivo funzionamento del programma sono stati sviluppati dei test d'integrazione, posizionati all'interno della cartella \code{mivan/src/test/java/}. +Per verificare l'effettivo funzionamento del programma sono stati sviluppati dei test d'integrazione, posizionati all'interno della cartella del'applicazione \code{mivan/src/test/java/mivan/}. +\newline +Le classi presenti nella cartella sono in seguito elencate: -Per i \textit{JUnit test} volti a verificare la \textit{corretta esecuzione} delle operazioni \textit{CRUD} (\textit{Create, Read, Update, Delete}) è stato fatto uso dell'engine \textit{H2}, il quale consente di eseguire tali operazioni su un \textit{database temporaneo} caricato in memoria (\textit{RAM}). Tale approccio consente \textit{arginare} del tutto il problema di intaccare il database persistente dai dati fittizzi dei test. +\begin{itemize} + \item \textbf{AuthorTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) degli \textit{autori}. + \item \textbf{BookTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) dei libri. + \item \textbf{AuthorBookTest:} Consente di testare l'\textit{aggiunta}, la \textit{modifica} e l'\textit{eliminazione} (ed anche \textit{lettura} nei primi due test) degli \textit{autori} ai \textit{libri} e viceversa. + \item \textbf{LocationTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) delle \textit{sedi} del sistema bibliotecario. + \item \textbf{StaffTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) dello \textit{staff}. + \item \textbf{UserTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) degli \textit{utenti}. + \item \textbf{ItemTest:} Consente di testare l'\textit{aggiunta}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) delle singole \textit{unità di libro} (\textit{Item}). + \item \textbf{LoanTest:} Consente di testare l'\textit{aggiunta}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) dei \textit{prestiti}. +\end{itemize} + +Come è possibile osservare nell'elenco sovrastante i \textit{JUnit test} volti a verificare la \textit{corretta esecuzione} delle operazioni \textit{CRUD} (\textit{Create, Read, Update, Delete}) è stato fatto uso dell'engine \textit{H2}, il quale consente di eseguire tali operazioni su un \textit{database temporaneo} caricato in memoria (\textit{RAM}). + +Tale approccio consente \textit{arginare} del tutto il problema di intaccare il database persistente dai dati fittizzi dei test. diff --git a/doc/chapters/03_esecuzione.tex b/doc/chapters/03_esecuzione.tex index 102e0e3..4b8e70a 100644 --- a/doc/chapters/03_esecuzione.tex +++ b/doc/chapters/03_esecuzione.tex @@ -1,14 +1,16 @@ \section{Requisiti} -L'applicazione è stata sviluppata, eseguita e testata su sistemi \textit{UNIX Like}, in particolare sulla distribuzione \textit{GNU/Linux Debian}.\newline -Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi.\newline -Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) e \code{mvn} corrispondenti rispettivamente a \textit{Open Java Development Kit} ed al tool \textit{Apache Maven}; in caso di Debian o derivate si usa il seguente comando: +L'applicazione è stata sviluppata, eseguita e testata su sistemi \textit{UNIX Like}, in particolare sulla distribuzione \textit{GNU/Linux Debian}. + +Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi. + +Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) e \code{mvn} corrispondenti rispettivamente a \textit{Open Java Development Kit} ed al tool \textit{Apache Maven} \cite{maven}; in caso di Debian o derivate si usa il seguente comando: \newline \begin{lstlisting}[style=BashInputStyle] $ sudo apt-get install openjdk-8-jdk mvn \end{lstlisting} -In caso si volesse usare \textit{Docker} allora le dipendenze sono \textit{docker-compose}, ed ovviamente \textit{docker} stesso. \textit{Compose} è presente nella maggior parte delle repo delle distro, il problema è che non è sempre aggiornato, per cui si ovvierà a questo possibile problema per mezzo di \code{pip}. +In caso si volesse usare \textit{Docker} allora le dipendenze sono \textit{docker-compose}\cite{docker}, ed ovviamente \textit{docker} stesso. \textit{Compose} è presente nella maggior parte delle repo delle distro, il problema è che non è sempre aggiornato, per cui si ovvierà a questo possibile problema per mezzo di \code{pip}. \cite{pip} La serie di comandi è la seguente, in caso di distro diversa da Debian usare il relativo gestore di pacchetti in sostituzione ad apt: \newline From d70aca0acac1053546f40562ef35ca7f46117c45 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Mon, 13 Jan 2020 00:39:20 +0100 Subject: [PATCH 18/25] Aggiunto Item ItemRepo e relativi test --- mivan/src/main/java/mivan/model/Item.java | 61 ++++++++++++++ .../java/mivan/repository/ItemRepository.java | 13 +++ .../mivan/repository/ItemRepositoryImpl.java | 81 +++++++++++++++++++ mivan/src/test/java/mivan/ItemTest.java | 58 +++++++++++++ 4 files changed, 213 insertions(+) create mode 100644 mivan/src/main/java/mivan/model/Item.java create mode 100644 mivan/src/main/java/mivan/repository/ItemRepository.java create mode 100644 mivan/src/main/java/mivan/repository/ItemRepositoryImpl.java create mode 100644 mivan/src/test/java/mivan/ItemTest.java diff --git a/mivan/src/main/java/mivan/model/Item.java b/mivan/src/main/java/mivan/model/Item.java new file mode 100644 index 0000000..856d073 --- /dev/null +++ b/mivan/src/main/java/mivan/model/Item.java @@ -0,0 +1,61 @@ +package mivan.model; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name="item") +public class Item implements Serializable{ + private static final long serialVersionUID = 1993L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", unique = true) + private long id; + + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="isbn") + private Book book; + + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="location") + private Location location; + + public Item () {} + public Item(Book book, Location location){ + super(); + this.book = book; + this.location = location; + } + + public long getId() { + return this.id; + } + + public Book getBook(){ + return this.book; + } + + public void setBook(Book book){ + this.book = book; + } + + public Location getLocation() { + return this.location; + } + + public void setLocation(Location location) { + this.location = location; + } + + +} \ No newline at end of file diff --git a/mivan/src/main/java/mivan/repository/ItemRepository.java b/mivan/src/main/java/mivan/repository/ItemRepository.java new file mode 100644 index 0000000..e011ab2 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/ItemRepository.java @@ -0,0 +1,13 @@ +package mivan.repository; + +import mivan.model.Item; + +public interface ItemRepository extends Repository { + + public void deleteItemById(Long id); + + public void addItem(Item item); + + public int getSize(); + +} \ No newline at end of file diff --git a/mivan/src/main/java/mivan/repository/ItemRepositoryImpl.java b/mivan/src/main/java/mivan/repository/ItemRepositoryImpl.java new file mode 100644 index 0000000..6c89526 --- /dev/null +++ b/mivan/src/main/java/mivan/repository/ItemRepositoryImpl.java @@ -0,0 +1,81 @@ +package mivan.repository; +import java.util.List; +import java.util.Optional; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +import mivan.model.Item; + +public class ItemRepositoryImpl implements ItemRepository { + private EntityManagerFactory entityManagerFactory; + + public ItemRepositoryImpl() { + this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); + } + @Override + public Optional findById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + Item item = entityManager.find(Item.class, id); + entityManager.close(); + return Optional.ofNullable(item); + } + + @Override + public Iterable findAll() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + List items = entityManager.createQuery("FROM Item", Item.class).getResultList(); + entityManager.close(); + return items; + } + + @Override + public void deleteItemById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + Item item = entityManager.find(Item.class, id); + entityManager.remove(item); + entityManager.getTransaction().commit(); + entityManager.close(); + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + } + + @Override + public void addItem(Item item) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + try { + if (!entityManager.getTransaction().isActive()) { + entityManager.getTransaction().begin(); + } + entityManager.persist(item); + entityManager.getTransaction().commit(); + entityManager.close(); + + } catch (Exception ex) { + entityManager.getTransaction().rollback(); + } + + } + + @Override + public int getSize() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + int size = 0; + try { + size = entityManager.createQuery("FROM Item").getResultList().size(); + + entityManager.close(); + } catch (Exception ex) { + size = 0; + } + return size; + } + + +} \ No newline at end of file diff --git a/mivan/src/test/java/mivan/ItemTest.java b/mivan/src/test/java/mivan/ItemTest.java new file mode 100644 index 0000000..a3e5b8b --- /dev/null +++ b/mivan/src/test/java/mivan/ItemTest.java @@ -0,0 +1,58 @@ +package mivan; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Optional; + +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; + +import mivan.model.Book; +import mivan.model.Item; +import mivan.model.Location; +import mivan.repository.BookRepository; +import mivan.repository.ItemRepository; +import mivan.repository.ItemRepositoryImpl; + +@TestMethodOrder(OrderAnnotation.class) +public class ItemTest { + private ItemRepository itemRepository = new ItemRepositoryImpl(); + + + @Test + @Order(1) + void testAddItem() { + Book book = null; + Location location = null; + Item item = new Item(book, location); + itemRepository.addItem(item); + int size = itemRepository.getSize(); + assertEquals(1, size); + } + + + @Test + @Order(2) + void testRemoveItem() { + int startSize = itemRepository.getSize(); + Book book = null; + Location location = null; + Item item = new Item(book, location); + itemRepository.addItem(item); + int size = itemRepository.getSize(); + assertEquals(startSize + 1, size); + + Optional optItem2 = itemRepository.findById(item.getId()); + + Item item2 = optItem2.get(); + long ID = item2.getId(); + itemRepository.deleteItemById(ID); + + int finalSize = itemRepository.getSize(); + assertEquals(startSize, finalSize); + + + } +} \ No newline at end of file From 67f8ed48666b6da3c9c980ecfa17d4af585898e2 Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Mon, 13 Jan 2020 00:44:00 +0100 Subject: [PATCH 19/25] Update Loan.java --- mivan/src/main/java/mivan/model/Loan.java | 39 +++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/mivan/src/main/java/mivan/model/Loan.java b/mivan/src/main/java/mivan/model/Loan.java index 34f2e45..f4dade9 100644 --- a/mivan/src/main/java/mivan/model/Loan.java +++ b/mivan/src/main/java/mivan/model/Loan.java @@ -1,7 +1,10 @@ package mivan.model; import javax.persistence.Column; +import javax.persistence.FetchType; import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; public class Loan { @@ -19,6 +22,18 @@ public class Loan { @Column(name = "state", nullable = false) private String state; + + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="item") + private Item item; + + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="staff") + private Staff staff; + + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="user") + private User user; public Loan(long id, String date_start, String date_end, String state) { this.id = id; @@ -59,5 +74,29 @@ public class Loan { this.state = state; } + public Item getItem() { + return item; + } + + public Staff getStaff() { + return staff; + } + + public User getUser() { + return user; + } + + public void setItem(Item item) { + this.item = item; + } + + public void setStaff(Staff staff) { + this.staff = staff; + } + + public void setUser(User user) { + this.user = user; + } + } From a31336e7654cf684722938c58b78cc1c40098602 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Mon, 13 Jan 2020 01:07:16 +0100 Subject: [PATCH 20/25] Versione definitiva della relazione con ultimi fix --- assignment3_mivan.pdf | Bin 197015 -> 464958 bytes doc/img/eer.pdf | Bin 0 -> 145505 bytes doc/img/er.pdf | Bin 0 -> 15579 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/img/eer.pdf create mode 100644 doc/img/er.pdf diff --git a/assignment3_mivan.pdf b/assignment3_mivan.pdf index 723d653378a1172b56f7f98f674bcaf3f4fd8c1c..2b43d1ce89e83d2e10c0f74ef861bd3247015cba 100644 GIT binary patch delta 405438 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 z +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μ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

_xm%wZU6}LE!1u$9yIWd<&oCXvUFfuj@ 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 literal 0 HcmV?d00001 diff --git a/doc/img/er.pdf b/doc/img/er.pdf new file mode 100644 index 0000000000000000000000000000000000000000..63f6e5e5ad0c6e97744c6ef13224ade283f976cb GIT binary patch literal 15579 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 TbEFwqfNYF#q@*HpqHzBY6)%&Q literal 0 HcmV?d00001 From b9dfb8e48be363260ae332fdbb95d14bfb8c3562 Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Mon, 13 Jan 2020 01:18:17 +0100 Subject: [PATCH 21/25] Update Loan.java --- mivan/src/main/java/mivan/model/Loan.java | 63 ++++++++++++----------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/mivan/src/main/java/mivan/model/Loan.java b/mivan/src/main/java/mivan/model/Loan.java index f4dade9..0e2b844 100644 --- a/mivan/src/main/java/mivan/model/Loan.java +++ b/mivan/src/main/java/mivan/model/Loan.java @@ -9,11 +9,11 @@ import javax.persistence.ManyToOne; public class Loan { private static final long serialVersionUID = -5124436115031696628L; - + @Id - @Column(name = "id", nullable=false, unique=true) + @Column(name = "id", nullable = false, unique = true) private long id; - + @Column(name = "date_start", nullable = false) private String date_start; @@ -22,24 +22,26 @@ public class Loan { @Column(name = "state", nullable = false) private String state; - - @ManyToOne(fetch=FetchType.LAZY) - @JoinColumn(name="item") - private Item item; - - @ManyToOne(fetch=FetchType.LAZY) - @JoinColumn(name="staff") - private Staff staff; - - @ManyToOne(fetch=FetchType.LAZY) - @JoinColumn(name="user") - private User user; - - public Loan(long id, String date_start, String date_end, String state) { - this.id = id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "item") + private Item item; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "staff") + private Staff staff; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user") + private User user; + + public Loan(String date_start, String date_end, String state, Item item, Staff staff, User user) { this.date_start = date_start; this.date_end = date_end; this.state = state; + this.item = item; + this.staff = staff; + this.user = user; } public long getId() { @@ -58,6 +60,18 @@ public class Loan { return state; } + public Item getItem() { + return item; + } + + public Staff getStaff() { + return staff; + } + + public User getUser() { + return user; + } + public void setId(long id) { this.id = id; } @@ -74,18 +88,6 @@ public class Loan { this.state = state; } - public Item getItem() { - return item; - } - - public Staff getStaff() { - return staff; - } - - public User getUser() { - return user; - } - public void setItem(Item item) { this.item = item; } @@ -98,5 +100,4 @@ public class Loan { this.user = user; } - } From 3e2f8b49cded1f2dce83689070f64b31d7177f7c Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Mon, 13 Jan 2020 01:34:23 +0100 Subject: [PATCH 22/25] Update Loan.java and LoanTest.java --- mivan/src/main/java/mivan/model/Loan.java | 14 +-- mivan/src/test/java/mivan/LoanTest.java | 100 ++++++++++++++++++++++ 2 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 mivan/src/test/java/mivan/LoanTest.java diff --git a/mivan/src/main/java/mivan/model/Loan.java b/mivan/src/main/java/mivan/model/Loan.java index 0e2b844..5c03d4b 100644 --- a/mivan/src/main/java/mivan/model/Loan.java +++ b/mivan/src/main/java/mivan/model/Loan.java @@ -15,10 +15,10 @@ public class Loan { private long id; @Column(name = "date_start", nullable = false) - private String date_start; + private long date_start; @Column(name = "date_end", nullable = false) - private String date_end; + private long date_end; @Column(name = "state", nullable = false) private String state; @@ -35,7 +35,7 @@ public class Loan { @JoinColumn(name = "user") private User user; - public Loan(String date_start, String date_end, String state, Item item, Staff staff, User user) { + public Loan(long date_start, long date_end, String state, Item item, Staff staff, User user) { this.date_start = date_start; this.date_end = date_end; this.state = state; @@ -48,11 +48,11 @@ public class Loan { return id; } - public String getDate_start() { + public long getDate_start() { return date_start; } - public String getDate_end() { + public long getDate_end() { return date_end; } @@ -76,11 +76,11 @@ public class Loan { this.id = id; } - public void setDate_start(String date_start) { + public void setDate_start(long date_start) { this.date_start = date_start; } - public void setDate_end(String date_end) { + public void setDate_end(long date_end) { this.date_end = date_end; } diff --git a/mivan/src/test/java/mivan/LoanTest.java b/mivan/src/test/java/mivan/LoanTest.java new file mode 100644 index 0000000..a3c2778 --- /dev/null +++ b/mivan/src/test/java/mivan/LoanTest.java @@ -0,0 +1,100 @@ +package mivan; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Optional; + +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; + +import mivan.model.Item; +import mivan.model.Loan; +import mivan.model.Staff; +import mivan.model.User; +import mivan.repository.LoanRepository; +import mivan.repository.LoanRepositoryImpl; + +public class LoanTest { + + private LoanRepository loanRepository = new LoanRepositoryImpl(); + + @Test + @Order(1) + void testAddBook() { + + long date_start = 1234; + long date_end = 2345; + String state = "loaning"; + + Item item = null; + Staff staff = null; + User user = null; + + Loan loan = new Loan(date_start, date_end, state, item, staff, user); + + loanRepository.addLoan(loan); + + int size = loanRepository.getSize(); + + assertEquals(size, 1); + + } + + @Test + @Order(2) + void testUpdateBook() { + + long date_start = 1234; + long date_end = 2345; + String state = "loaning"; + + Item item = null; + Staff staff = null; + User user = null; + + Loan loan = new Loan(date_start, date_end, state, item, staff, user); + + loanRepository.addLoan(loan); + + String update_state = "returned"; + + loanRepository.updateLoan(1L,update_state); + + Optional opt_loan = loanRepository.findById(1L); + + Loan loan2 = opt_loan.get(); + assertTrue(update_state.equals(loan2.getState())); + + } + + @Test + @Order(3) + void testDeleteBook() { + + + long date_start = 1234; + long date_end = 2345; + String state = "loaning"; + + Item item = null; + Staff staff = null; + User user = null; + + Loan loan = new Loan(date_start, date_end, state, item, staff, user); + + loanRepository.addLoan(loan); + + Optional opt_loan2 = loanRepository.findById(1L); + + Loan book2 = opt_loan2.get(); + long ID = book2.getId(); + + int start_size = loanRepository.getSize(); + loanRepository.deleteLoanById(ID); + + int size = loanRepository.getSize(); + + assertEquals(start_size, size); + } +} From c0b79722a9113afbd9bec58a078e4648ed6b0e5f Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Mon, 13 Jan 2020 01:40:35 +0100 Subject: [PATCH 23/25] Update LoanTest.java --- mivan/src/test/java/mivan/LoanTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mivan/src/test/java/mivan/LoanTest.java b/mivan/src/test/java/mivan/LoanTest.java index a3c2778..58552cf 100644 --- a/mivan/src/test/java/mivan/LoanTest.java +++ b/mivan/src/test/java/mivan/LoanTest.java @@ -21,7 +21,7 @@ public class LoanTest { @Test @Order(1) - void testAddBook() { + void testAddLoan() { long date_start = 1234; long date_end = 2345; @@ -43,7 +43,7 @@ public class LoanTest { @Test @Order(2) - void testUpdateBook() { + void testUpdateLoan() { long date_start = 1234; long date_end = 2345; @@ -70,7 +70,7 @@ public class LoanTest { @Test @Order(3) - void testDeleteBook() { + void testDeleteLoan() { long date_start = 1234; From 0850c9f730c15babc659ca771b7006959b280927 Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Mon, 13 Jan 2020 01:59:28 +0100 Subject: [PATCH 24/25] Update Loan.java and LoanTest.java --- mivan/src/main/java/mivan/model/Loan.java | 11 ++++++++++- mivan/src/test/java/mivan/LoanTest.java | 16 ++++++++-------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/mivan/src/main/java/mivan/model/Loan.java b/mivan/src/main/java/mivan/model/Loan.java index 5c03d4b..8dfa84d 100644 --- a/mivan/src/main/java/mivan/model/Loan.java +++ b/mivan/src/main/java/mivan/model/Loan.java @@ -1,12 +1,18 @@ package mivan.model; +import java.io.Serializable; + import javax.persistence.Column; +import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; +import javax.persistence.Table; -public class Loan { +@Entity +@Table(name = "loan") +public class Loan implements Serializable { private static final long serialVersionUID = -5124436115031696628L; @@ -35,6 +41,9 @@ public class Loan { @JoinColumn(name = "user") private User user; + public Loan() { + } + public Loan(long date_start, long date_end, String state, Item item, Staff staff, User user) { this.date_start = date_start; this.date_end = date_end; diff --git a/mivan/src/test/java/mivan/LoanTest.java b/mivan/src/test/java/mivan/LoanTest.java index 58552cf..af0ab4c 100644 --- a/mivan/src/test/java/mivan/LoanTest.java +++ b/mivan/src/test/java/mivan/LoanTest.java @@ -59,9 +59,9 @@ public class LoanTest { String update_state = "returned"; - loanRepository.updateLoan(1L,update_state); - - Optional opt_loan = loanRepository.findById(1L); + loanRepository.updateLoan(0L,update_state); + + Optional opt_loan = loanRepository.findById(0L); Loan loan2 = opt_loan.get(); assertTrue(update_state.equals(loan2.getState())); @@ -72,9 +72,9 @@ public class LoanTest { @Order(3) void testDeleteLoan() { - - long date_start = 1234; - long date_end = 2345; + int start_size = loanRepository.getSize(); + long date_start = 1876; + long date_end = 9876; String state = "loaning"; Item item = null; @@ -85,12 +85,12 @@ public class LoanTest { loanRepository.addLoan(loan); - Optional opt_loan2 = loanRepository.findById(1L); + Optional opt_loan2 = loanRepository.findById(0L); Loan book2 = opt_loan2.get(); long ID = book2.getId(); - int start_size = loanRepository.getSize(); + loanRepository.deleteLoanById(ID); int size = loanRepository.getSize(); From ba2f9e2b0c47ac3c87bfbc982ec0e5aa08e87741 Mon Sep 17 00:00:00 2001 From: "@Territory91" Date: Mon, 13 Jan 2020 02:05:53 +0100 Subject: [PATCH 25/25] Update Mivan.java, Author.java, and 22 more files... --- mivan/src/main/java/mivan/Mivan.java | 27 +----- mivan/src/main/java/mivan/model/Author.java | 33 +++---- mivan/src/main/java/mivan/model/Book.java | 27 +++--- mivan/src/main/java/mivan/model/Item.java | 89 ++++++++++--------- mivan/src/main/java/mivan/model/Person.java | 74 ++++++++------- .../mivan/repository/AuthorRepository.java | 10 +-- .../repository/AuthorRepositoryImpl.java | 17 ++-- .../java/mivan/repository/BookRepository.java | 15 ++-- .../mivan/repository/BookRepositoryImpl.java | 14 ++- .../java/mivan/repository/ItemRepository.java | 6 +- .../mivan/repository/ItemRepositoryImpl.java | 65 +++++++------- .../java/mivan/repository/LoanRepository.java | 7 +- .../mivan/repository/LoanRepositoryImpl.java | 7 +- .../java/mivan/repository/Repository.java | 5 +- .../mivan/repository/StaffRepository.java | 15 ++-- .../mivan/repository/StaffRepositoryImpl.java | 15 ++-- .../java/mivan/repository/UserRepository.java | 16 ++-- .../mivan/repository/UserRepositoryImpl.java | 18 ++-- mivan/src/test/java/mivan/AuthorBookTest.java | 16 +--- mivan/src/test/java/mivan/AuthorTest.java | 52 ++++++----- mivan/src/test/java/mivan/BookTest.java | 46 ++++------ mivan/src/test/java/mivan/ItemTest.java | 72 +++++++-------- mivan/src/test/java/mivan/LoanTest.java | 21 +++-- mivan/src/test/java/mivan/StaffTest.java | 8 +- 24 files changed, 305 insertions(+), 370 deletions(-) diff --git a/mivan/src/main/java/mivan/Mivan.java b/mivan/src/main/java/mivan/Mivan.java index f8b851a..d367cc8 100644 --- a/mivan/src/main/java/mivan/Mivan.java +++ b/mivan/src/main/java/mivan/Mivan.java @@ -1,37 +1,14 @@ package mivan; -import java.io.Console; - import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import mivan.model.User; -import mivan.repository.UserRepository; -import mivan.repository.UserRepositoryImpl; - @SpringBootApplication public class Mivan { public static void main(String[] args) { - - String firstName = "Paolo"; - String lastName = "Verdi"; - String city = "Milano"; - String username = "p.verdi1"; - String email = "p.verdi1@campus.unimib.it"; - String password = "pverdipassword"; - - User user = new User(firstName, lastName, city, username, email, password); - - - UserRepository userRepository = new UserRepositoryImpl(); - userRepository.addUser(user); - - int size = userRepository.getSize(); - - System.out.print(size); - + SpringApplication.run(Mivan.class, args); - } + } } diff --git a/mivan/src/main/java/mivan/model/Author.java b/mivan/src/main/java/mivan/model/Author.java index 3df1f6d..0aa05e1 100644 --- a/mivan/src/main/java/mivan/model/Author.java +++ b/mivan/src/main/java/mivan/model/Author.java @@ -21,20 +21,22 @@ public class Author implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", unique = true) - private long id; - - @Column(name = "name", nullable=false) - + private long id; + + @Column(name = "name", nullable = false) + private String name; - - @ManyToMany(mappedBy="authors") + + @ManyToMany(mappedBy = "authors") private List books; - - public Author() {} + + public Author() { + } + public Author(String name) { super(); this.name = name; - this.books = new ArrayList (); + this.books = new ArrayList(); } public long getId() { @@ -51,24 +53,23 @@ public class Author implements Serializable { public void setName(String name) { this.name = name; - } - + } + public List getBooks() { return this.books; } - + public void addBook(Book book) { if (!this.books.contains(book)) { this.books.add(book); book.addAuthor(this); } } - + public void removeBook(Book book) { if (this.books.contains(book)) this.books.remove(book); - book.removeAuthor(this); + book.removeAuthor(this); } - - + } diff --git a/mivan/src/main/java/mivan/model/Book.java b/mivan/src/main/java/mivan/model/Book.java index 0c00668..6932874 100644 --- a/mivan/src/main/java/mivan/model/Book.java +++ b/mivan/src/main/java/mivan/model/Book.java @@ -16,29 +16,26 @@ import javax.persistence.Table; @Entity @Table(name = "book") public class Book implements Serializable { - + private static final long serialVersionUID = 19L; - + @Id - @Column(name = "isbn", nullable=false, unique=true) + @Column(name = "isbn", nullable = false, unique = true) private long isbn; - @Column(name = "title", nullable=false) + @Column(name = "title", nullable = false) private String title; @OneToOne private Book prequel; - + @ManyToMany - @JoinTable( - name = "book_has_author", - joinColumns=@JoinColumn(name="isbn", referencedColumnName="isbn"), - inverseJoinColumns=@JoinColumn(name="id", referencedColumnName="id") ) + @JoinTable(name = "book_has_author", joinColumns = @JoinColumn(name = "isbn", referencedColumnName = "isbn"), inverseJoinColumns = @JoinColumn(name = "id", referencedColumnName = "id")) private List authors; - + public Book() { } - + public Book(long isbn, String title, Book prequel) { this.isbn = isbn; this.title = title; @@ -73,7 +70,7 @@ public class Book implements Serializable { public List getAuthors() { return this.authors; } - + public void addAuthor(Author author) { if (!this.authors.contains(author)) { @@ -81,13 +78,13 @@ public class Book implements Serializable { author.addBook(this); } } - + public void removeAuthor(Author author) { if (this.authors.contains(author)) { this.authors.remove(author); author.removeBook(this); } - + } - + } diff --git a/mivan/src/main/java/mivan/model/Item.java b/mivan/src/main/java/mivan/model/Item.java index 856d073..16f2117 100644 --- a/mivan/src/main/java/mivan/model/Item.java +++ b/mivan/src/main/java/mivan/model/Item.java @@ -13,49 +13,50 @@ import javax.persistence.ManyToOne; import javax.persistence.Table; @Entity -@Table(name="item") -public class Item implements Serializable{ - private static final long serialVersionUID = 1993L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "id", unique = true) - private long id; - - @ManyToOne(fetch=FetchType.LAZY) - @JoinColumn(name="isbn") - private Book book; - - @ManyToOne(fetch=FetchType.LAZY) - @JoinColumn(name="location") - private Location location; - - public Item () {} - public Item(Book book, Location location){ - super(); - this.book = book; - this.location = location; - } - - public long getId() { - return this.id; - } - - public Book getBook(){ - return this.book; - } - - public void setBook(Book book){ - this.book = book; - } - - public Location getLocation() { - return this.location; - } - - public void setLocation(Location location) { - this.location = location; - } - +@Table(name = "item") +public class Item implements Serializable { + private static final long serialVersionUID = 1993L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", unique = true) + private long id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "isbn") + private Book book; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "location") + private Location location; + + public Item() { + } + + public Item(Book book, Location location) { + super(); + this.book = book; + this.location = location; + } + + public long getId() { + return this.id; + } + + public Book getBook() { + return this.book; + } + + public void setBook(Book book) { + this.book = book; + } + + public Location getLocation() { + return this.location; + } + + public void setLocation(Location location) { + this.location = location; + } } \ No newline at end of file diff --git a/mivan/src/main/java/mivan/model/Person.java b/mivan/src/main/java/mivan/model/Person.java index 9c9d46a..59f28cb 100644 --- a/mivan/src/main/java/mivan/model/Person.java +++ b/mivan/src/main/java/mivan/model/Person.java @@ -7,27 +7,25 @@ import javax.persistence.*; @MappedSuperclass public class Person implements Serializable { - private static final long serialVersionUID = -5124436115031696628L; - - + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", unique = true) - private long id; - - @Column(name = "firstName", nullable=false) - private String firstName; - - @Column(name = "lastName", nullable=false) - private String lastName; - + private long id; + + @Column(name = "firstName", nullable = false) + private String firstName; + + @Column(name = "lastName", nullable = false) + private String lastName; + @Column(name = "city") private String city; - - - public Person() {} - + + public Person() { + } + public Person(String firstName, String lastName, String city) { super(); this.firstName = firstName; @@ -36,28 +34,28 @@ public class Person implements Serializable { } public long getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } public String getCity() { return city; @@ -72,6 +70,4 @@ public class Person implements Serializable { return "Person [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", city=" + city + "]"; } - - } diff --git a/mivan/src/main/java/mivan/repository/AuthorRepository.java b/mivan/src/main/java/mivan/repository/AuthorRepository.java index b5fc0d2..007820e 100644 --- a/mivan/src/main/java/mivan/repository/AuthorRepository.java +++ b/mivan/src/main/java/mivan/repository/AuthorRepository.java @@ -7,14 +7,14 @@ public interface AuthorRepository extends Repository { public void deleteAuthorById(Long id); public void addAuthor(Author author); - + public void updateAuthor(Long id, String name); - + public Author searchAuthorByName(String name); - + public void addBook(Long isbn, Long id); - + public void removeBook(Long isbn, Long id); - + public int getSize(); } diff --git a/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java b/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java index ea0d85b..57cbd3c 100644 --- a/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java +++ b/mivan/src/main/java/mivan/repository/AuthorRepositoryImpl.java @@ -17,7 +17,7 @@ public class AuthorRepositoryImpl implements AuthorRepository { public AuthorRepositoryImpl() { this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); } - + @Override public Optional findById(Long id) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); @@ -60,7 +60,7 @@ public class AuthorRepositoryImpl implements AuthorRepository { entityManager.persist(author); entityManager.getTransaction().commit(); entityManager.close(); - + } catch (Exception ex) { entityManager.getTransaction().rollback(); } @@ -89,8 +89,8 @@ public class AuthorRepositoryImpl implements AuthorRepository { Author author = null; try { - author = (Author) entityManager.createQuery("FROM Author u WHERE lower(u.name) = '" + name.toLowerCase() + "'") - .getSingleResult(); + author = (Author) entityManager + .createQuery("FROM Author u WHERE lower(u.name) = '" + name.toLowerCase() + "'").getSingleResult(); entityManager.close(); } catch (Exception ex) { @@ -99,7 +99,7 @@ public class AuthorRepositoryImpl implements AuthorRepository { return author; } - + @Override public int getSize() { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); @@ -113,7 +113,7 @@ public class AuthorRepositoryImpl implements AuthorRepository { } return size; } - + @Override public void addBook(Long isbn, Long id) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); @@ -130,7 +130,7 @@ public class AuthorRepositoryImpl implements AuthorRepository { entityManager.close(); } catch (Exception ex) { entityManager.getTransaction().rollback(); - } + } } @Override @@ -149,8 +149,7 @@ public class AuthorRepositoryImpl implements AuthorRepository { entityManager.close(); } catch (Exception ex) { entityManager.getTransaction().rollback(); - } + } } - } diff --git a/mivan/src/main/java/mivan/repository/BookRepository.java b/mivan/src/main/java/mivan/repository/BookRepository.java index ba772ae..e60335e 100644 --- a/mivan/src/main/java/mivan/repository/BookRepository.java +++ b/mivan/src/main/java/mivan/repository/BookRepository.java @@ -2,22 +2,21 @@ package mivan.repository; import mivan.model.Book; -public interface BookRepository extends Repository{ - - //public Optional findUserAddressById(Long id); +public interface BookRepository extends Repository { + + // public Optional findUserAddressById(Long id); public void deleteBookById(Long isbn); public void addBook(Book book); - + public void updateBook(Long isbn, String title, Book prequel); - + public Book searchBookByTitle(String title); - + public void addAuthor(Long isbn, Long id); - + public void removeAuthor(Long isbn, Long id); public int getSize(); } - diff --git a/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java b/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java index 4c0006e..d83885c 100644 --- a/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java +++ b/mivan/src/main/java/mivan/repository/BookRepositoryImpl.java @@ -14,7 +14,7 @@ public class BookRepositoryImpl implements BookRepository { private EntityManagerFactory entityManagerFactory; - public BookRepositoryImpl(){ + public BookRepositoryImpl() { this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); } @@ -51,7 +51,7 @@ public class BookRepositoryImpl implements BookRepository { } @Override - public void addBook(Book book) { + public void addBook(Book book) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { @@ -60,7 +60,7 @@ public class BookRepositoryImpl implements BookRepository { entityManager.persist(book); entityManager.getTransaction().commit(); entityManager.close(); - + } catch (Exception ex) { entityManager.getTransaction().rollback(); } @@ -117,8 +117,6 @@ public class BookRepositoryImpl implements BookRepository { return size; } - - @Override public void addAuthor(Long isbn, Long id) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); @@ -135,7 +133,7 @@ public class BookRepositoryImpl implements BookRepository { entityManager.close(); } catch (Exception ex) { entityManager.getTransaction().rollback(); - } + } } @Override @@ -154,9 +152,7 @@ public class BookRepositoryImpl implements BookRepository { entityManager.close(); } catch (Exception ex) { entityManager.getTransaction().rollback(); - } + } } - - } diff --git a/mivan/src/main/java/mivan/repository/ItemRepository.java b/mivan/src/main/java/mivan/repository/ItemRepository.java index e011ab2..924b528 100644 --- a/mivan/src/main/java/mivan/repository/ItemRepository.java +++ b/mivan/src/main/java/mivan/repository/ItemRepository.java @@ -4,10 +4,10 @@ import mivan.model.Item; public interface ItemRepository extends Repository { - public void deleteItemById(Long id); + public void deleteItemById(Long id); - public void addItem(Item item); + public void addItem(Item item); - public int getSize(); + public int getSize(); } \ No newline at end of file diff --git a/mivan/src/main/java/mivan/repository/ItemRepositoryImpl.java b/mivan/src/main/java/mivan/repository/ItemRepositoryImpl.java index 6c89526..3e3c89e 100644 --- a/mivan/src/main/java/mivan/repository/ItemRepositoryImpl.java +++ b/mivan/src/main/java/mivan/repository/ItemRepositoryImpl.java @@ -1,4 +1,5 @@ package mivan.repository; + import java.util.List; import java.util.Optional; @@ -9,30 +10,31 @@ import javax.persistence.Persistence; import mivan.model.Item; public class ItemRepositoryImpl implements ItemRepository { - private EntityManagerFactory entityManagerFactory; + private EntityManagerFactory entityManagerFactory; + + public ItemRepositoryImpl() { + this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); + } - public ItemRepositoryImpl() { - this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); - } - @Override - public Optional findById(Long id) { - final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); - Item item = entityManager.find(Item.class, id); - entityManager.close(); - return Optional.ofNullable(item); - } + @Override + public Optional findById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + Item item = entityManager.find(Item.class, id); + entityManager.close(); + return Optional.ofNullable(item); + } - @Override - public Iterable findAll() { - final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); - List items = entityManager.createQuery("FROM Item", Item.class).getResultList(); - entityManager.close(); - return items; - } + @Override + public Iterable findAll() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + List items = entityManager.createQuery("FROM Item", Item.class).getResultList(); + entityManager.close(); + return items; + } - @Override - public void deleteItemById(Long id) { - final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + @Override + public void deleteItemById(Long id) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); @@ -44,11 +46,11 @@ public class ItemRepositoryImpl implements ItemRepository { } catch (Exception ex) { entityManager.getTransaction().rollback(); } - } + } - @Override - public void addItem(Item item) { - final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + @Override + public void addItem(Item item) { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); @@ -56,16 +58,16 @@ public class ItemRepositoryImpl implements ItemRepository { entityManager.persist(item); entityManager.getTransaction().commit(); entityManager.close(); - + } catch (Exception ex) { entityManager.getTransaction().rollback(); } - } + } - @Override - public int getSize() { - final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); + @Override + public int getSize() { + final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); int size = 0; try { size = entityManager.createQuery("FROM Item").getResultList().size(); @@ -75,7 +77,6 @@ public class ItemRepositoryImpl implements ItemRepository { size = 0; } return size; - } + } - } \ No newline at end of file diff --git a/mivan/src/main/java/mivan/repository/LoanRepository.java b/mivan/src/main/java/mivan/repository/LoanRepository.java index 4898199..3e28591 100644 --- a/mivan/src/main/java/mivan/repository/LoanRepository.java +++ b/mivan/src/main/java/mivan/repository/LoanRepository.java @@ -1,6 +1,5 @@ package mivan.repository; - import mivan.model.Loan; public interface LoanRepository extends Repository { @@ -8,9 +7,9 @@ public interface LoanRepository extends Repository { public void deleteLoanById(Long id); public void addLoan(Loan loan); - + public void updateLoan(Long id, String stato); - + public int getSize(); - + } diff --git a/mivan/src/main/java/mivan/repository/LoanRepositoryImpl.java b/mivan/src/main/java/mivan/repository/LoanRepositoryImpl.java index 0dec829..50a7da6 100644 --- a/mivan/src/main/java/mivan/repository/LoanRepositoryImpl.java +++ b/mivan/src/main/java/mivan/repository/LoanRepositoryImpl.java @@ -9,14 +9,14 @@ import javax.persistence.Persistence; import mivan.model.Loan; -public class LoanRepositoryImpl implements LoanRepository{ +public class LoanRepositoryImpl implements LoanRepository { private EntityManagerFactory entityManagerFactory; public LoanRepositoryImpl() { this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); } - + public Optional findById(Long id) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); Loan loan = entityManager.find(Loan.class, id); @@ -58,7 +58,7 @@ public class LoanRepositoryImpl implements LoanRepository{ entityManager.persist(loan); entityManager.getTransaction().commit(); entityManager.close(); - + } catch (Exception ex) { entityManager.getTransaction().rollback(); } @@ -81,7 +81,6 @@ public class LoanRepositoryImpl implements LoanRepository{ } } - @Override public int getSize() { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); diff --git a/mivan/src/main/java/mivan/repository/Repository.java b/mivan/src/main/java/mivan/repository/Repository.java index 8c14a0f..5bb9d01 100644 --- a/mivan/src/main/java/mivan/repository/Repository.java +++ b/mivan/src/main/java/mivan/repository/Repository.java @@ -3,6 +3,7 @@ package mivan.repository; import java.util.Optional; public interface Repository { - Optional findById(ID id); - Iterable findAll(); + Optional findById(ID id); + + Iterable findAll(); } diff --git a/mivan/src/main/java/mivan/repository/StaffRepository.java b/mivan/src/main/java/mivan/repository/StaffRepository.java index 651b5c6..f0b29a3 100644 --- a/mivan/src/main/java/mivan/repository/StaffRepository.java +++ b/mivan/src/main/java/mivan/repository/StaffRepository.java @@ -3,19 +3,18 @@ package mivan.repository; import mivan.model.Location; import mivan.model.Staff; +public interface StaffRepository extends Repository { -public interface StaffRepository extends Repository{ - public void deleteStaffById(Long id); public void addStaff(Staff user); - - public void updateStaff(Long id, String firstname, String lastname, String city, String idka, String ruolo, Location location); - + + public void updateStaff(Long id, String firstname, String lastname, String city, String idka, String ruolo, + Location location); + public Staff searchStaffByidka(String idka); - - //public List searchStaffByRole(String role); - + // public List searchStaffByRole(String role); + public int getSize(); } diff --git a/mivan/src/main/java/mivan/repository/StaffRepositoryImpl.java b/mivan/src/main/java/mivan/repository/StaffRepositoryImpl.java index ae8df0c..72b0543 100644 --- a/mivan/src/main/java/mivan/repository/StaffRepositoryImpl.java +++ b/mivan/src/main/java/mivan/repository/StaffRepositoryImpl.java @@ -10,7 +10,7 @@ import javax.persistence.Persistence; import mivan.model.Location; import mivan.model.Staff; -public class StaffRepositoryImpl implements StaffRepository{ +public class StaffRepositoryImpl implements StaffRepository { private EntityManagerFactory entityManagerFactory; @@ -26,7 +26,6 @@ public class StaffRepositoryImpl implements StaffRepository{ return Optional.ofNullable(staff); } - @Override public Iterable findAll() { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); @@ -64,8 +63,8 @@ public class StaffRepositoryImpl implements StaffRepository{ } } - - public void updateStaff(Long id, String firstname, String lastname, String city,String idka,String ruolo,Location location) { + public void updateStaff(Long id, String firstname, String lastname, String city, String idka, String ruolo, + Location location) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { @@ -74,11 +73,11 @@ public class StaffRepositoryImpl implements StaffRepository{ Staff staff = entityManager.find(Staff.class, id); staff.setFirstName(firstname); staff.setLastName(lastname); - staff.setCity(city); + staff.setCity(city); staff.setIdka(idka); staff.setRuolo(ruolo); - staff.setLocation(location); - + staff.setLocation(location); + entityManager.persist(staff); entityManager.getTransaction().commit(); entityManager.close(); @@ -101,7 +100,7 @@ public class StaffRepositoryImpl implements StaffRepository{ } return staff; - } + } public int getSize() { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); diff --git a/mivan/src/main/java/mivan/repository/UserRepository.java b/mivan/src/main/java/mivan/repository/UserRepository.java index f040321..deb9834 100644 --- a/mivan/src/main/java/mivan/repository/UserRepository.java +++ b/mivan/src/main/java/mivan/repository/UserRepository.java @@ -2,20 +2,20 @@ package mivan.repository; import mivan.model.User; -public interface UserRepository extends Repository{ - - //public Optional findUserAddressById(Long id); +public interface UserRepository extends Repository { + + // public Optional findUserAddressById(Long id); public void deleteUserById(Long id); public void addUser(User user); - - public void updateUser(Long id, String firstname, String lastname, String city,String username, String email, String password); - + + public void updateUser(Long id, String firstname, String lastname, String city, String username, String email, + String password); + public User searchUserByName(String username); - + public User searchUserByEmail(String email); - public int getSize(); } diff --git a/mivan/src/main/java/mivan/repository/UserRepositoryImpl.java b/mivan/src/main/java/mivan/repository/UserRepositoryImpl.java index 6ce5cd8..cb6fc0c 100644 --- a/mivan/src/main/java/mivan/repository/UserRepositoryImpl.java +++ b/mivan/src/main/java/mivan/repository/UserRepositoryImpl.java @@ -7,7 +7,6 @@ import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; - import mivan.model.User; public class UserRepositoryImpl implements UserRepository { @@ -25,7 +24,7 @@ public class UserRepositoryImpl implements UserRepository { entityManager.close(); return Optional.ofNullable(user); } - + @Override public Iterable findAll() { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); @@ -58,14 +57,14 @@ public class UserRepositoryImpl implements UserRepository { entityManager.persist(user); entityManager.getTransaction().commit(); entityManager.close(); - + } catch (Exception ex) { entityManager.getTransaction().rollback(); } } - - public void updateUser(Long id, String firstname, String lastname, String city,String username, String email, String password) { + public void updateUser(Long id, String firstname, String lastname, String city, String username, String email, + String password) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); try { if (!entityManager.getTransaction().isActive()) { @@ -91,7 +90,8 @@ public class UserRepositoryImpl implements UserRepository { User user = null; try { - user = (User) entityManager.createQuery("FROM User u WHERE lower(u.username) = '" + username.toLowerCase() + "'") + user = (User) entityManager + .createQuery("FROM User u WHERE lower(u.username) = '" + username.toLowerCase() + "'") .getSingleResult(); entityManager.close(); @@ -100,8 +100,8 @@ public class UserRepositoryImpl implements UserRepository { } return user; - } - + } + public User searchUserByEmail(String email) { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); @@ -116,7 +116,7 @@ public class UserRepositoryImpl implements UserRepository { } return user; - } + } public int getSize() { final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); diff --git a/mivan/src/test/java/mivan/AuthorBookTest.java b/mivan/src/test/java/mivan/AuthorBookTest.java index 3500557..b2533dc 100644 --- a/mivan/src/test/java/mivan/AuthorBookTest.java +++ b/mivan/src/test/java/mivan/AuthorBookTest.java @@ -1,15 +1,8 @@ package mivan; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.util.Optional; - -import org.junit.jupiter.api.Order; -import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; -import mivan.model.Author; import mivan.repository.AuthorRepository; import mivan.repository.AuthorRepositoryImpl; import mivan.repository.BookRepository; @@ -17,14 +10,9 @@ import mivan.repository.BookRepositoryImpl; @TestMethodOrder(OrderAnnotation.class) public class AuthorBookTest { - + private AuthorRepository authorRepository = new AuthorRepositoryImpl(); - + private BookRepository bookRepository = new BookRepositoryImpl(); - - - - - } diff --git a/mivan/src/test/java/mivan/AuthorTest.java b/mivan/src/test/java/mivan/AuthorTest.java index 59002f2..f5599d0 100644 --- a/mivan/src/test/java/mivan/AuthorTest.java +++ b/mivan/src/test/java/mivan/AuthorTest.java @@ -15,64 +15,62 @@ import mivan.repository.AuthorRepositoryImpl; @TestMethodOrder(OrderAnnotation.class) public class AuthorTest { - + private AuthorRepository authorRepository = new AuthorRepositoryImpl(); - - + @Test @Order(1) void testAddAuthor() { - - + String name = "Ivan"; - + Author author = new Author(name); - - authorRepository.addAuthor(author); - + + authorRepository.addAuthor(author); + int size = authorRepository.getSize(); - - + assertEquals(size, 1); } - + @Test @Order(2) void testUpdateAuthor() { - + String name = "Ivan"; - + Author author = new Author(name); - + authorRepository.addAuthor(author); - String updatedName ="Javoso"; - + String updatedName = "Javoso"; + authorRepository.updateAuthor(author.getId(), updatedName); Optional updated_author = authorRepository.findById(author.getId()); - updated_author.ifPresent(a -> {assertEquals(a.getName(), updatedName);}); - + updated_author.ifPresent(a -> { + assertEquals(a.getName(), updatedName); + }); + } - + @Test @Order(3) void testDeleteUser() { int size = authorRepository.getSize(); String name = "gollum"; - + Author author = new Author(name); - + authorRepository.addAuthor(author); - + Author editAuthor = authorRepository.searchAuthorByName(name); - + long ID = editAuthor.getId(); - + authorRepository.deleteAuthorById(ID); - + int end_size = authorRepository.getSize(); assertEquals(end_size, size); } - } diff --git a/mivan/src/test/java/mivan/BookTest.java b/mivan/src/test/java/mivan/BookTest.java index 9ff3abe..bbfed95 100644 --- a/mivan/src/test/java/mivan/BookTest.java +++ b/mivan/src/test/java/mivan/BookTest.java @@ -5,63 +5,55 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Optional; -import javax.validation.constraints.AssertTrue; - import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; -import mivan.model.Author; import mivan.model.Book; -import mivan.model.User; import mivan.repository.BookRepository; import mivan.repository.BookRepositoryImpl; public class BookTest { - private BookRepository bookRepository = new BookRepositoryImpl(); - - + @Test @Order(1) void testAddBook() { - + long isbn = 1234; String title = "illiade"; Book prequel = null; Book book = new Book(isbn, title, prequel); - - bookRepository.addBook(book); - + + bookRepository.addBook(book); + int size = bookRepository.getSize(); - - + assertEquals(size, 1); - + } - + @Test @Order(2) - void testUpdateBook(){ + void testUpdateBook() { long isbn = 12348; String title = "odissea"; Book prequel = null; Book book = new Book(isbn, title, prequel); - - bookRepository.addBook(book); + + bookRepository.addBook(book); String update_title = "eneide"; bookRepository.updateBook(isbn, update_title, prequel); Optional opt_book2 = bookRepository.findById(isbn); - + Book book2 = opt_book2.get(); assertTrue(update_title.equals(book2.getTitle())); } - @Test @Order(3) void testDeleteBook() { @@ -71,18 +63,18 @@ public class BookTest { Book prequel = null; Book book = new Book(isbn, title, prequel); - + bookRepository.addBook(book); - + Optional opt_book2 = bookRepository.findById(isbn); - + Book book2 = opt_book2.get(); long ID = book2.getIsbn(); - + bookRepository.deleteBookById(ID); - + int size = bookRepository.getSize(); - assertEquals(start_size,size); + assertEquals(start_size, size); } - + } diff --git a/mivan/src/test/java/mivan/ItemTest.java b/mivan/src/test/java/mivan/ItemTest.java index a3e5b8b..72ac89d 100644 --- a/mivan/src/test/java/mivan/ItemTest.java +++ b/mivan/src/test/java/mivan/ItemTest.java @@ -12,47 +12,43 @@ import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; import mivan.model.Book; import mivan.model.Item; import mivan.model.Location; -import mivan.repository.BookRepository; import mivan.repository.ItemRepository; import mivan.repository.ItemRepositoryImpl; @TestMethodOrder(OrderAnnotation.class) public class ItemTest { - private ItemRepository itemRepository = new ItemRepositoryImpl(); - - - @Test - @Order(1) - void testAddItem() { - Book book = null; - Location location = null; - Item item = new Item(book, location); - itemRepository.addItem(item); - int size = itemRepository.getSize(); - assertEquals(1, size); - } - - - @Test - @Order(2) - void testRemoveItem() { - int startSize = itemRepository.getSize(); - Book book = null; - Location location = null; - Item item = new Item(book, location); - itemRepository.addItem(item); - int size = itemRepository.getSize(); - assertEquals(startSize + 1, size); - - Optional optItem2 = itemRepository.findById(item.getId()); - - Item item2 = optItem2.get(); - long ID = item2.getId(); - itemRepository.deleteItemById(ID); - - int finalSize = itemRepository.getSize(); - assertEquals(startSize, finalSize); - - - } + private ItemRepository itemRepository = new ItemRepositoryImpl(); + + @Test + @Order(1) + void testAddItem() { + Book book = null; + Location location = null; + Item item = new Item(book, location); + itemRepository.addItem(item); + int size = itemRepository.getSize(); + assertEquals(1, size); + } + + @Test + @Order(2) + void testRemoveItem() { + int startSize = itemRepository.getSize(); + Book book = null; + Location location = null; + Item item = new Item(book, location); + itemRepository.addItem(item); + int size = itemRepository.getSize(); + assertEquals(startSize + 1, size); + + Optional optItem2 = itemRepository.findById(item.getId()); + + Item item2 = optItem2.get(); + long ID = item2.getId(); + itemRepository.deleteItemById(ID); + + int finalSize = itemRepository.getSize(); + assertEquals(startSize, finalSize); + + } } \ No newline at end of file diff --git a/mivan/src/test/java/mivan/LoanTest.java b/mivan/src/test/java/mivan/LoanTest.java index af0ab4c..efa1622 100644 --- a/mivan/src/test/java/mivan/LoanTest.java +++ b/mivan/src/test/java/mivan/LoanTest.java @@ -26,7 +26,7 @@ public class LoanTest { long date_start = 1234; long date_end = 2345; String state = "loaning"; - + Item item = null; Staff staff = null; User user = null; @@ -44,11 +44,11 @@ public class LoanTest { @Test @Order(2) void testUpdateLoan() { - + long date_start = 1234; long date_end = 2345; String state = "loaning"; - + Item item = null; Staff staff = null; User user = null; @@ -56,11 +56,11 @@ public class LoanTest { Loan loan = new Loan(date_start, date_end, state, item, staff, user); loanRepository.addLoan(loan); - + String update_state = "returned"; - - loanRepository.updateLoan(0L,update_state); - + + loanRepository.updateLoan(0L, update_state); + Optional opt_loan = loanRepository.findById(0L); Loan loan2 = opt_loan.get(); @@ -71,12 +71,12 @@ public class LoanTest { @Test @Order(3) void testDeleteLoan() { - + int start_size = loanRepository.getSize(); long date_start = 1876; long date_end = 9876; String state = "loaning"; - + Item item = null; Staff staff = null; User user = null; @@ -90,11 +90,10 @@ public class LoanTest { Loan book2 = opt_loan2.get(); long ID = book2.getId(); - loanRepository.deleteLoanById(ID); int size = loanRepository.getSize(); - + assertEquals(start_size, size); } } diff --git a/mivan/src/test/java/mivan/StaffTest.java b/mivan/src/test/java/mivan/StaffTest.java index 1a4fcaa..2a3854a 100644 --- a/mivan/src/test/java/mivan/StaffTest.java +++ b/mivan/src/test/java/mivan/StaffTest.java @@ -46,8 +46,6 @@ public class StaffTest { int newsize = staffRepository.getSize(); assertEquals(newsize, size + 1); - - Iterable sad2 = staffRepository.findAll(); } @Test @@ -73,13 +71,13 @@ public class StaffTest { assertEquals(newlosize, losize + 2); // ci sono 2 locazioni aggunte - // creo un membro dello staff + // creo un membro dello staff String firstname = "test_update_staff_name"; String lastname = "test_update_staff_lastname"; String city = "test_update_staff_city"; String idka = "test_update_staff_idka"; String ruolo = "test_update_staff_role"; - + Staff newstaff = new Staff(firstname, lastname, city, idka, ruolo); int size = staffRepository.getSize(); @@ -97,7 +95,7 @@ public class StaffTest { String newlastname = "test_update_staff_newlastname"; String newcity = "test_update_staff_newcity"; String newidka = "test_update_staff_newidka"; - String newruolo = "test_update_staff_newrole"; + String newruolo = "test_update_staff_newrole"; staffRepository.updateStaff(id, newfirstname, newlastname, newcity, newidka, newruolo, newlocation);