diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..5c98b428844d9f7d529e2b6fb918d15bf072f3df --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..7409a65a6083c3d03584c16151ba946c52e965d4 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +pizzaland_jdbi \ No newline at end of file diff --git a/.idea/artifacts/pizzaland_jdbi_war.xml b/.idea/artifacts/pizzaland_jdbi_war.xml new file mode 100644 index 0000000000000000000000000000000000000000..2e5cb507bbcbdfd7ec55f414d9333b92a2cb8e6a --- /dev/null +++ b/.idea/artifacts/pizzaland_jdbi_war.xml @@ -0,0 +1,14 @@ +<component name="ArtifactManager"> + <artifact type="war" name="pizzaland_jdbi:war"> + <output-path>$PROJECT_DIR$/target</output-path> + <properties id="maven-jee-properties"> + <options> + <module>pizzaland_jdbi</module> + <packaging>war</packaging> + </options> + </properties> + <root id="archive" name="pizzaland.war"> + <element id="artifact" artifact-name="pizzaland_jdbi:war exploded" /> + </root> + </artifact> +</component> \ No newline at end of file diff --git a/.idea/artifacts/pizzaland_jdbi_war_exploded.xml b/.idea/artifacts/pizzaland_jdbi_war_exploded.xml new file mode 100644 index 0000000000000000000000000000000000000000..13a6e3cb204dcd937101dc4412a9894ad2b49155 --- /dev/null +++ b/.idea/artifacts/pizzaland_jdbi_war_exploded.xml @@ -0,0 +1,73 @@ +<component name="ArtifactManager"> + <artifact type="exploded-war" name="pizzaland_jdbi:war exploded"> + <output-path>$PROJECT_DIR$/target/pizzaland</output-path> + <properties id="maven-jee-properties"> + <options> + <exploded>true</exploded> + <module>pizzaland_jdbi</module> + <packaging>war</packaging> + </options> + </properties> + <root id="root"> + <element id="directory" name="WEB-INF"> + <element id="directory" name="classes"> + <element id="module-output" name="pizzaland_jdbi" /> + </element> + <element id="directory" name="lib"> + <element id="library" level="project" name="Maven: org.glassfish.jersey.containers:jersey-container-servlet:2.30" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.containers:jersey-container-servlet-core:2.30" /> + <element id="library" level="project" name="Maven: org.glassfish.hk2.external:jakarta.inject:2.6.1" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.core:jersey-common:2.30" /> + <element id="library" level="project" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" /> + <element id="library" level="project" name="Maven: org.glassfish.hk2:osgi-resource-locator:1.0.3" /> + <element id="library" level="project" name="Maven: com.sun.activation:jakarta.activation:1.2.1" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.core:jersey-server:2.30" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.core:jersey-client:2.30" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.media:jersey-media-jaxb:2.30" /> + <element id="library" level="project" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" /> + <element id="library" level="project" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2" /> + <element id="library" level="project" name="Maven: jakarta.activation:jakarta.activation-api:1.2.1" /> + <element id="library" level="project" name="Maven: jakarta.ws.rs:jakarta.ws.rs-api:2.1.6" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.inject:jersey-hk2:2.30" /> + <element id="library" level="project" name="Maven: org.glassfish.hk2:hk2-locator:2.6.1" /> + <element id="library" level="project" name="Maven: org.glassfish.hk2.external:aopalliance-repackaged:2.6.1" /> + <element id="library" level="project" name="Maven: org.glassfish.hk2:hk2-api:2.6.1" /> + <element id="library" level="project" name="Maven: org.glassfish.hk2:hk2-utils:2.6.1" /> + <element id="library" level="project" name="Maven: org.javassist:javassist:3.25.0-GA" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.media:jersey-media-json-binding:2.30" /> + <element id="library" level="project" name="Maven: org.glassfish:jakarta.json:1.1.5" /> + <element id="library" level="project" name="Maven: org.eclipse:yasson:1.0.3" /> + <element id="library" level="project" name="Maven: jakarta.json.bind:jakarta.json.bind-api:1.0.2" /> + <element id="library" level="project" name="Maven: jakarta.json:jakarta.json-api:1.1.5" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:2.30" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.test-framework:jersey-test-framework-core:2.30" /> + <element id="library" level="project" name="Maven: jakarta.servlet:jakarta.servlet-api:4.0.3" /> + <element id="library" level="project" name="Maven: org.glassfish.jersey.containers:jersey-container-jetty-http:2.30" /> + <element id="library" level="project" name="Maven: org.eclipse.jetty:jetty-server:9.4.17.v20190418" /> + <element id="library" level="project" name="Maven: javax.servlet:javax.servlet-api:3.1.0" /> + <element id="library" level="project" name="Maven: org.eclipse.jetty:jetty-http:9.4.17.v20190418" /> + <element id="library" level="project" name="Maven: org.eclipse.jetty:jetty-io:9.4.17.v20190418" /> + <element id="library" level="project" name="Maven: org.eclipse.jetty:jetty-util:9.4.17.v20190418" /> + <element id="library" level="project" name="Maven: org.eclipse.jetty:jetty-continuation:9.4.17.v20190418" /> + <element id="library" level="project" name="Maven: junit:junit:4.12" /> + <element id="library" level="project" name="Maven: org.hamcrest:hamcrest-core:1.3" /> + <element id="library" level="project" name="Maven: org.xerial:sqlite-jdbc:3.30.1" /> + <element id="library" level="project" name="Maven: org.jdbi:jdbi3-core:3.12.0" /> + <element id="library" level="project" name="Maven: org.antlr:antlr4-runtime:4.7.2" /> + <element id="library" level="project" name="Maven: org.slf4j:slf4j-api:1.7.25" /> + <element id="library" level="project" name="Maven: io.leangen.geantyref:geantyref:1.3.7" /> + <element id="library" level="project" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.0" /> + <element id="library" level="project" name="Maven: org.checkerframework:checker-qual:2.10.0" /> + <element id="library" level="project" name="Maven: org.jdbi:jdbi3-sqlobject:3.12.0" /> + <element id="library" level="project" name="Maven: org.jdbi:jdbi3-sqlite:3.12.0" /> + <element id="library" level="project" name="Maven: ch.qos.logback:logback-classic:1.2.3" /> + <element id="library" level="project" name="Maven: ch.qos.logback:logback-core:1.2.3" /> + </element> + </element> + <element id="directory" name="META-INF"> + <element id="file-copy" path="$PROJECT_DIR$/target/pizzaland/META-INF/MANIFEST.MF" /> + </element> + <element id="javaee-facet-resources" facet="pizzaland_jdbi/web/Web" /> + </root> + </artifact> +</component> \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..177e39e383292fd60512f20fee3219920098e0de --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <annotationProcessing> + <profile name="Maven default annotation processors profile" enabled="true"> + <sourceOutputDir name="target/generated-sources/annotations" /> + <sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> + <outputRelativeToContentRoot value="true" /> + <module name="pizzaland_jdbi" /> + </profile> + </annotationProcessing> + <bytecodeTargetLevel> + <module name="pizzaland_jdbi" target="1.8" /> + </bytecodeTargetLevel> + </component> + <component name="JavacSettings"> + <option name="ADDITIONAL_OPTIONS_OVERRIDE"> + <module name="pizzaland_jdbi" options="-parameters" /> + </option> + </component> +</project> \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa00ffab7828f4818589659c804ec2cfd99baed3 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding"> + <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..6fec8f4346ac31350b855bd6cd3886f1d15e3f79 --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: ch.qos.logback:logback-classic:1.2.3"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..9eb8596a33a55f6e2480baf37393b24b7ae8da60 --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: ch.qos.logback:logback-core:1.2.3"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_8_0.xml b/.idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..8f636b518e4156e9ef33a94cfa3fad5060ffa812 --- /dev/null +++ b/.idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_8_0.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.0"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/com/github/ben-manes/caffeine/caffeine/2.8.0/caffeine-2.8.0.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/com/github/ben-manes/caffeine/caffeine/2.8.0/caffeine-2.8.0-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/com/github/ben-manes/caffeine/caffeine/2.8.0/caffeine-2.8.0-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_1.xml b/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..dd97b216efa8f36be2c6dd2b6217d3f9312ff3c7 --- /dev/null +++ b/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: com.sun.activation:jakarta.activation:1.2.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/com/sun/activation/jakarta.activation/1.2.1/jakarta.activation-1.2.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/com/sun/activation/jakarta.activation/1.2.1/jakarta.activation-1.2.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/com/sun/activation/jakarta.activation/1.2.1/jakarta.activation-1.2.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__io_leangen_geantyref_geantyref_1_3_7.xml b/.idea/libraries/Maven__io_leangen_geantyref_geantyref_1_3_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..4e4c2ae2b66deec8ae5cc711e1d907c7098ec42b --- /dev/null +++ b/.idea/libraries/Maven__io_leangen_geantyref_geantyref_1_3_7.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: io.leangen.geantyref:geantyref:1.3.7"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/io/leangen/geantyref/geantyref/1.3.7/geantyref-1.3.7.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/io/leangen/geantyref/geantyref/1.3.7/geantyref-1.3.7-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/io/leangen/geantyref/geantyref/1.3.7/geantyref-1.3.7-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_1.xml b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..a96bbdc69697d90b75800cc15b773f3b89d11b2b --- /dev/null +++ b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: jakarta.activation:jakarta.activation-api:1.2.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/activation/jakarta.activation-api/1.2.1/jakarta.activation-api-1.2.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/activation/jakarta.activation-api/1.2.1/jakarta.activation-api-1.2.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/activation/jakarta.activation-api/1.2.1/jakarta.activation-api-1.2.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml b/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml new file mode 100644 index 0000000000000000000000000000000000000000..cba9dd244f222ce7ecbdcab4c7f9621a57fe1a67 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_json_bind_jakarta_json_bind_api_1_0_2.xml b/.idea/libraries/Maven__jakarta_json_bind_jakarta_json_bind_api_1_0_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..ce5bb3878951a2461ceb2a70e00a92c35536f0fe --- /dev/null +++ b/.idea/libraries/Maven__jakarta_json_bind_jakarta_json_bind_api_1_0_2.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: jakarta.json.bind:jakarta.json.bind-api:1.0.2"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/json/bind/jakarta.json.bind-api/1.0.2/jakarta.json.bind-api-1.0.2.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/json/bind/jakarta.json.bind-api/1.0.2/jakarta.json.bind-api-1.0.2-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/json/bind/jakarta.json.bind-api/1.0.2/jakarta.json.bind-api-1.0.2-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_json_jakarta_json_api_1_1_5.xml b/.idea/libraries/Maven__jakarta_json_jakarta_json_api_1_1_5.xml new file mode 100644 index 0000000000000000000000000000000000000000..6203aabc732652c18e94100f9cdcff45cc195d56 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_json_jakarta_json_api_1_1_5.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: jakarta.json:jakarta.json-api:1.1.5"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/json/jakarta.json-api/1.1.5/jakarta.json-api-1.1.5.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/json/jakarta.json-api/1.1.5/jakarta.json-api-1.1.5-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/json/jakarta.json-api/1.1.5/jakarta.json-api-1.1.5-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_servlet_jakarta_servlet_api_4_0_3.xml b/.idea/libraries/Maven__jakarta_servlet_jakarta_servlet_api_4_0_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..5343c74586c4c86053b7fc334453a0a423391f1c --- /dev/null +++ b/.idea/libraries/Maven__jakarta_servlet_jakarta_servlet_api_4_0_3.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: jakarta.servlet:jakarta.servlet-api:4.0.3"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/servlet/jakarta.servlet-api/4.0.3/jakarta.servlet-api-4.0.3.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/servlet/jakarta.servlet-api/4.0.3/jakarta.servlet-api-4.0.3-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/servlet/jakarta.servlet-api/4.0.3/jakarta.servlet-api-4.0.3-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..e66afb958e3ccfe0bd5a70dcc9f10dafb5ec8450 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: jakarta.validation:jakarta.validation-api:2.0.2"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_ws_rs_jakarta_ws_rs_api_2_1_6.xml b/.idea/libraries/Maven__jakarta_ws_rs_jakarta_ws_rs_api_2_1_6.xml new file mode 100644 index 0000000000000000000000000000000000000000..fb37accba8abb27f5fa5e6afde8b3f3c12b4698e --- /dev/null +++ b/.idea/libraries/Maven__jakarta_ws_rs_jakarta_ws_rs_api_2_1_6.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: jakarta.ws.rs:jakarta.ws.rs-api:2.1.6"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/ws/rs/jakarta.ws.rs-api/2.1.6/jakarta.ws.rs-api-2.1.6.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/ws/rs/jakarta.ws.rs-api/2.1.6/jakarta.ws.rs-api-2.1.6-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/ws/rs/jakarta.ws.rs-api/2.1.6/jakarta.ws.rs-api-2.1.6-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_2.xml b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..bdf217a0c258ed07bb96036043bf50b69bc534f0 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_2.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.2/jakarta.xml.bind-api-2.3.2.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.2/jakarta.xml.bind-api-2.3.2-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.2/jakarta.xml.bind-api-2.3.2-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml b/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..c24f7e308355dba395440a2fcc7bcdcf8976391a --- /dev/null +++ b/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: javax.servlet:javax.servlet-api:3.1.0"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml new file mode 100644 index 0000000000000000000000000000000000000000..d411041745b6e44356035cdd44538daca09388f6 --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_12.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: junit:junit:4.12"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_antlr_antlr4_runtime_4_7_2.xml b/.idea/libraries/Maven__org_antlr_antlr4_runtime_4_7_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0c6a38647565185954c8a371c4a02135f007508 --- /dev/null +++ b/.idea/libraries/Maven__org_antlr_antlr4_runtime_4_7_2.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.antlr:antlr4-runtime:4.7.2"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/antlr/antlr4-runtime/4.7.2/antlr4-runtime-4.7.2.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/antlr/antlr4-runtime/4.7.2/antlr4-runtime-4.7.2-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/antlr/antlr4-runtime/4.7.2/antlr4-runtime-4.7.2-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_checkerframework_checker_qual_2_10_0.xml b/.idea/libraries/Maven__org_checkerframework_checker_qual_2_10_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..2301054201b1b4c71778c6447cf3e720e9b9631f --- /dev/null +++ b/.idea/libraries/Maven__org_checkerframework_checker_qual_2_10_0.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.checkerframework:checker-qual:2.10.0"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/checkerframework/checker-qual/2.10.0/checker-qual-2.10.0.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/checkerframework/checker-qual/2.10.0/checker-qual-2.10.0-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/checkerframework/checker-qual/2.10.0/checker-qual-2.10.0-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_eclipse_jetty_jetty_continuation_9_4_17_v20190418.xml b/.idea/libraries/Maven__org_eclipse_jetty_jetty_continuation_9_4_17_v20190418.xml new file mode 100644 index 0000000000000000000000000000000000000000..a595715872ddda1ae922c74810d4977d2bf010e3 --- /dev/null +++ b/.idea/libraries/Maven__org_eclipse_jetty_jetty_continuation_9_4_17_v20190418.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.eclipse.jetty:jetty-continuation:9.4.17.v20190418"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-continuation/9.4.17.v20190418/jetty-continuation-9.4.17.v20190418.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-continuation/9.4.17.v20190418/jetty-continuation-9.4.17.v20190418-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-continuation/9.4.17.v20190418/jetty-continuation-9.4.17.v20190418-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_eclipse_jetty_jetty_http_9_4_17_v20190418.xml b/.idea/libraries/Maven__org_eclipse_jetty_jetty_http_9_4_17_v20190418.xml new file mode 100644 index 0000000000000000000000000000000000000000..3a5fa91881c3f9b69828be3b742021743d1e0ef9 --- /dev/null +++ b/.idea/libraries/Maven__org_eclipse_jetty_jetty_http_9_4_17_v20190418.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.eclipse.jetty:jetty-http:9.4.17.v20190418"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-http/9.4.17.v20190418/jetty-http-9.4.17.v20190418.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-http/9.4.17.v20190418/jetty-http-9.4.17.v20190418-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-http/9.4.17.v20190418/jetty-http-9.4.17.v20190418-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_eclipse_jetty_jetty_io_9_4_17_v20190418.xml b/.idea/libraries/Maven__org_eclipse_jetty_jetty_io_9_4_17_v20190418.xml new file mode 100644 index 0000000000000000000000000000000000000000..f14494d4b4f3381e0e2a148b32a8954f41c331a2 --- /dev/null +++ b/.idea/libraries/Maven__org_eclipse_jetty_jetty_io_9_4_17_v20190418.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.eclipse.jetty:jetty-io:9.4.17.v20190418"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-io/9.4.17.v20190418/jetty-io-9.4.17.v20190418.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-io/9.4.17.v20190418/jetty-io-9.4.17.v20190418-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-io/9.4.17.v20190418/jetty-io-9.4.17.v20190418-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_eclipse_jetty_jetty_server_9_4_17_v20190418.xml b/.idea/libraries/Maven__org_eclipse_jetty_jetty_server_9_4_17_v20190418.xml new file mode 100644 index 0000000000000000000000000000000000000000..3cc09b3fecda6112f59aba36d85f452610b59574 --- /dev/null +++ b/.idea/libraries/Maven__org_eclipse_jetty_jetty_server_9_4_17_v20190418.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.eclipse.jetty:jetty-server:9.4.17.v20190418"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-server/9.4.17.v20190418/jetty-server-9.4.17.v20190418.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-server/9.4.17.v20190418/jetty-server-9.4.17.v20190418-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-server/9.4.17.v20190418/jetty-server-9.4.17.v20190418-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_eclipse_jetty_jetty_util_9_4_17_v20190418.xml b/.idea/libraries/Maven__org_eclipse_jetty_jetty_util_9_4_17_v20190418.xml new file mode 100644 index 0000000000000000000000000000000000000000..c9e8270f7b0eb8aca91ba8966351c30d4713ec70 --- /dev/null +++ b/.idea/libraries/Maven__org_eclipse_jetty_jetty_util_9_4_17_v20190418.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.eclipse.jetty:jetty-util:9.4.17.v20190418"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-util/9.4.17.v20190418/jetty-util-9.4.17.v20190418.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-util/9.4.17.v20190418/jetty-util-9.4.17.v20190418-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-util/9.4.17.v20190418/jetty-util-9.4.17.v20190418-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_eclipse_yasson_1_0_3.xml b/.idea/libraries/Maven__org_eclipse_yasson_1_0_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..9e1e8db4c1b6e1af8cf3a7272834865b2b3055ec --- /dev/null +++ b/.idea/libraries/Maven__org_eclipse_yasson_1_0_3.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.eclipse:yasson:1.0.3"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/yasson/1.0.3/yasson-1.0.3.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/yasson/1.0.3/yasson-1.0.3-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/eclipse/yasson/1.0.3/yasson-1.0.3-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_hk2_external_aopalliance_repackaged_2_6_1.xml b/.idea/libraries/Maven__org_glassfish_hk2_external_aopalliance_repackaged_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa22cc134225b34c17ff6c53b6e11fcca4bfad65 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_hk2_external_aopalliance_repackaged_2_6_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.hk2.external:aopalliance-repackaged:2.6.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/external/aopalliance-repackaged/2.6.1/aopalliance-repackaged-2.6.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/external/aopalliance-repackaged/2.6.1/aopalliance-repackaged-2.6.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/external/aopalliance-repackaged/2.6.1/aopalliance-repackaged-2.6.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_hk2_external_jakarta_inject_2_6_1.xml b/.idea/libraries/Maven__org_glassfish_hk2_external_jakarta_inject_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..98fbebfe7793dab06ebacd17920f917d2a76e7e4 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_hk2_external_jakarta_inject_2_6_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.hk2.external:jakarta.inject:2.6.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/external/jakarta.inject/2.6.1/jakarta.inject-2.6.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/external/jakarta.inject/2.6.1/jakarta.inject-2.6.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/external/jakarta.inject/2.6.1/jakarta.inject-2.6.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_hk2_hk2_api_2_6_1.xml b/.idea/libraries/Maven__org_glassfish_hk2_hk2_api_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..963f506927989c2976490c9428fc23ad37f55b4c --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_hk2_hk2_api_2_6_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.hk2:hk2-api:2.6.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/hk2-api/2.6.1/hk2-api-2.6.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/hk2-api/2.6.1/hk2-api-2.6.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/hk2-api/2.6.1/hk2-api-2.6.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_hk2_hk2_locator_2_6_1.xml b/.idea/libraries/Maven__org_glassfish_hk2_hk2_locator_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..951e584adc6a3dafdbdc93e76dec7c68d7a1cac3 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_hk2_hk2_locator_2_6_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.hk2:hk2-locator:2.6.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/hk2-locator/2.6.1/hk2-locator-2.6.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/hk2-locator/2.6.1/hk2-locator-2.6.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/hk2-locator/2.6.1/hk2-locator-2.6.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_hk2_hk2_utils_2_6_1.xml b/.idea/libraries/Maven__org_glassfish_hk2_hk2_utils_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..57730c4095750cbd620827fa40333446aff66f51 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_hk2_hk2_utils_2_6_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.hk2:hk2-utils:2.6.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/hk2-utils/2.6.1/hk2-utils-2.6.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/hk2-utils/2.6.1/hk2-utils-2.6.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/hk2-utils/2.6.1/hk2-utils-2.6.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_hk2_osgi_resource_locator_1_0_3.xml b/.idea/libraries/Maven__org_glassfish_hk2_osgi_resource_locator_1_0_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..18fdf9c00de49b84f22502d703aca8afb8c43b6a --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_hk2_osgi_resource_locator_1_0_3.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.hk2:osgi-resource-locator:1.0.3"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/osgi-resource-locator/1.0.3/osgi-resource-locator-1.0.3.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/osgi-resource-locator/1.0.3/osgi-resource-locator-1.0.3-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/hk2/osgi-resource-locator/1.0.3/osgi-resource-locator-1.0.3-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jakarta_json_1_1_5.xml b/.idea/libraries/Maven__org_glassfish_jakarta_json_1_1_5.xml new file mode 100644 index 0000000000000000000000000000000000000000..d4a28659a57395be10fc57d6a0a89ad3d1ee7fcc --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jakarta_json_1_1_5.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish:jakarta.json:1.1.5"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jakarta.json/1.1.5/jakarta.json-1.1.5.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jakarta.json/1.1.5/jakarta.json-1.1.5-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jakarta.json/1.1.5/jakarta.json-1.1.5-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_containers_jersey_container_jetty_http_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_containers_jersey_container_jetty_http_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..e50e9fc28a73459b1537f3fe0915d668a9223a28 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_containers_jersey_container_jetty_http_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.containers:jersey-container-jetty-http:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/containers/jersey-container-jetty-http/2.30/jersey-container-jetty-http-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/containers/jersey-container-jetty-http/2.30/jersey-container-jetty-http-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/containers/jersey-container-jetty-http/2.30/jersey-container-jetty-http-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_containers_jersey_container_servlet_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_containers_jersey_container_servlet_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..e5cb82144ac4eadbde47a7c35a0202713ed4b8dd --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_containers_jersey_container_servlet_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.containers:jersey-container-servlet:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/containers/jersey-container-servlet/2.30/jersey-container-servlet-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/containers/jersey-container-servlet/2.30/jersey-container-servlet-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/containers/jersey-container-servlet/2.30/jersey-container-servlet-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_containers_jersey_container_servlet_core_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_containers_jersey_container_servlet_core_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..ead34e6e2a44de5d18a80ea01b3db140e9dca1d5 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_containers_jersey_container_servlet_core_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.containers:jersey-container-servlet-core:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/containers/jersey-container-servlet-core/2.30/jersey-container-servlet-core-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/containers/jersey-container-servlet-core/2.30/jersey-container-servlet-core-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/containers/jersey-container-servlet-core/2.30/jersey-container-servlet-core-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_client_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_client_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..c50b1073ec2662ebc5557bdfa8ec1e36d608123e --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_client_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.core:jersey-client:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/core/jersey-client/2.30/jersey-client-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/core/jersey-client/2.30/jersey-client-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/core/jersey-client/2.30/jersey-client-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_common_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_common_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b1e272641f14221ab7c371fa1c8177dbba87b4c --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_common_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.core:jersey-common:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/core/jersey-common/2.30/jersey-common-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/core/jersey-common/2.30/jersey-common-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/core/jersey-common/2.30/jersey-common-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_server_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_server_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..8a6297dfed549aeaf618dfd8f2bf9920f4980b0f --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_server_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.core:jersey-server:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/core/jersey-server/2.30/jersey-server-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/core/jersey-server/2.30/jersey-server-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/core/jersey-server/2.30/jersey-server-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_inject_jersey_hk2_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_inject_jersey_hk2_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..3ce9962ece74ac017901ac1b0658547d66cb6900 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_inject_jersey_hk2_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.inject:jersey-hk2:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/inject/jersey-hk2/2.30/jersey-hk2-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/inject/jersey-hk2/2.30/jersey-hk2-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/inject/jersey-hk2/2.30/jersey-hk2-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_media_jersey_media_jaxb_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_media_jersey_media_jaxb_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..1818a71ececc11bb7a24e6ceed316a8a22e38fc7 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_media_jersey_media_jaxb_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.media:jersey-media-jaxb:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/media/jersey-media-jaxb/2.30/jersey-media-jaxb-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/media/jersey-media-jaxb/2.30/jersey-media-jaxb-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/media/jersey-media-jaxb/2.30/jersey-media-jaxb-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_media_jersey_media_json_binding_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_media_jersey_media_json_binding_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..ec2208570c1fa34b9a5a67036bd742a49f42bf19 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_media_jersey_media_json_binding_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.media:jersey-media-json-binding:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/media/jersey-media-json-binding/2.30/jersey-media-json-binding-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/media/jersey-media-json-binding/2.30/jersey-media-json-binding-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/media/jersey-media-json-binding/2.30/jersey-media-json-binding-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_test_framework_jersey_test_framework_core_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_test_framework_jersey_test_framework_core_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..68142832af706b8902fa6d72205aa36941a79275 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_test_framework_jersey_test_framework_core_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.test-framework:jersey-test-framework-core:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/test-framework/jersey-test-framework-core/2.30/jersey-test-framework-core-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/test-framework/jersey-test-framework-core/2.30/jersey-test-framework-core-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/test-framework/jersey-test-framework-core/2.30/jersey-test-framework-core-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jersey_test_framework_providers_jersey_test_framework_provider_jetty_2_30.xml b/.idea/libraries/Maven__org_glassfish_jersey_test_framework_providers_jersey_test_framework_provider_jetty_2_30.xml new file mode 100644 index 0000000000000000000000000000000000000000..06252d9cc49bc3b0fde2c3f1e56c3510c36389d7 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jersey_test_framework_providers_jersey_test_framework_provider_jetty_2_30.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:2.30"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/test-framework/providers/jersey-test-framework-provider-jetty/2.30/jersey-test-framework-provider-jetty-2.30.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/test-framework/providers/jersey-test-framework-provider-jetty/2.30/jersey-test-framework-provider-jetty-2.30-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jersey/test-framework/providers/jersey-test-framework-provider-jetty/2.30/jersey-test-framework-provider-jetty-2.30-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..f58bbc11276f98bea2b6c82f21664c5a9f424fe3 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.hamcrest:hamcrest-core:1.3"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_javassist_javassist_3_25_0_GA.xml b/.idea/libraries/Maven__org_javassist_javassist_3_25_0_GA.xml new file mode 100644 index 0000000000000000000000000000000000000000..a24c34c964b519aa8f7e7be991549c307ccf4a64 --- /dev/null +++ b/.idea/libraries/Maven__org_javassist_javassist_3_25_0_GA.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.javassist:javassist:3.25.0-GA"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.25.0-GA/javassist-3.25.0-GA.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.25.0-GA/javassist-3.25.0-GA-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.25.0-GA/javassist-3.25.0-GA-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jdbi_jdbi3_core_3_12_0.xml b/.idea/libraries/Maven__org_jdbi_jdbi3_core_3_12_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..0650c0e07c5bd4594d280cd252255128c41199a2 --- /dev/null +++ b/.idea/libraries/Maven__org_jdbi_jdbi3_core_3_12_0.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.jdbi:jdbi3-core:3.12.0"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-core/3.12.0/jdbi3-core-3.12.0.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-core/3.12.0/jdbi3-core-3.12.0-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-core/3.12.0/jdbi3-core-3.12.0-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jdbi_jdbi3_sqlite_3_12_0.xml b/.idea/libraries/Maven__org_jdbi_jdbi3_sqlite_3_12_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..65494a8656d2ecfe107395061661afff57bf1465 --- /dev/null +++ b/.idea/libraries/Maven__org_jdbi_jdbi3_sqlite_3_12_0.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.jdbi:jdbi3-sqlite:3.12.0"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-sqlite/3.12.0/jdbi3-sqlite-3.12.0.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-sqlite/3.12.0/jdbi3-sqlite-3.12.0-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-sqlite/3.12.0/jdbi3-sqlite-3.12.0-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jdbi_jdbi3_sqlobject_3_12_0.xml b/.idea/libraries/Maven__org_jdbi_jdbi3_sqlobject_3_12_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..6616b9a32cdb43f2fb77e56ccf00355888b95be0 --- /dev/null +++ b/.idea/libraries/Maven__org_jdbi_jdbi3_sqlobject_3_12_0.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.jdbi:jdbi3-sqlobject:3.12.0"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-sqlobject/3.12.0/jdbi3-sqlobject-3.12.0.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-sqlobject/3.12.0/jdbi3-sqlobject-3.12.0-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-sqlobject/3.12.0/jdbi3-sqlobject-3.12.0-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jdbi_jdbi3_testing_3_12_0.xml b/.idea/libraries/Maven__org_jdbi_jdbi3_testing_3_12_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..9dbeb62bb4de9123f2d565c05e8e46bb5b0e3b4d --- /dev/null +++ b/.idea/libraries/Maven__org_jdbi_jdbi3_testing_3_12_0.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.jdbi:jdbi3-testing:3.12.0"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-testing/3.12.0/jdbi3-testing-3.12.0.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-testing/3.12.0/jdbi3-testing-3.12.0-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/jdbi/jdbi3-testing/3.12.0/jdbi3-testing-3.12.0-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml new file mode 100644 index 0000000000000000000000000000000000000000..20e816363d89d5823f89dc148df6b00bbc30626a --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.slf4j:slf4j-api:1.7.25"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_xerial_sqlite_jdbc_3_30_1.xml b/.idea/libraries/Maven__org_xerial_sqlite_jdbc_3_30_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..d358bf3ff54aded15dc8eaf9c242b75c849dc9fe --- /dev/null +++ b/.idea/libraries/Maven__org_xerial_sqlite_jdbc_3_30_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.xerial:sqlite-jdbc:3.30.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/xerial/sqlite-jdbc/3.30.1/sqlite-jdbc-3.30.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/xerial/sqlite-jdbc/3.30.1/sqlite-jdbc-3.30.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/xerial/sqlite-jdbc/3.30.1/sqlite-jdbc-3.30.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9cccd5db9c93ae849184281f1f1a1ecf0c9da7c --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="FrameworkDetectionExcludesConfiguration"> + <file type="web" url="file://$PROJECT_DIR$" /> + </component> + <component name="MavenProjectsManager"> + <option name="originalFiles"> + <list> + <option value="$PROJECT_DIR$/pom.xml" /> + </list> + </option> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK" /> +</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..8d312cc997ee836924bcfebe26f2587c0bf694bb --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/pizzaland_jdbi.iml" filepath="$PROJECT_DIR$/pizzaland_jdbi.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000000000000000000000000000000000000..e96534fb27b68192f27f985d3879e173ec77adb8 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Palette2"> + <group name="Swing"> + <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> + </item> + <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true"> + <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> + <initial-values> + <property name="text" value="Button" /> + </initial-values> + </item> + <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="RadioButton" /> + </initial-values> + </item> + <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="CheckBox" /> + </initial-values> + </item> + <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="Label" /> + </initial-values> + </item> + <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> + <preferred-size width="-1" height="20" /> + </default-constraints> + </item> + <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> + </item> + </group> + </component> +</project> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/pizzaland_jdbi.iml b/pizzaland_jdbi.iml new file mode 100644 index 0000000000000000000000000000000000000000..bfc29f853a9a2a13eb41ecd61a0f55f3aa449cb6 --- /dev/null +++ b/pizzaland_jdbi.iml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> + <component name="FacetManager"> + <facet type="web" name="Web"> + <configuration> + <webroots> + <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" /> + </webroots> + <sourceRoots> + <root url="file://$MODULE_DIR$/src/main/java" /> + <root url="file://$MODULE_DIR$/src/main/resources" /> + </sourceRoots> + </configuration> + </facet> + </component> + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8"> + <output url="file://$MODULE_DIR$/target/classes" /> + <output-test url="file://$MODULE_DIR$/target/test-classes" /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> + <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> + <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> + <excludeFolder url="file://$MODULE_DIR$/target" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.containers:jersey-container-servlet:2.30" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.containers:jersey-container-servlet-core:2.30" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.hk2.external:jakarta.inject:2.6.1" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.core:jersey-common:2.30" level="project" /> + <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.hk2:osgi-resource-locator:1.0.3" level="project" /> + <orderEntry type="library" name="Maven: com.sun.activation:jakarta.activation:1.2.1" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.core:jersey-server:2.30" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.core:jersey-client:2.30" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.media:jersey-media-jaxb:2.30" level="project" /> + <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" /> + <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2" level="project" /> + <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.1" level="project" /> + <orderEntry type="library" name="Maven: jakarta.ws.rs:jakarta.ws.rs-api:2.1.6" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.inject:jersey-hk2:2.30" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.hk2:hk2-locator:2.6.1" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.hk2.external:aopalliance-repackaged:2.6.1" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.hk2:hk2-api:2.6.1" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.hk2:hk2-utils:2.6.1" level="project" /> + <orderEntry type="library" name="Maven: org.javassist:javassist:3.25.0-GA" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.media:jersey-media-json-binding:2.30" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish:jakarta.json:1.1.5" level="project" /> + <orderEntry type="library" name="Maven: org.eclipse:yasson:1.0.3" level="project" /> + <orderEntry type="library" name="Maven: jakarta.json.bind:jakarta.json.bind-api:1.0.2" level="project" /> + <orderEntry type="library" name="Maven: jakarta.json:jakarta.json-api:1.1.5" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:2.30" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.test-framework:jersey-test-framework-core:2.30" level="project" /> + <orderEntry type="library" name="Maven: jakarta.servlet:jakarta.servlet-api:4.0.3" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jersey.containers:jersey-container-jetty-http:2.30" level="project" /> + <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.4.17.v20190418" level="project" /> + <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" /> + <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.4.17.v20190418" level="project" /> + <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.4.17.v20190418" level="project" /> + <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.4.17.v20190418" level="project" /> + <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.4.17.v20190418" level="project" /> + <orderEntry type="library" name="Maven: junit:junit:4.12" level="project" /> + <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" /> + <orderEntry type="library" name="Maven: org.xerial:sqlite-jdbc:3.30.1" level="project" /> + <orderEntry type="library" name="Maven: org.jdbi:jdbi3-core:3.12.0" level="project" /> + <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.7.2" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" /> + <orderEntry type="library" name="Maven: io.leangen.geantyref:geantyref:1.3.7" level="project" /> + <orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.0" level="project" /> + <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:2.10.0" level="project" /> + <orderEntry type="library" name="Maven: org.jdbi:jdbi3-sqlobject:3.12.0" level="project" /> + <orderEntry type="library" name="Maven: org.jdbi:jdbi3-sqlite:3.12.0" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.jdbi:jdbi3-testing:3.12.0" level="project" /> + <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" /> + <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> + </component> +</module> \ No newline at end of file diff --git a/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java b/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java index b565c8399d5213fc5b2335568b0224cea580b1e5..fb76fa2f7c45b4d2a32d9b1a5efcba55d1bb4283 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java +++ b/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java @@ -1,16 +1,71 @@ package fr.ulille.iut.pizzaland; +import fr.ulille.iut.pizzaland.beans.Ingredient; +import fr.ulille.iut.pizzaland.beans.Pizza; +import fr.ulille.iut.pizzaland.dao.IngredientDao; +import fr.ulille.iut.pizzaland.dao.PizzaDao; import org.glassfish.jersey.server.ResourceConfig; +import java.io.FileReader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.logging.Logger; +import javax.json.bind.Jsonb; +import javax.json.bind.JsonbBuilder; import javax.ws.rs.ApplicationPath; @ApplicationPath("api/v1/") public class ApiV1 extends ResourceConfig { - private static final Logger LOGGER = Logger.getLogger(ApiV1.class.getName()); + public static final Logger LOGGER = Logger.getLogger(ApiV1.class.getName()); public ApiV1() { packages("fr.ulille.iut.pizzaland"); + + String environment = System.getenv("PIZZAENV"); +// String environment = null; + + if (environment != null && environment.equals("withdb")) { + LOGGER.info("Loading with database"); + Jsonb jsonb = JsonbBuilder.create(); + try { + FileReader reader = new FileReader(getClass().getClassLoader().getResource("ingredients.json").getFile()); + + List<Ingredient> ingredients = JsonbBuilder.create().fromJson(reader, new ArrayList<Ingredient>() { + }.getClass().getGenericSuperclass()); + + IngredientDao ingredientDao = BDDFactory.buildDao(IngredientDao.class); + + ingredientDao.dropTable(); + ingredientDao.createTable(); + + for (Ingredient ingredient : ingredients) { + ingredientDao.insert(ingredient.getName()); + } + + System.out.println(Arrays.toString(ingredientDao.getAll().toArray())); + + FileReader readerPizza = new FileReader(getClass().getClassLoader().getResource("pizzas.json").getFile()); + + PizzaDao pizzaDao = BDDFactory.buildDao(PizzaDao.class); + pizzaDao.dropTable(); + pizzaDao.createTableAndIngredientAssociation(); + + List<Pizza> pizzas = JsonbBuilder.create().fromJson(readerPizza, new ArrayList<Pizza>() { + }.getClass().getGenericSuperclass()); + + + for (Pizza pizza : pizzas) { + System.out.println(pizza); + pizzaDao.insert(pizza.getName()); + for (int id : pizza.getIngredients()) { + pizzaDao.insertIngredient(pizza.getId(), id); + } + } + } catch (Exception ex) { + throw new IllegalStateException(ex); + } + } } -} +} \ No newline at end of file diff --git a/src/main/java/fr/ulille/iut/pizzaland/beans/Ingredient.java b/src/main/java/fr/ulille/iut/pizzaland/beans/Ingredient.java new file mode 100644 index 0000000000000000000000000000000000000000..0e19e1df09041c7a5d409c1a367d935fe76460bb --- /dev/null +++ b/src/main/java/fr/ulille/iut/pizzaland/beans/Ingredient.java @@ -0,0 +1,87 @@ +package fr.ulille.iut.pizzaland.beans; + +import fr.ulille.iut.pizzaland.dto.IngredientCreateDto; +import fr.ulille.iut.pizzaland.dto.IngredientDto; + +public class Ingredient { + private long id; + private String name; + + public Ingredient() { + } + + public Ingredient(long id, String name) { + this.id = id; + this.name = name; + } + + public void setId(long id) { + this.id = id; + } + + public long getId() { + return id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public static IngredientDto toDto(Ingredient i) { + IngredientDto dto = new IngredientDto(); + dto.setId(i.getId()); + dto.setName(i.getName()); + + return dto; + } + + public static Ingredient fromDto(IngredientDto dto) { + Ingredient ingredient = new Ingredient(); + ingredient.setId(dto.getId()); + ingredient.setName(dto.getName()); + + return ingredient; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Ingredient other = (Ingredient) obj; + if (id != other.id) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + return "Ingredient [id=" + id + ", name=" + name + "]"; + } + + public static IngredientCreateDto toCreateDto(Ingredient ingredient) { + IngredientCreateDto dto = new IngredientCreateDto(); + dto.setName(ingredient.getName()); + + return dto; + } + + public static Ingredient fromIngredientCreateDto(IngredientCreateDto dto) { + Ingredient ingredient = new Ingredient(); + ingredient.setName(dto.getName()); + + return ingredient; + } +} \ No newline at end of file diff --git a/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java b/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java new file mode 100644 index 0000000000000000000000000000000000000000..d7e3c3396e025226c6bcb4d90e5d2162d0715845 --- /dev/null +++ b/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java @@ -0,0 +1,94 @@ +package fr.ulille.iut.pizzaland.beans; + +import fr.ulille.iut.pizzaland.dto.PizzaCreateDto; +import fr.ulille.iut.pizzaland.dto.PizzaDto; + +import java.util.Arrays; + +public class Pizza { + + private long id; + private String name; + private int[] ingredients; + + public Pizza() { } + + public int[] getIngredients() { + return ingredients; + } + + public long getId() { + return id; + } + + public String getName() { + return name; + } + + public void setId(long id) { + this.id = id; + } + + public void setIngredients(int[] ingredients) { + this.ingredients = ingredients; + } + + public void setName(String name) { + this.name = name; + } + + public static PizzaDto toDto(Pizza p) { + PizzaDto dto = new PizzaDto(); + dto.setId(p.getId()); + dto.setName(p.getName()); + dto.setIngredients(p.getIngredients()); + + return dto; + } + + public static Pizza fromDto(PizzaDto dto) { + Pizza pizza = new Pizza(); + pizza.setId(dto.getId()); + pizza.setName(dto.getName()); + pizza.setIngredients(dto.getIngredients()); + + return pizza; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Pizza other = (Pizza) obj; + if (id != other.id) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + return "Pizza [id=" + id + ", name=" + name + "ingredients=" + Arrays.toString(ingredients) + "]"; + } + + public static PizzaCreateDto toCreateDto(Pizza pizza) { + PizzaCreateDto dto = new PizzaCreateDto(); + dto.setName(pizza.getName()); + + return dto; + } + + public static Pizza fromPizzaCreateDto(PizzaCreateDto dto) { + Pizza pizza = new Pizza(); + pizza.setName(dto.getName()); + return pizza; + } +} diff --git a/src/main/java/fr/ulille/iut/pizzaland/dao/IngredientDao.java b/src/main/java/fr/ulille/iut/pizzaland/dao/IngredientDao.java new file mode 100644 index 0000000000000000000000000000000000000000..b5c655c77759bcd42a80080ff51d628f9eb6d7b6 --- /dev/null +++ b/src/main/java/fr/ulille/iut/pizzaland/dao/IngredientDao.java @@ -0,0 +1,38 @@ +package fr.ulille.iut.pizzaland.dao; + +import java.util.List; + +import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; +import org.jdbi.v3.sqlobject.statement.GetGeneratedKeys; +import org.jdbi.v3.sqlobject.statement.SqlQuery; +import org.jdbi.v3.sqlobject.statement.SqlUpdate; + +import fr.ulille.iut.pizzaland.beans.Ingredient; + +public interface IngredientDao { + + @SqlUpdate("CREATE TABLE IF NOT EXISTS ingredients (id INTEGER PRIMARY KEY, name VARCHAR UNIQUE NOT NULL)") + void createTable(); + + @SqlUpdate("DROP TABLE IF EXISTS ingredients") + void dropTable(); + + @SqlUpdate("INSERT INTO ingredients (name) VALUES (:name)") + @GetGeneratedKeys + long insert(String name); + + @SqlQuery("SELECT * FROM ingredients WHERE name = :name") + @RegisterBeanMapper(Ingredient.class) + Ingredient findByName(String name); + + @SqlUpdate("DELETE FROM ingredients WHERE id = :id") + void remove(long id); + + @SqlQuery("SELECT * FROM ingredients") + @RegisterBeanMapper(Ingredient.class) + List<Ingredient> getAll(); + + @SqlQuery("SELECT * FROM ingredients WHERE id = :id") + @RegisterBeanMapper(Ingredient.class) + Ingredient findById(long id); +} \ No newline at end of file diff --git a/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java b/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java new file mode 100644 index 0000000000000000000000000000000000000000..1659a4aced800bd070b51a9ba8836e91cbed9c6f --- /dev/null +++ b/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java @@ -0,0 +1,60 @@ +package fr.ulille.iut.pizzaland.dao; + +import fr.ulille.iut.pizzaland.beans.Pizza; +import org.jdbi.v3.sqlobject.config.RegisterBeanMapper; +import org.jdbi.v3.sqlobject.statement.GetGeneratedKeys; +import org.jdbi.v3.sqlobject.statement.SqlQuery; +import org.jdbi.v3.sqlobject.statement.SqlUpdate; +import org.jdbi.v3.sqlobject.transaction.Transaction; + +import java.util.List; + +public interface PizzaDao { + + @SqlUpdate("CREATE TABLE IF NOT EXISTS pizzas (id INTEGER PRIMARY KEY, name VARCHAR UNIQUE NOT NULL)") + void createPizzaTable(); + + @SqlUpdate("CREATE TABLE IF NOT EXISTS PizzaIngredients (pizza_id INTEGER NOT NULL, ingredient_id INTEGER NOT NULL, PRIMARY KEY (pizza_id, ingredient_id))") + void createAssociationTable(); + + @SqlUpdate("DROP TABLE IF EXISTS pizzas") + void dropPizzaTable(); + + @SqlUpdate("DROP TABLE IF EXISTS PizzaIngredients") + void dropAssociationTable(); + + @SqlUpdate("INSERT INTO pizzas (name) VALUES (:name)") + @GetGeneratedKeys + long insert(String name); + + @SqlQuery("SELECT * FROM pizzas AS p INNER JOIN PizzaIngredients AS pi ON (p.id = pi.pizza_id) WHERE name = :name") + @RegisterBeanMapper(Pizza.class) + Pizza findByName(String name); + + @SqlUpdate("DELETE FROM pizzas WHERE id = :id") + void remove(long id); + + @SqlUpdate("INSERT INTO PizzaIngredients VALUES (:pizza, :ingredient)") + void insertIngredient(long pizza, int ingredient); + +// @SqlQuery("SELECT * FROM pizzas AS p INNER JOIN PizzaIngredients AS pi ON (p.id = pi.pizza_id) INNER JOIN ingredients AS i ON (i.id = pi.ingredient_id)") + @SqlQuery("SELECT * FROM pizzas INNER JOIN PizzasIngredients") + @RegisterBeanMapper(Pizza.class) + List<Pizza> getAll(); + + @SqlQuery("SELECT * FROM pizzas WHERE id = :id") + @RegisterBeanMapper(Pizza.class) + Pizza findById(long id); + + @Transaction + default void dropTable() { + dropAssociationTable(); + dropPizzaTable(); + } + + @Transaction + default void createTableAndIngredientAssociation() { + createPizzaTable(); + createAssociationTable(); + } +} diff --git a/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientCreateDto.java b/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientCreateDto.java new file mode 100644 index 0000000000000000000000000000000000000000..f6020bb177897dd1444fe57dad8401d5dc97413c --- /dev/null +++ b/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientCreateDto.java @@ -0,0 +1,15 @@ +package fr.ulille.iut.pizzaland.dto; + +public class IngredientCreateDto { + private String name; + + public IngredientCreateDto() {} + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} \ No newline at end of file diff --git a/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientDto.java b/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientDto.java index 1a9360bf01fa2544b241a017cfa0c056dada02e2..48775edebad0ce0566799747a90213bb6ec3b3ce 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientDto.java +++ b/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientDto.java @@ -1,8 +1,26 @@ package fr.ulille.iut.pizzaland.dto; public class IngredientDto { + private long id; + private String name; public IngredientDto() { - + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; } } + diff --git a/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaCreateDto.java b/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaCreateDto.java new file mode 100644 index 0000000000000000000000000000000000000000..6540b2bf73c7cfa6f324c63ac3011d08bd2e7161 --- /dev/null +++ b/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaCreateDto.java @@ -0,0 +1,15 @@ +package fr.ulille.iut.pizzaland.dto; + +public class PizzaCreateDto { + private String name; + + public PizzaCreateDto() {} + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaDto.java b/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaDto.java new file mode 100644 index 0000000000000000000000000000000000000000..2fc40e313dabbecdf4a9391e757c5dcd616c163a --- /dev/null +++ b/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaDto.java @@ -0,0 +1,33 @@ +package fr.ulille.iut.pizzaland.dto; + +import fr.ulille.iut.pizzaland.beans.Ingredient; + +public class PizzaDto { + private long id; + private String name; + private int[] ingredients; + + 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 int[] getIngredients() { + return ingredients; + } + + public void setIngredients(int[] ingredients) { + this.ingredients = ingredients; + } +} diff --git a/src/main/java/fr/ulille/iut/pizzaland/resources/IngredientResource.java b/src/main/java/fr/ulille/iut/pizzaland/resources/IngredientResource.java index bc19082daf4dd4cd778b956d9607e2f259a94cd1..f5e03e6c30ac81a726e98dd5580a95e99c7ec2da 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/resources/IngredientResource.java +++ b/src/main/java/fr/ulille/iut/pizzaland/resources/IngredientResource.java @@ -4,29 +4,123 @@ import java.net.URI; import java.util.List; import java.util.ArrayList; import java.util.logging.Logger; +import java.util.stream.Collectors; -import javax.ws.rs.GET; -import javax.ws.rs.Path; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; +import fr.ulille.iut.pizzaland.BDDFactory; +import fr.ulille.iut.pizzaland.beans.Ingredient; +import fr.ulille.iut.pizzaland.dao.IngredientDao; +import fr.ulille.iut.pizzaland.dto.IngredientCreateDto; import fr.ulille.iut.pizzaland.dto.IngredientDto; @Path("/ingredients") public class IngredientResource { private static final Logger LOGGER = Logger.getLogger(IngredientResource.class.getName()); + private IngredientDao ingredients; @Context public UriInfo uriInfo; public IngredientResource() { + ingredients = BDDFactory.buildDao(IngredientDao.class); + ingredients.createTable(); } @GET public List<IngredientDto> getAll() { LOGGER.info("IngredientResource:getAll"); - return null; + List<IngredientDto> l = ingredients.getAll().stream().map(Ingredient::toDto).collect(Collectors.toList()); + return l; } -} + + @GET + @Path("{id}") + public IngredientDto getOneIngredient(@PathParam("id") long id) { + LOGGER.info("getOneIngredient(" + id + ")"); + try { + Ingredient ingredient = ingredients.findById(id); + return Ingredient.toDto(ingredient); + } + catch ( Exception e ) { + // Cette exception générera une réponse avec une erreur 404 + throw new WebApplicationException(Response.Status.NOT_FOUND); + } + } + + @POST + public Response createIngredient(IngredientCreateDto ingredientCreateDto) { + Ingredient existing = ingredients.findByName(ingredientCreateDto.getName()); + if ( existing != null ) { + throw new WebApplicationException(Response.Status.CONFLICT); + } + + try { + Ingredient ingredient = Ingredient.fromIngredientCreateDto(ingredientCreateDto); + long id = ingredients.insert(ingredient.getName()); + ingredient.setId(id); + IngredientDto ingredientDto = Ingredient.toDto(ingredient); + + URI uri = uriInfo.getAbsolutePathBuilder().path("" + id).build(); + + return Response.created(uri).entity(ingredientDto).build(); + } + catch ( Exception e ) { + e.printStackTrace(); + throw new WebApplicationException(Response.Status.NOT_ACCEPTABLE); + } + } + + @DELETE + @Path("{id}") + public Response deleteIngredient(@PathParam("id") long id) { + if ( ingredients.findById(id) == null ) { + throw new WebApplicationException(Response.Status.NOT_FOUND); + } + + ingredients.remove(id); + + return Response.status(Response.Status.ACCEPTED).build(); + } + + @GET + @Path("{id}/name") + public String getIngredientName(@PathParam("id") long id) { + Ingredient ingredient = ingredients.findById(id); + if ( ingredient == null ) { + throw new WebApplicationException(Response.Status.NOT_FOUND); + } + + return ingredient.getName(); + } + + @POST + @Consumes("application/x-www-form-urlencoded") + public Response createIngredient(@FormParam("name") String name) { + Ingredient existing = ingredients.findByName(name); + if ( existing != null ) { + throw new WebApplicationException(Response.Status.CONFLICT); + } + + try { + Ingredient ingredient = new Ingredient(); + ingredient.setName(name); + + long id = ingredients.insert(ingredient.getName()); + ingredient.setId(id); + IngredientDto ingredientDto = Ingredient.toDto(ingredient); + + URI uri = uriInfo.getAbsolutePathBuilder().path("" + id).build(); + + return Response.created(uri).entity(ingredientDto).build(); + } + catch ( Exception e ) { + e.printStackTrace(); + throw new WebApplicationException(Response.Status.NOT_ACCEPTABLE); + } + } +} \ No newline at end of file diff --git a/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java b/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java new file mode 100644 index 0000000000000000000000000000000000000000..703e4145e2312837ce3a3f016517defb95ba4342 --- /dev/null +++ b/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java @@ -0,0 +1,123 @@ +package fr.ulille.iut.pizzaland.resources; + +import fr.ulille.iut.pizzaland.BDDFactory; +import fr.ulille.iut.pizzaland.beans.Pizza; +import fr.ulille.iut.pizzaland.dao.PizzaDao; +import fr.ulille.iut.pizzaland.dto.PizzaCreateDto; +import fr.ulille.iut.pizzaland.dto.PizzaDto; + +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; +import java.net.URI; +import java.util.List; +import java.util.logging.Logger; +import java.util.stream.Collectors; + +@Path("/pizzas") +public class PizzaResource { + private static final Logger LOGGER = Logger.getLogger(PizzaResource.class.getName()); + private PizzaDao pizzas; + + @Context + public UriInfo uriInfo; + + public PizzaResource() { + pizzas = BDDFactory.buildDao(PizzaDao.class); + pizzas.createTableAndIngredientAssociation(); + } + + @GET + public List<PizzaDto> getAll() { + LOGGER.info("PizzaResource:getAll"); + + return pizzas.getAll().stream().map(Pizza::toDto).collect(Collectors.toList()); + } + + @GET + @Path("{id}") + public PizzaDto getOnePizza(@PathParam("id") long id) { + LOGGER.info("getOnePizza(" + id + ")"); + try { + Pizza pizza = pizzas.findById(id); + return Pizza.toDto(pizza); + } + catch ( Exception e ) { + // Cette exception générera une réponse avec une erreur 404 + throw new WebApplicationException(Response.Status.NOT_FOUND); + } + } + + @POST + public Response createPizza(PizzaCreateDto pizzaCreateDto) { + Pizza existing = pizzas.findByName(pizzaCreateDto.getName()); + if ( existing != null ) { + throw new WebApplicationException(Response.Status.CONFLICT); + } + + try { + Pizza pizza = Pizza.fromPizzaCreateDto(pizzaCreateDto); + long id = pizzas.insert(pizza.getName()); + pizza.setId(id); + PizzaDto pizzaDto = Pizza.toDto(pizza); + + URI uri = uriInfo.getAbsolutePathBuilder().path("" + id).build(); + + return Response.created(uri).entity(pizzaDto).build(); + } + catch ( Exception e ) { + e.printStackTrace(); + throw new WebApplicationException(Response.Status.NOT_ACCEPTABLE); + } + } + + @DELETE + @Path("{id}") + public Response deleteIngredient(@PathParam("id") long id) { + if (pizzas.findById(id) == null ) { + throw new WebApplicationException(Response.Status.NOT_FOUND); + } + + pizzas.remove(id); + + return Response.status(Response.Status.ACCEPTED).build(); + } + + @GET + @Path("{id}/name") + public String getIngredientName(@PathParam("id") long id) { + Pizza pizza = pizzas.findById(id); + if ( pizza == null ) { + throw new WebApplicationException(Response.Status.NOT_FOUND); + } + + return pizza.getName(); + } + + @POST + @Consumes("application/x-www-form-urlencoded") + public Response createPizza(@FormParam("name") String name) { + Pizza existing = pizzas.findByName(name); + if ( existing != null ) { + throw new WebApplicationException(Response.Status.CONFLICT); + } + + try { + Pizza pizza = new Pizza(); + pizza.setName(name); + + long id = pizzas.insert(pizza.getName()); + pizza.setId(id); + PizzaDto pizzaDto = Pizza.toDto(pizza); + + URI uri = uriInfo.getAbsolutePathBuilder().path("" + id).build(); + + return Response.created(uri).entity(pizzaDto).build(); + } + catch ( Exception e ) { + e.printStackTrace(); + throw new WebApplicationException(Response.Status.NOT_ACCEPTABLE); + } + } +} \ No newline at end of file diff --git a/src/main/java/fr/ulille/iut/pizzaland/ressources/UncaughtException.java b/src/main/java/fr/ulille/iut/pizzaland/ressources/UncaughtException.java new file mode 100644 index 0000000000000000000000000000000000000000..90a85006eacdefde7fd1b72c024dd4ff3ce2b106 --- /dev/null +++ b/src/main/java/fr/ulille/iut/pizzaland/ressources/UncaughtException.java @@ -0,0 +1,22 @@ +package fr.ulille.iut.pizzaland.ressources; + +import javax.ws.rs.core.Response; +import javax.ws.rs.ext.ExceptionMapper; +import javax.ws.rs.ext.Provider; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Provider +public class UncaughtException extends Throwable implements ExceptionMapper<Throwable> { + final static Logger logger = LoggerFactory.getLogger(UncaughtException.class); + + private static final long serialVersionUID = 1L; + + @Override + public Response toResponse(Throwable exception) { + logger.debug("Exception thrown", exception); + return Response.status(500).entity("Exception thrown: " + exception.getStackTrace()[0] + "see log.").type("text/plain").build(); + } + +} diff --git a/src/main/resources/ingredients.json b/src/main/resources/ingredients.json index 2f6d0120787ad372eaa20f10622f421e2727f447..f1fbef4c8028962b5f40756f03b4680bab6f2fb6 100644 --- a/src/main/resources/ingredients.json +++ b/src/main/resources/ingredients.json @@ -1,14 +1,38 @@ [ - { "name": "mozzarella"}, -{ "name": "jambon"}, -{ "name": "champignons"}, -{ "name": "olives"}, -{ "name": "tomate"}, -{ "name": "merguez"}, -{ "name": "lardons"}, -{ "name": "fromage"}, -{ "name": "oeuf"}, -{ "name": "poivrons"}, -{ "name": "ananas"}, -{ "name": "reblochon"} -] + { + "name": "mozzarella" + }, + { + "name": "jambon" + }, + { + "name": "champignons" + }, + { + "name": "olives" + }, + { + "name": "tomate" + }, + { + "name": "merguez" + }, + { + "name": "lardons" + }, + { + "name": "fromage" + }, + { + "name": "oeuf" + }, + { + "name": "poivrons" + }, + { + "name": "ananas" + }, + { + "name": "reblochon" + } +] \ No newline at end of file diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties new file mode 100644 index 0000000000000000000000000000000000000000..393e0877ec1c2207f866bcf94740760170893486 --- /dev/null +++ b/src/main/resources/log4j.properties @@ -0,0 +1,8 @@ +# Root logger option +log4j.rootLogger=INFO, stdout + +# Direct log messages to stdout +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n \ No newline at end of file diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0c0753c35fb5248be6c098f50df85df597d01d4 --- /dev/null +++ b/src/main/resources/log4j.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> +<log4j:configuration debug="true" + xmlns:log4j='http://jakarta.apache.org/log4j/'> + + <appender name="console" class="org.apache.log4j.ConsoleAppender"> + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" + value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> + </layout> + </appender> + + <root> + <level value="DEBUG" /> + <appender-ref ref="console" /> + </root> + +</log4j:configuration> diff --git a/src/main/resources/pizzas.json b/src/main/resources/pizzas.json new file mode 100644 index 0000000000000000000000000000000000000000..377e3ef9c0d6e2b42c35f7ee161f434e4adf30cf --- /dev/null +++ b/src/main/resources/pizzas.json @@ -0,0 +1,22 @@ +[ + { + "name": "intriguante", + "ingredients": [1] + }, + { + "name": "4 fromages", + "ingredients": [] + }, + { + "name": "regina", + "ingredients": [] + }, + { + "name": "3 fromages", + "ingredients": [] + }, + { + "name": "hawaienne", + "ingredients": [] + } +] \ No newline at end of file diff --git a/src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java b/src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java index 2c8b1be3f265046d4d3557185aac26b7704ec1ac..9bd536e2bab19ece4a4e945d4c818a060468a7dc 100644 --- a/src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java +++ b/src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java @@ -1,6 +1,9 @@ package fr.ulille.iut.pizzaland; import fr.ulille.iut.pizzaland.ApiV1; +import fr.ulille.iut.pizzaland.beans.Ingredient; +import fr.ulille.iut.pizzaland.dao.IngredientDao; +import fr.ulille.iut.pizzaland.dto.IngredientCreateDto; import fr.ulille.iut.pizzaland.dto.IngredientDto; import org.glassfish.jersey.test.JerseyTest; @@ -10,11 +13,10 @@ import org.junit.Before; import org.junit.Test; import javax.ws.rs.client.Entity; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.Response; +import javax.ws.rs.core.*; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import java.util.List; import java.util.logging.Logger; @@ -26,10 +28,12 @@ import java.util.logging.Logger; */ public class IngredientResourceTest extends JerseyTest { private static final Logger LOGGER = Logger.getLogger(IngredientResourceTest.class.getName()); - + private IngredientDao dao; + @Override protected Application configure() { - return new ApiV1(); + BDDFactory.setJdbiForTests(); + return new ApiV1(); } // Les méthodes setEnvUp() et tearEnvDown() serviront à terme à initialiser la base de données @@ -38,12 +42,13 @@ public class IngredientResourceTest extends JerseyTest { // https://stackoverflow.com/questions/25906976/jerseytest-and-junit-throws-nullpointerexception @Before public void setEnvUp() { - + dao = BDDFactory.buildDao(IngredientDao.class); + dao.createTable(); } @After public void tearEnvDown() throws Exception { - + dao.dropTable(); } @Test @@ -66,4 +71,128 @@ public class IngredientResourceTest extends JerseyTest { assertEquals(0, ingredients.size()); } + + @Test + public void testGetExistingIngredient() { + Ingredient ingredient = new Ingredient(); + ingredient.setId(1); + ingredient.setName("mozzarella"); + + Response response = target("/ingredients/1").request().get(); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + + Ingredient result = Ingredient.fromDto(response.readEntity(IngredientDto.class)); + assertEquals(ingredient, result); + } + + @Test + public void testGetNotExistingIngredient() { + Response response = target("/ingredients/125").request().get(); + assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus()); + } + + @Test + public void testCreateIngredient() { + IngredientCreateDto ingredientCreateDto = new IngredientCreateDto(); + ingredientCreateDto.setName("mozzarella"); + + Response response = target("/ingredients") + .request() + .post(Entity.json(ingredientCreateDto)); + + // On vérifie le code de status à 201 + assertEquals(Response.Status.CREATED.getStatusCode(), response.getStatus()); + + IngredientDto returnedEntity = response.readEntity(IngredientDto.class); + + // On vérifie que le champ d'entête Location correspond à + // l'URI de la nouvelle entité + assertEquals(target("/ingredients/" + + returnedEntity.getId()).getUri(), response.getLocation()); + + // On vérifie que le nom correspond + assertEquals(returnedEntity.getName(), ingredientCreateDto.getName()); + } + + @Test + public void testCreateSameIngredient() { + IngredientCreateDto ingredientCreateDto = new IngredientCreateDto(); + ingredientCreateDto.setName("mozzarella"); + dao.insert(ingredientCreateDto.getName()); + + Response response = target("/ingredients") + .request() + .post(Entity.json(ingredientCreateDto)); + + assertEquals(Response.Status.CONFLICT.getStatusCode(), response.getStatus()); + } + + @Test + public void testCreateIngredientWithoutName() { + IngredientCreateDto ingredientCreateDto = new IngredientCreateDto(); + + Response response = target("/ingredients") + .request() + .post(Entity.json(ingredientCreateDto)); + + assertEquals(Response.Status.NOT_ACCEPTABLE.getStatusCode(), response.getStatus()); + } + + @Test + public void testDeleteExistingIngredient() { + Ingredient ingredient = new Ingredient(); + ingredient.setName("mozzarella"); + long id = dao.insert(ingredient.getName()); + ingredient.setId(id); + + Response response = target("/ingredients/" + id).request().delete(); + + assertEquals(Response.Status.ACCEPTED.getStatusCode(), response.getStatus()); + + Ingredient result = dao.findById(id); + assertEquals(result, null); + } + + @Test + public void testDeleteNotExistingIngredient() { + Response response = target("/ingredients/125").request().delete(); + assertEquals(Response.Status.NOT_FOUND.getStatusCode(), + response.getStatus()); + } + + @Test + public void testGetIngredientName() { + Ingredient ingredient = new Ingredient(); + ingredient.setName("mozzarella"); + long id = dao.insert(ingredient.getName()); + + Response response = target("ingredients/" + id + "/name").request().get(); + + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + + assertEquals("mozzarella", response.readEntity(String.class)); + } + + @Test + public void testGetNotExistingIngredientName() { + Response response = target("ingredients/125/name").request().get(); + + assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus()); + } + + @Test + public void testCreateWithForm() { + Form form = new Form(); + form.param("name", "chorizo"); + + Entity<Form> formEntity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE); + Response response = target("ingredients").request().post(formEntity); + + assertEquals(Response.Status.CREATED.getStatusCode(), response.getStatus()); + String location = response.getHeaderString("Location"); + long id = Integer.parseInt(location.substring(location.lastIndexOf('/') + 1)); + Ingredient result = dao.findById(id); + + assertNotNull(result); + } } diff --git a/src/test/resources/log4j.properties b/src/test/resources/log4j.properties new file mode 100644 index 0000000000000000000000000000000000000000..393e0877ec1c2207f866bcf94740760170893486 --- /dev/null +++ b/src/test/resources/log4j.properties @@ -0,0 +1,8 @@ +# Root logger option +log4j.rootLogger=INFO, stdout + +# Direct log messages to stdout +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n \ No newline at end of file diff --git a/src/test/resources/log4j.xml b/src/test/resources/log4j.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0c0753c35fb5248be6c098f50df85df597d01d4 --- /dev/null +++ b/src/test/resources/log4j.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> +<log4j:configuration debug="true" + xmlns:log4j='http://jakarta.apache.org/log4j/'> + + <appender name="console" class="org.apache.log4j.ConsoleAppender"> + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" + value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> + </layout> + </appender> + + <root> + <level value="DEBUG" /> + <appender-ref ref="console" /> + </root> + +</log4j:configuration>