commit
0cd9748deb
31 changed files with 30141 additions and 0 deletions
@ -0,0 +1,60 @@ |
|||||
|
# antennas-front Project |
||||
|
|
||||
|
This project uses Quarkus, the Supersonic Subatomic Java Framework. |
||||
|
|
||||
|
If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ . |
||||
|
|
||||
|
## Running the application in dev mode |
||||
|
|
||||
|
You can run your application in dev mode that enables live coding using: |
||||
|
```shell script |
||||
|
./mvnw compile quarkus:dev |
||||
|
``` |
||||
|
|
||||
|
> **_NOTE:_** Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/. |
||||
|
|
||||
|
## Packaging and running the application |
||||
|
|
||||
|
The application can be packaged using: |
||||
|
```shell script |
||||
|
./mvnw package |
||||
|
``` |
||||
|
It produces the `quarkus-run.jar` file in the `target/quarkus-app/` directory. |
||||
|
Be aware that it’s not an _über-jar_ as the dependencies are copied into the `target/quarkus-app/lib/` directory. |
||||
|
|
||||
|
The application is now runnable using `java -jar target/quarkus-app/quarkus-run.jar`. |
||||
|
|
||||
|
If you want to build an _über-jar_, execute the following command: |
||||
|
```shell script |
||||
|
./mvnw package -Dquarkus.package.type=uber-jar |
||||
|
``` |
||||
|
|
||||
|
The application, packaged as an _über-jar_, is now runnable using `java -jar target/*-runner.jar`. |
||||
|
|
||||
|
## Creating a native executable |
||||
|
|
||||
|
You can create a native executable using: |
||||
|
```shell script |
||||
|
./mvnw package -Pnative |
||||
|
``` |
||||
|
|
||||
|
Or, if you don't have GraalVM installed, you can run the native executable build in a container using: |
||||
|
```shell script |
||||
|
./mvnw package -Pnative -Dquarkus.native.container-build=true |
||||
|
``` |
||||
|
|
||||
|
You can then execute your native executable with: `./target/antennas-front-1.0.0-SNAPSHOT-runner` |
||||
|
|
||||
|
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling. |
||||
|
|
||||
|
## Related Guides |
||||
|
|
||||
|
- RESTEasy Classic ([guide](https://quarkus.io/guides/resteasy)): REST endpoint framework implementing JAX-RS and more |
||||
|
|
||||
|
## Provided Code |
||||
|
|
||||
|
### RESTEasy JAX-RS |
||||
|
|
||||
|
Easily start your RESTful Web Services |
||||
|
|
||||
|
[Related guide section...](https://quarkus.io/guides/getting-started#the-jax-rs-resources) |
||||
@ -0,0 +1,316 @@ |
|||||
|
#!/bin/sh |
||||
|
# ---------------------------------------------------------------------------- |
||||
|
# Licensed to the Apache Software Foundation (ASF) under one |
||||
|
# or more contributor license agreements. See the NOTICE file |
||||
|
# distributed with this work for additional information |
||||
|
# regarding copyright ownership. The ASF licenses this file |
||||
|
# to you under the Apache License, Version 2.0 (the |
||||
|
# "License"); you may not use this file except in compliance |
||||
|
# with the License. You may obtain a copy of the License at |
||||
|
# |
||||
|
# https://www.apache.org/licenses/LICENSE-2.0 |
||||
|
# |
||||
|
# Unless required by applicable law or agreed to in writing, |
||||
|
# software distributed under the License is distributed on an |
||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
||||
|
# KIND, either express or implied. See the License for the |
||||
|
# specific language governing permissions and limitations |
||||
|
# under the License. |
||||
|
# ---------------------------------------------------------------------------- |
||||
|
|
||||
|
# ---------------------------------------------------------------------------- |
||||
|
# Maven Start Up Batch script |
||||
|
# |
||||
|
# Required ENV vars: |
||||
|
# ------------------ |
||||
|
# JAVA_HOME - location of a JDK home dir |
||||
|
# |
||||
|
# Optional ENV vars |
||||
|
# ----------------- |
||||
|
# M2_HOME - location of maven2's installed home dir |
||||
|
# MAVEN_OPTS - parameters passed to the Java VM when running Maven |
||||
|
# e.g. to debug Maven itself, use |
||||
|
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 |
||||
|
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
||||
|
# ---------------------------------------------------------------------------- |
||||
|
|
||||
|
if [ -z "$MAVEN_SKIP_RC" ] ; then |
||||
|
|
||||
|
if [ -f /usr/local/etc/mavenrc ] ; then |
||||
|
. /usr/local/etc/mavenrc |
||||
|
fi |
||||
|
|
||||
|
if [ -f /etc/mavenrc ] ; then |
||||
|
. /etc/mavenrc |
||||
|
fi |
||||
|
|
||||
|
if [ -f "$HOME/.mavenrc" ] ; then |
||||
|
. "$HOME/.mavenrc" |
||||
|
fi |
||||
|
|
||||
|
fi |
||||
|
|
||||
|
# OS specific support. $var _must_ be set to either true or false. |
||||
|
cygwin=false; |
||||
|
darwin=false; |
||||
|
mingw=false |
||||
|
case "`uname`" in |
||||
|
CYGWIN*) cygwin=true ;; |
||||
|
MINGW*) mingw=true;; |
||||
|
Darwin*) darwin=true |
||||
|
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home |
||||
|
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html |
||||
|
if [ -z "$JAVA_HOME" ]; then |
||||
|
if [ -x "/usr/libexec/java_home" ]; then |
||||
|
export JAVA_HOME="`/usr/libexec/java_home`" |
||||
|
else |
||||
|
export JAVA_HOME="/Library/Java/Home" |
||||
|
fi |
||||
|
fi |
||||
|
;; |
||||
|
esac |
||||
|
|
||||
|
if [ -z "$JAVA_HOME" ] ; then |
||||
|
if [ -r /etc/gentoo-release ] ; then |
||||
|
JAVA_HOME=`java-config --jre-home` |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
if [ -z "$M2_HOME" ] ; then |
||||
|
## resolve links - $0 may be a link to maven's home |
||||
|
PRG="$0" |
||||
|
|
||||
|
# need this for relative symlinks |
||||
|
while [ -h "$PRG" ] ; do |
||||
|
ls=`ls -ld "$PRG"` |
||||
|
link=`expr "$ls" : '.*-> \(.*\)$'` |
||||
|
if expr "$link" : '/.*' > /dev/null; then |
||||
|
PRG="$link" |
||||
|
else |
||||
|
PRG="`dirname "$PRG"`/$link" |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
saveddir=`pwd` |
||||
|
|
||||
|
M2_HOME=`dirname "$PRG"`/.. |
||||
|
|
||||
|
# make it fully qualified |
||||
|
M2_HOME=`cd "$M2_HOME" && pwd` |
||||
|
|
||||
|
cd "$saveddir" |
||||
|
# echo Using m2 at $M2_HOME |
||||
|
fi |
||||
|
|
||||
|
# For Cygwin, ensure paths are in UNIX format before anything is touched |
||||
|
if $cygwin ; then |
||||
|
[ -n "$M2_HOME" ] && |
||||
|
M2_HOME=`cygpath --unix "$M2_HOME"` |
||||
|
[ -n "$JAVA_HOME" ] && |
||||
|
JAVA_HOME=`cygpath --unix "$JAVA_HOME"` |
||||
|
[ -n "$CLASSPATH" ] && |
||||
|
CLASSPATH=`cygpath --path --unix "$CLASSPATH"` |
||||
|
fi |
||||
|
|
||||
|
# For Mingw, ensure paths are in UNIX format before anything is touched |
||||
|
if $mingw ; then |
||||
|
[ -n "$M2_HOME" ] && |
||||
|
M2_HOME="`(cd "$M2_HOME"; pwd)`" |
||||
|
[ -n "$JAVA_HOME" ] && |
||||
|
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" |
||||
|
fi |
||||
|
|
||||
|
if [ -z "$JAVA_HOME" ]; then |
||||
|
javaExecutable="`which javac`" |
||||
|
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then |
||||
|
# readlink(1) is not available as standard on Solaris 10. |
||||
|
readLink=`which readlink` |
||||
|
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then |
||||
|
if $darwin ; then |
||||
|
javaHome="`dirname \"$javaExecutable\"`" |
||||
|
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" |
||||
|
else |
||||
|
javaExecutable="`readlink -f \"$javaExecutable\"`" |
||||
|
fi |
||||
|
javaHome="`dirname \"$javaExecutable\"`" |
||||
|
javaHome=`expr "$javaHome" : '\(.*\)/bin'` |
||||
|
JAVA_HOME="$javaHome" |
||||
|
export JAVA_HOME |
||||
|
fi |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
if [ -z "$JAVACMD" ] ; then |
||||
|
if [ -n "$JAVA_HOME" ] ; then |
||||
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |
||||
|
# IBM's JDK on AIX uses strange locations for the executables |
||||
|
JAVACMD="$JAVA_HOME/jre/sh/java" |
||||
|
else |
||||
|
JAVACMD="$JAVA_HOME/bin/java" |
||||
|
fi |
||||
|
else |
||||
|
JAVACMD="`\\unset -f command; \\command -v java`" |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
if [ ! -x "$JAVACMD" ] ; then |
||||
|
echo "Error: JAVA_HOME is not defined correctly." >&2 |
||||
|
echo " We cannot execute $JAVACMD" >&2 |
||||
|
exit 1 |
||||
|
fi |
||||
|
|
||||
|
if [ -z "$JAVA_HOME" ] ; then |
||||
|
echo "Warning: JAVA_HOME environment variable is not set." |
||||
|
fi |
||||
|
|
||||
|
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher |
||||
|
|
||||
|
# traverses directory structure from process work directory to filesystem root |
||||
|
# first directory with .mvn subdirectory is considered project base directory |
||||
|
find_maven_basedir() { |
||||
|
|
||||
|
if [ -z "$1" ] |
||||
|
then |
||||
|
echo "Path not specified to find_maven_basedir" |
||||
|
return 1 |
||||
|
fi |
||||
|
|
||||
|
basedir="$1" |
||||
|
wdir="$1" |
||||
|
while [ "$wdir" != '/' ] ; do |
||||
|
if [ -d "$wdir"/.mvn ] ; then |
||||
|
basedir=$wdir |
||||
|
break |
||||
|
fi |
||||
|
# workaround for JBEAP-8937 (on Solaris 10/Sparc) |
||||
|
if [ -d "${wdir}" ]; then |
||||
|
wdir=`cd "$wdir/.."; pwd` |
||||
|
fi |
||||
|
# end of workaround |
||||
|
done |
||||
|
echo "${basedir}" |
||||
|
} |
||||
|
|
||||
|
# concatenates all lines of a file |
||||
|
concat_lines() { |
||||
|
if [ -f "$1" ]; then |
||||
|
echo "$(tr -s '\n' ' ' < "$1")" |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
BASE_DIR=`find_maven_basedir "$(pwd)"` |
||||
|
if [ -z "$BASE_DIR" ]; then |
||||
|
exit 1; |
||||
|
fi |
||||
|
|
||||
|
########################################################################################## |
||||
|
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central |
||||
|
# This allows using the maven wrapper in projects that prohibit checking in binary data. |
||||
|
########################################################################################## |
||||
|
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then |
||||
|
if [ "$MVNW_VERBOSE" = true ]; then |
||||
|
echo "Found .mvn/wrapper/maven-wrapper.jar" |
||||
|
fi |
||||
|
else |
||||
|
if [ "$MVNW_VERBOSE" = true ]; then |
||||
|
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." |
||||
|
fi |
||||
|
if [ -n "$MVNW_REPOURL" ]; then |
||||
|
jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" |
||||
|
else |
||||
|
jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" |
||||
|
fi |
||||
|
while IFS="=" read key value; do |
||||
|
case "$key" in (wrapperUrl) jarUrl="$value"; break ;; |
||||
|
esac |
||||
|
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" |
||||
|
if [ "$MVNW_VERBOSE" = true ]; then |
||||
|
echo "Downloading from: $jarUrl" |
||||
|
fi |
||||
|
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" |
||||
|
if $cygwin; then |
||||
|
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` |
||||
|
fi |
||||
|
|
||||
|
if command -v wget > /dev/null; then |
||||
|
if [ "$MVNW_VERBOSE" = true ]; then |
||||
|
echo "Found wget ... using wget" |
||||
|
fi |
||||
|
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then |
||||
|
wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" |
||||
|
else |
||||
|
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" |
||||
|
fi |
||||
|
elif command -v curl > /dev/null; then |
||||
|
if [ "$MVNW_VERBOSE" = true ]; then |
||||
|
echo "Found curl ... using curl" |
||||
|
fi |
||||
|
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then |
||||
|
curl -o "$wrapperJarPath" "$jarUrl" -f |
||||
|
else |
||||
|
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f |
||||
|
fi |
||||
|
|
||||
|
else |
||||
|
if [ "$MVNW_VERBOSE" = true ]; then |
||||
|
echo "Falling back to using Java to download" |
||||
|
fi |
||||
|
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" |
||||
|
# For Cygwin, switch paths to Windows format before running javac |
||||
|
if $cygwin; then |
||||
|
javaClass=`cygpath --path --windows "$javaClass"` |
||||
|
fi |
||||
|
if [ -e "$javaClass" ]; then |
||||
|
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then |
||||
|
if [ "$MVNW_VERBOSE" = true ]; then |
||||
|
echo " - Compiling MavenWrapperDownloader.java ..." |
||||
|
fi |
||||
|
# Compiling the Java class |
||||
|
("$JAVA_HOME/bin/javac" "$javaClass") |
||||
|
fi |
||||
|
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then |
||||
|
# Running the downloader |
||||
|
if [ "$MVNW_VERBOSE" = true ]; then |
||||
|
echo " - Running MavenWrapperDownloader.java ..." |
||||
|
fi |
||||
|
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") |
||||
|
fi |
||||
|
fi |
||||
|
fi |
||||
|
fi |
||||
|
########################################################################################## |
||||
|
# End of extension |
||||
|
########################################################################################## |
||||
|
|
||||
|
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} |
||||
|
if [ "$MVNW_VERBOSE" = true ]; then |
||||
|
echo $MAVEN_PROJECTBASEDIR |
||||
|
fi |
||||
|
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" |
||||
|
|
||||
|
# For Cygwin, switch paths to Windows format before running java |
||||
|
if $cygwin; then |
||||
|
[ -n "$M2_HOME" ] && |
||||
|
M2_HOME=`cygpath --path --windows "$M2_HOME"` |
||||
|
[ -n "$JAVA_HOME" ] && |
||||
|
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` |
||||
|
[ -n "$CLASSPATH" ] && |
||||
|
CLASSPATH=`cygpath --path --windows "$CLASSPATH"` |
||||
|
[ -n "$MAVEN_PROJECTBASEDIR" ] && |
||||
|
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` |
||||
|
fi |
||||
|
|
||||
|
# Provide a "standardized" way to retrieve the CLI args that will |
||||
|
# work with both Windows and non-Windows executions. |
||||
|
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" |
||||
|
export MAVEN_CMD_LINE_ARGS |
||||
|
|
||||
|
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain |
||||
|
|
||||
|
exec "$JAVACMD" \ |
||||
|
$MAVEN_OPTS \ |
||||
|
$MAVEN_DEBUG_OPTS \ |
||||
|
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ |
||||
|
"-Dmaven.home=${M2_HOME}" \ |
||||
|
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ |
||||
|
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" |
||||
@ -0,0 +1,188 @@ |
|||||
|
@REM ---------------------------------------------------------------------------- |
||||
|
@REM Licensed to the Apache Software Foundation (ASF) under one |
||||
|
@REM or more contributor license agreements. See the NOTICE file |
||||
|
@REM distributed with this work for additional information |
||||
|
@REM regarding copyright ownership. The ASF licenses this file |
||||
|
@REM to you under the Apache License, Version 2.0 (the |
||||
|
@REM "License"); you may not use this file except in compliance |
||||
|
@REM with the License. You may obtain a copy of the License at |
||||
|
@REM |
||||
|
@REM https://www.apache.org/licenses/LICENSE-2.0 |
||||
|
@REM |
||||
|
@REM Unless required by applicable law or agreed to in writing, |
||||
|
@REM software distributed under the License is distributed on an |
||||
|
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
||||
|
@REM KIND, either express or implied. See the License for the |
||||
|
@REM specific language governing permissions and limitations |
||||
|
@REM under the License. |
||||
|
@REM ---------------------------------------------------------------------------- |
||||
|
|
||||
|
@REM ---------------------------------------------------------------------------- |
||||
|
@REM Maven Start Up Batch script |
||||
|
@REM |
||||
|
@REM Required ENV vars: |
||||
|
@REM JAVA_HOME - location of a JDK home dir |
||||
|
@REM |
||||
|
@REM Optional ENV vars |
||||
|
@REM M2_HOME - location of maven2's installed home dir |
||||
|
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands |
||||
|
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending |
||||
|
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven |
||||
|
@REM e.g. to debug Maven itself, use |
||||
|
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 |
||||
|
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
||||
|
@REM ---------------------------------------------------------------------------- |
||||
|
|
||||
|
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' |
||||
|
@echo off |
||||
|
@REM set title of command window |
||||
|
title %0 |
||||
|
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' |
||||
|
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% |
||||
|
|
||||
|
@REM set %HOME% to equivalent of $HOME |
||||
|
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") |
||||
|
|
||||
|
@REM Execute a user defined script before this one |
||||
|
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre |
||||
|
@REM check for pre script, once with legacy .bat ending and once with .cmd ending |
||||
|
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* |
||||
|
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* |
||||
|
:skipRcPre |
||||
|
|
||||
|
@setlocal |
||||
|
|
||||
|
set ERROR_CODE=0 |
||||
|
|
||||
|
@REM To isolate internal variables from possible post scripts, we use another setlocal |
||||
|
@setlocal |
||||
|
|
||||
|
@REM ==== START VALIDATION ==== |
||||
|
if not "%JAVA_HOME%" == "" goto OkJHome |
||||
|
|
||||
|
echo. |
||||
|
echo Error: JAVA_HOME not found in your environment. >&2 |
||||
|
echo Please set the JAVA_HOME variable in your environment to match the >&2 |
||||
|
echo location of your Java installation. >&2 |
||||
|
echo. |
||||
|
goto error |
||||
|
|
||||
|
:OkJHome |
||||
|
if exist "%JAVA_HOME%\bin\java.exe" goto init |
||||
|
|
||||
|
echo. |
||||
|
echo Error: JAVA_HOME is set to an invalid directory. >&2 |
||||
|
echo JAVA_HOME = "%JAVA_HOME%" >&2 |
||||
|
echo Please set the JAVA_HOME variable in your environment to match the >&2 |
||||
|
echo location of your Java installation. >&2 |
||||
|
echo. |
||||
|
goto error |
||||
|
|
||||
|
@REM ==== END VALIDATION ==== |
||||
|
|
||||
|
:init |
||||
|
|
||||
|
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". |
||||
|
@REM Fallback to current working directory if not found. |
||||
|
|
||||
|
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% |
||||
|
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir |
||||
|
|
||||
|
set EXEC_DIR=%CD% |
||||
|
set WDIR=%EXEC_DIR% |
||||
|
:findBaseDir |
||||
|
IF EXIST "%WDIR%"\.mvn goto baseDirFound |
||||
|
cd .. |
||||
|
IF "%WDIR%"=="%CD%" goto baseDirNotFound |
||||
|
set WDIR=%CD% |
||||
|
goto findBaseDir |
||||
|
|
||||
|
:baseDirFound |
||||
|
set MAVEN_PROJECTBASEDIR=%WDIR% |
||||
|
cd "%EXEC_DIR%" |
||||
|
goto endDetectBaseDir |
||||
|
|
||||
|
:baseDirNotFound |
||||
|
set MAVEN_PROJECTBASEDIR=%EXEC_DIR% |
||||
|
cd "%EXEC_DIR%" |
||||
|
|
||||
|
:endDetectBaseDir |
||||
|
|
||||
|
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig |
||||
|
|
||||
|
@setlocal EnableExtensions EnableDelayedExpansion |
||||
|
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a |
||||
|
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% |
||||
|
|
||||
|
:endReadAdditionalConfig |
||||
|
|
||||
|
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" |
||||
|
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" |
||||
|
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain |
||||
|
|
||||
|
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" |
||||
|
|
||||
|
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( |
||||
|
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B |
||||
|
) |
||||
|
|
||||
|
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central |
||||
|
@REM This allows using the maven wrapper in projects that prohibit checking in binary data. |
||||
|
if exist %WRAPPER_JAR% ( |
||||
|
if "%MVNW_VERBOSE%" == "true" ( |
||||
|
echo Found %WRAPPER_JAR% |
||||
|
) |
||||
|
) else ( |
||||
|
if not "%MVNW_REPOURL%" == "" ( |
||||
|
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" |
||||
|
) |
||||
|
if "%MVNW_VERBOSE%" == "true" ( |
||||
|
echo Couldn't find %WRAPPER_JAR%, downloading it ... |
||||
|
echo Downloading from: %DOWNLOAD_URL% |
||||
|
) |
||||
|
|
||||
|
powershell -Command "&{"^ |
||||
|
"$webclient = new-object System.Net.WebClient;"^ |
||||
|
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ |
||||
|
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ |
||||
|
"}"^ |
||||
|
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ |
||||
|
"}" |
||||
|
if "%MVNW_VERBOSE%" == "true" ( |
||||
|
echo Finished downloading %WRAPPER_JAR% |
||||
|
) |
||||
|
) |
||||
|
@REM End of extension |
||||
|
|
||||
|
@REM Provide a "standardized" way to retrieve the CLI args that will |
||||
|
@REM work with both Windows and non-Windows executions. |
||||
|
set MAVEN_CMD_LINE_ARGS=%* |
||||
|
|
||||
|
%MAVEN_JAVA_EXE% ^ |
||||
|
%JVM_CONFIG_MAVEN_PROPS% ^ |
||||
|
%MAVEN_OPTS% ^ |
||||
|
%MAVEN_DEBUG_OPTS% ^ |
||||
|
-classpath %WRAPPER_JAR% ^ |
||||
|
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ |
||||
|
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* |
||||
|
if ERRORLEVEL 1 goto error |
||||
|
goto end |
||||
|
|
||||
|
:error |
||||
|
set ERROR_CODE=1 |
||||
|
|
||||
|
:end |
||||
|
@endlocal & set ERROR_CODE=%ERROR_CODE% |
||||
|
|
||||
|
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost |
||||
|
@REM check for post script, once with legacy .bat ending and once with .cmd ending |
||||
|
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" |
||||
|
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" |
||||
|
:skipRcPost |
||||
|
|
||||
|
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' |
||||
|
if "%MAVEN_BATCH_PAUSE%"=="on" pause |
||||
|
|
||||
|
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% |
||||
|
|
||||
|
cmd /C exit /B %ERROR_CODE% |
||||
@ -0,0 +1,148 @@ |
|||||
|
<?xml version="1.0"?> |
||||
|
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
<groupId>org.sebi</groupId> |
||||
|
<artifactId>antennas-front</artifactId> |
||||
|
<version>1.0.0-SNAPSHOT</version> |
||||
|
<properties> |
||||
|
<compiler-plugin.version>3.8.1</compiler-plugin.version> |
||||
|
<failsafe.useModulePath>false</failsafe.useModulePath> |
||||
|
<maven.compiler.release>11</maven.compiler.release> |
||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
||||
|
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> |
||||
|
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id> |
||||
|
<quarkus.platform.version>2.8.2.Final</quarkus.platform.version> |
||||
|
<surefire-plugin.version>3.0.0-M5</surefire-plugin.version> |
||||
|
</properties> |
||||
|
<dependencyManagement> |
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>${quarkus.platform.group-id}</groupId> |
||||
|
<artifactId>${quarkus.platform.artifact-id}</artifactId> |
||||
|
<version>${quarkus.platform.version}</version> |
||||
|
<type>pom</type> |
||||
|
<scope>import</scope> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
</dependencyManagement> |
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>io.quarkus</groupId> |
||||
|
<artifactId>quarkus-resteasy</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.quarkus</groupId> |
||||
|
<artifactId>quarkus-arc</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.quarkus</groupId> |
||||
|
<artifactId>quarkus-websockets</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.quarkus</groupId> |
||||
|
<artifactId>quarkus-jackson</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.quarkus</groupId> |
||||
|
<artifactId>quarkus-jdbc-h2</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.quarkus</groupId> |
||||
|
<artifactId>quarkus-resteasy-jsonb</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.quarkus</groupId> |
||||
|
<artifactId>quarkus-hibernate-orm-panache</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.quarkus</groupId> |
||||
|
<artifactId>quarkus-smallrye-openapi</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.quarkus</groupId> |
||||
|
<artifactId>quarkus-junit5</artifactId> |
||||
|
<scope>test</scope> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.rest-assured</groupId> |
||||
|
<artifactId>rest-assured</artifactId> |
||||
|
<scope>test</scope> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
<build> |
||||
|
<plugins> |
||||
|
<plugin> |
||||
|
<groupId>${quarkus.platform.group-id}</groupId> |
||||
|
<artifactId>quarkus-maven-plugin</artifactId> |
||||
|
<version>${quarkus.platform.version}</version> |
||||
|
<extensions>true</extensions> |
||||
|
<executions> |
||||
|
<execution> |
||||
|
<goals> |
||||
|
<goal>build</goal> |
||||
|
<goal>generate-code</goal> |
||||
|
<goal>generate-code-tests</goal> |
||||
|
</goals> |
||||
|
</execution> |
||||
|
</executions> |
||||
|
</plugin> |
||||
|
<plugin> |
||||
|
<artifactId>maven-compiler-plugin</artifactId> |
||||
|
<version>${compiler-plugin.version}</version> |
||||
|
<configuration> |
||||
|
<compilerArgs> |
||||
|
<arg>-parameters</arg> |
||||
|
</compilerArgs> |
||||
|
</configuration> |
||||
|
</plugin> |
||||
|
<plugin> |
||||
|
<artifactId>maven-surefire-plugin</artifactId> |
||||
|
<version>${surefire-plugin.version}</version> |
||||
|
<configuration> |
||||
|
<systemPropertyVariables> |
||||
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
||||
|
<maven.home>${maven.home}</maven.home> |
||||
|
</systemPropertyVariables> |
||||
|
</configuration> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
</build> |
||||
|
<profiles> |
||||
|
<profile> |
||||
|
<id>native</id> |
||||
|
<activation> |
||||
|
<property> |
||||
|
<name>native</name> |
||||
|
</property> |
||||
|
</activation> |
||||
|
<build> |
||||
|
<plugins> |
||||
|
<plugin> |
||||
|
<artifactId>maven-failsafe-plugin</artifactId> |
||||
|
<version>${surefire-plugin.version}</version> |
||||
|
<executions> |
||||
|
<execution> |
||||
|
<goals> |
||||
|
<goal>integration-test</goal> |
||||
|
<goal>verify</goal> |
||||
|
</goals> |
||||
|
<configuration> |
||||
|
<systemPropertyVariables> |
||||
|
<native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path> |
||||
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
||||
|
<maven.home>${maven.home}</maven.home> |
||||
|
</systemPropertyVariables> |
||||
|
</configuration> |
||||
|
</execution> |
||||
|
</executions> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
</build> |
||||
|
<properties> |
||||
|
<quarkus.package.type>native</quarkus.package.type> |
||||
|
</properties> |
||||
|
</profile> |
||||
|
</profiles> |
||||
|
</project> |
||||
@ -0,0 +1,94 @@ |
|||||
|
#### |
||||
|
# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode |
||||
|
# |
||||
|
# Before building the container image run: |
||||
|
# |
||||
|
# ./mvnw package |
||||
|
# |
||||
|
# Then, build the image with: |
||||
|
# |
||||
|
# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/antennas-front-jvm . |
||||
|
# |
||||
|
# Then run the container using: |
||||
|
# |
||||
|
# docker run -i --rm -p 8080:8080 quarkus/antennas-front-jvm |
||||
|
# |
||||
|
# If you want to include the debug port into your docker image |
||||
|
# you will have to expose the debug port (default 5005) like this : EXPOSE 8080 5005 |
||||
|
# |
||||
|
# Then run the container using : |
||||
|
# |
||||
|
# docker run -i --rm -p 8080:8080 quarkus/antennas-front-jvm |
||||
|
# |
||||
|
# This image uses the `run-java.sh` script to run the application. |
||||
|
# This scripts computes the command line to execute your Java application, and |
||||
|
# includes memory/GC tuning. |
||||
|
# You can configure the behavior using the following environment properties: |
||||
|
# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") |
||||
|
# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options |
||||
|
# in JAVA_OPTS (example: "-Dsome.property=foo") |
||||
|
# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is |
||||
|
# used to calculate a default maximal heap memory based on a containers restriction. |
||||
|
# If used in a container without any memory constraints for the container then this |
||||
|
# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio |
||||
|
# of the container available memory as set here. The default is `50` which means 50% |
||||
|
# of the available memory is used as an upper boundary. You can skip this mechanism by |
||||
|
# setting this value to `0` in which case no `-Xmx` option is added. |
||||
|
# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This |
||||
|
# is used to calculate a default initial heap memory based on the maximum heap memory. |
||||
|
# If used in a container without any memory constraints for the container then this |
||||
|
# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio |
||||
|
# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` |
||||
|
# is used as the initial heap size. You can skip this mechanism by setting this value |
||||
|
# to `0` in which case no `-Xms` option is added (example: "25") |
||||
|
# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. |
||||
|
# This is used to calculate the maximum value of the initial heap memory. If used in |
||||
|
# a container without any memory constraints for the container then this option has |
||||
|
# no effect. If there is a memory constraint then `-Xms` is limited to the value set |
||||
|
# here. The default is 4096MB which means the calculated value of `-Xms` never will |
||||
|
# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") |
||||
|
# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output |
||||
|
# when things are happening. This option, if set to true, will set |
||||
|
# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). |
||||
|
# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: |
||||
|
# true"). |
||||
|
# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). |
||||
|
# - CONTAINER_CORE_LIMIT: A calculated core limit as described in |
||||
|
# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") |
||||
|
# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). |
||||
|
# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. |
||||
|
# (example: "20") |
||||
|
# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. |
||||
|
# (example: "40") |
||||
|
# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. |
||||
|
# (example: "4") |
||||
|
# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus |
||||
|
# previous GC times. (example: "90") |
||||
|
# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") |
||||
|
# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") |
||||
|
# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should |
||||
|
# contain the necessary JRE command-line options to specify the required GC, which |
||||
|
# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). |
||||
|
# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") |
||||
|
# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") |
||||
|
# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be |
||||
|
# accessed directly. (example: "foo.example.com,bar.example.com") |
||||
|
# |
||||
|
### |
||||
|
FROM registry.access.redhat.com/ubi8/openjdk-11:1.11 |
||||
|
|
||||
|
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' |
||||
|
|
||||
|
|
||||
|
# We make four distinct layers so if there are application changes the library layers can be re-used |
||||
|
COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/ |
||||
|
COPY --chown=185 target/quarkus-app/*.jar /deployments/ |
||||
|
COPY --chown=185 target/quarkus-app/app/ /deployments/app/ |
||||
|
COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/ |
||||
|
|
||||
|
EXPOSE 8080 |
||||
|
USER 185 |
||||
|
ENV AB_JOLOKIA_OFF="" |
||||
|
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" |
||||
|
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" |
||||
|
|
||||
@ -0,0 +1,90 @@ |
|||||
|
#### |
||||
|
# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode |
||||
|
# |
||||
|
# Before building the container image run: |
||||
|
# |
||||
|
# ./mvnw package -Dquarkus.package.type=legacy-jar |
||||
|
# |
||||
|
# Then, build the image with: |
||||
|
# |
||||
|
# docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/antennas-front-legacy-jar . |
||||
|
# |
||||
|
# Then run the container using: |
||||
|
# |
||||
|
# docker run -i --rm -p 8080:8080 quarkus/antennas-front-legacy-jar |
||||
|
# |
||||
|
# If you want to include the debug port into your docker image |
||||
|
# you will have to expose the debug port (default 5005) like this : EXPOSE 8080 5005 |
||||
|
# |
||||
|
# Then run the container using : |
||||
|
# |
||||
|
# docker run -i --rm -p 8080:8080 quarkus/antennas-front-legacy-jar |
||||
|
# |
||||
|
# This image uses the `run-java.sh` script to run the application. |
||||
|
# This scripts computes the command line to execute your Java application, and |
||||
|
# includes memory/GC tuning. |
||||
|
# You can configure the behavior using the following environment properties: |
||||
|
# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") |
||||
|
# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options |
||||
|
# in JAVA_OPTS (example: "-Dsome.property=foo") |
||||
|
# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is |
||||
|
# used to calculate a default maximal heap memory based on a containers restriction. |
||||
|
# If used in a container without any memory constraints for the container then this |
||||
|
# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio |
||||
|
# of the container available memory as set here. The default is `50` which means 50% |
||||
|
# of the available memory is used as an upper boundary. You can skip this mechanism by |
||||
|
# setting this value to `0` in which case no `-Xmx` option is added. |
||||
|
# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This |
||||
|
# is used to calculate a default initial heap memory based on the maximum heap memory. |
||||
|
# If used in a container without any memory constraints for the container then this |
||||
|
# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio |
||||
|
# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` |
||||
|
# is used as the initial heap size. You can skip this mechanism by setting this value |
||||
|
# to `0` in which case no `-Xms` option is added (example: "25") |
||||
|
# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. |
||||
|
# This is used to calculate the maximum value of the initial heap memory. If used in |
||||
|
# a container without any memory constraints for the container then this option has |
||||
|
# no effect. If there is a memory constraint then `-Xms` is limited to the value set |
||||
|
# here. The default is 4096MB which means the calculated value of `-Xms` never will |
||||
|
# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") |
||||
|
# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output |
||||
|
# when things are happening. This option, if set to true, will set |
||||
|
# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). |
||||
|
# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: |
||||
|
# true"). |
||||
|
# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). |
||||
|
# - CONTAINER_CORE_LIMIT: A calculated core limit as described in |
||||
|
# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") |
||||
|
# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). |
||||
|
# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. |
||||
|
# (example: "20") |
||||
|
# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. |
||||
|
# (example: "40") |
||||
|
# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. |
||||
|
# (example: "4") |
||||
|
# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus |
||||
|
# previous GC times. (example: "90") |
||||
|
# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") |
||||
|
# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") |
||||
|
# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should |
||||
|
# contain the necessary JRE command-line options to specify the required GC, which |
||||
|
# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). |
||||
|
# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") |
||||
|
# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") |
||||
|
# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be |
||||
|
# accessed directly. (example: "foo.example.com,bar.example.com") |
||||
|
# |
||||
|
### |
||||
|
FROM registry.access.redhat.com/ubi8/openjdk-11:1.11 |
||||
|
|
||||
|
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' |
||||
|
|
||||
|
|
||||
|
COPY target/lib/* /deployments/lib/ |
||||
|
COPY target/*-runner.jar /deployments/quarkus-run.jar |
||||
|
|
||||
|
EXPOSE 8080 |
||||
|
USER 185 |
||||
|
ENV AB_JOLOKIA_OFF="" |
||||
|
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" |
||||
|
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" |
||||
@ -0,0 +1,27 @@ |
|||||
|
#### |
||||
|
# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. |
||||
|
# |
||||
|
# Before building the container image run: |
||||
|
# |
||||
|
# ./mvnw package -Pnative |
||||
|
# |
||||
|
# Then, build the image with: |
||||
|
# |
||||
|
# docker build -f src/main/docker/Dockerfile.native -t quarkus/antennas-front . |
||||
|
# |
||||
|
# Then run the container using: |
||||
|
# |
||||
|
# docker run -i --rm -p 8080:8080 quarkus/antennas-front |
||||
|
# |
||||
|
### |
||||
|
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.5 |
||||
|
WORKDIR /work/ |
||||
|
RUN chown 1001 /work \ |
||||
|
&& chmod "g+rwX" /work \ |
||||
|
&& chown 1001:root /work |
||||
|
COPY --chown=1001:root target/*-runner /work/application |
||||
|
|
||||
|
EXPOSE 8080 |
||||
|
USER 1001 |
||||
|
|
||||
|
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] |
||||
@ -0,0 +1,30 @@ |
|||||
|
#### |
||||
|
# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. |
||||
|
# It uses a micro base image, tuned for Quarkus native executables. |
||||
|
# It reduces the size of the resulting container image. |
||||
|
# Check https://quarkus.io/guides/quarkus-runtime-base-image for further information about this image. |
||||
|
# |
||||
|
# Before building the container image run: |
||||
|
# |
||||
|
# ./mvnw package -Pnative |
||||
|
# |
||||
|
# Then, build the image with: |
||||
|
# |
||||
|
# docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/antennas-front . |
||||
|
# |
||||
|
# Then run the container using: |
||||
|
# |
||||
|
# docker run -i --rm -p 8080:8080 quarkus/antennas-front |
||||
|
# |
||||
|
### |
||||
|
FROM quay.io/quarkus/quarkus-micro-image:1.0 |
||||
|
WORKDIR /work/ |
||||
|
RUN chown 1001 /work \ |
||||
|
&& chmod "g+rwX" /work \ |
||||
|
&& chown 1001:root /work |
||||
|
COPY --chown=1001:root target/*-runner /work/application |
||||
|
|
||||
|
EXPOSE 8080 |
||||
|
USER 1001 |
||||
|
|
||||
|
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] |
||||
@ -0,0 +1,26 @@ |
|||||
|
package org.sebi; |
||||
|
|
||||
|
public class Antenna { |
||||
|
|
||||
|
private double latitude; |
||||
|
private double longitude; |
||||
|
|
||||
|
public double getLatitude() { |
||||
|
return latitude; |
||||
|
} |
||||
|
public void setLatitude(double latitude) { |
||||
|
this.latitude = latitude; |
||||
|
} |
||||
|
public double getLongitude() { |
||||
|
return longitude; |
||||
|
} |
||||
|
public void setLongitude(double longitude) { |
||||
|
this.longitude = longitude; |
||||
|
} |
||||
|
public Antenna(double latitude, double longitude) { |
||||
|
this.latitude = latitude; |
||||
|
this.longitude = longitude; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,40 @@ |
|||||
|
package org.sebi; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
import javax.websocket.EncodeException; |
||||
|
import javax.websocket.Encoder; |
||||
|
import javax.websocket.EndpointConfig; |
||||
|
|
||||
|
import com.fasterxml.jackson.core.JsonProcessingException; |
||||
|
import com.fasterxml.jackson.databind.ObjectMapper; |
||||
|
|
||||
|
public class AntennaEncoder implements Encoder.Text<List<Antenna>> { |
||||
|
ObjectMapper objectMapper = new ObjectMapper(); |
||||
|
|
||||
|
|
||||
|
@Override |
||||
|
public void init(EndpointConfig config) { |
||||
|
// TODO Auto-generated method stub
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void destroy() { |
||||
|
// TODO Auto-generated method stub
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String encode(List<Antenna> object) throws EncodeException { |
||||
|
String value = "[]"; |
||||
|
try { |
||||
|
value = objectMapper.writeValueAsString(object); |
||||
|
} catch (JsonProcessingException e) { |
||||
|
// TODO Auto-generated catch block
|
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return value; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,22 @@ |
|||||
|
package org.sebi; |
||||
|
|
||||
|
import javax.ws.rs.GET; |
||||
|
import javax.ws.rs.Path; |
||||
|
import javax.ws.rs.Produces; |
||||
|
import javax.ws.rs.core.MediaType; |
||||
|
|
||||
|
import org.eclipse.microprofile.config.inject.ConfigProperty; |
||||
|
|
||||
|
@Path("rest") |
||||
|
public class AntennaResource { |
||||
|
|
||||
|
@ConfigProperty(name = "ping", defaultValue = "ping") |
||||
|
String ping; |
||||
|
|
||||
|
@GET |
||||
|
@Path("ping") |
||||
|
@Produces(MediaType.TEXT_PLAIN) |
||||
|
public String ping(){ |
||||
|
return ping; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,30 @@ |
|||||
|
package org.sebi; |
||||
|
|
||||
|
import java.util.Collection; |
||||
|
import java.util.Collections; |
||||
|
import java.util.List; |
||||
|
|
||||
|
import javax.enterprise.context.ApplicationScoped; |
||||
|
import javax.inject.Inject; |
||||
|
import javax.websocket.OnOpen; |
||||
|
import javax.websocket.Session; |
||||
|
import javax.websocket.server.ServerEndpoint; |
||||
|
|
||||
|
@ServerEndpoint(encoders = AntennaEncoder.class, value = "/antennas") |
||||
|
@ApplicationScoped |
||||
|
public class AntennaServer { |
||||
|
|
||||
|
@Inject |
||||
|
AntennaService antennaService; |
||||
|
|
||||
|
@OnOpen |
||||
|
public void onOpen(Session session) { |
||||
|
session.getAsyncRemote().sendObject(antennaService.getAntennas(), result -> { |
||||
|
if (result.getException() != null) { |
||||
|
System.out.println("Unable to send message: " + result.getException()); |
||||
|
} |
||||
|
}); |
||||
|
System.out.println("Got a connection"); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,16 @@ |
|||||
|
package org.sebi; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
import javax.enterprise.context.ApplicationScoped; |
||||
|
|
||||
|
@ApplicationScoped |
||||
|
public class AntennaService { |
||||
|
|
||||
|
public List<Antenna> getAntennas(){ |
||||
|
Antenna antenna = new Antenna(46.928881, 2.409900); |
||||
|
Antenna antenna2 = new Antenna(44.938881, 1.419900); |
||||
|
Antenna antenna3 = new Antenna(45.2, 2.2900); |
||||
|
return List.of(antenna,antenna2,antenna3); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,16 @@ |
|||||
|
package org.sebi; |
||||
|
|
||||
|
import javax.ws.rs.GET; |
||||
|
import javax.ws.rs.Path; |
||||
|
import javax.ws.rs.Produces; |
||||
|
import javax.ws.rs.core.MediaType; |
||||
|
|
||||
|
@Path("/hello") |
||||
|
public class HelloResource { |
||||
|
|
||||
|
@GET |
||||
|
@Produces(MediaType.TEXT_PLAIN) |
||||
|
public String hello() { |
||||
|
return "Hello RESTEasy"; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,16 @@ |
|||||
|
package org.sebi.incident; |
||||
|
|
||||
|
import java.util.Date; |
||||
|
|
||||
|
import javax.persistence.Entity; |
||||
|
|
||||
|
import io.quarkus.hibernate.orm.panache.PanacheEntity; |
||||
|
|
||||
|
@Entity |
||||
|
public class Incident extends PanacheEntity { |
||||
|
|
||||
|
public String description; |
||||
|
public Date date; |
||||
|
public boolean status; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,15 @@ |
|||||
|
package org.sebi.incident; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
import javax.ws.rs.GET; |
||||
|
import javax.ws.rs.Path; |
||||
|
|
||||
|
@Path("rest/incidents") |
||||
|
public class IncidentResource { |
||||
|
|
||||
|
@GET |
||||
|
public List<Incident> getIncidents(){ |
||||
|
return Incident.listAll(); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,29 @@ |
|||||
|
package org.sebi.incident; |
||||
|
|
||||
|
import java.util.Date; |
||||
|
|
||||
|
import javax.enterprise.context.ApplicationScoped; |
||||
|
import javax.enterprise.event.Observes; |
||||
|
import javax.transaction.Transactional; |
||||
|
|
||||
|
import io.quarkus.runtime.StartupEvent; |
||||
|
|
||||
|
@ApplicationScoped |
||||
|
public class IncidentStartup { |
||||
|
|
||||
|
@Transactional |
||||
|
void onStart(@Observes StartupEvent ev) { |
||||
|
Incident incident = new Incident(); |
||||
|
incident.date = new Date(); |
||||
|
incident.description = "coupure fibre"; |
||||
|
incident.status = false; |
||||
|
incident.persist(); |
||||
|
|
||||
|
Incident incident1 = new Incident(); |
||||
|
incident1.date = new Date(); |
||||
|
incident1.description = "Panne émetteur"; |
||||
|
incident1.status = true; |
||||
|
incident1.persist(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,153 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
||||
|
|
||||
|
<title>5G Antennas</title> |
||||
|
|
||||
|
<link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" /> |
||||
|
<!-- JavaScript Bundle with Popper --> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" |
||||
|
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" |
||||
|
crossorigin="anonymous"></script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.8.0/dist/leaflet.css" |
||||
|
integrity="sha512-hoalWLoI8r4UszCkZ5kL8vayOGVae1oxXe/2A4AO6J9+580uKHDO3JdHb7NzwwzK5xr/Fs0W40kiNHxM9vyTtQ==" |
||||
|
crossorigin="" /> |
||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> |
||||
|
|
||||
|
<script src="https://unpkg.com/leaflet@1.8.0/dist/leaflet.js" |
||||
|
integrity="sha512-BB3hKbKWOc9Ez/TAwyWxNXeoV9c1v6FIeYiBieIWkpLjauysF18NzgR1MBNBXf8/KABdlkX68nAhlwcDFLGPCQ==" |
||||
|
crossorigin=""></script> |
||||
|
|
||||
|
<style> |
||||
|
|
||||
|
.leaflet-container { |
||||
|
|
||||
|
height: 400px; |
||||
|
width: 600px; |
||||
|
max-width: 100%; |
||||
|
max-height: 100%; |
||||
|
margin: auto; |
||||
|
top: 15px; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
|
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow"> |
||||
|
<a class="navbar-brand col-md-3 col-lg-2 me-0 px-3" href="#">Erable Hackaton</a> |
||||
|
</header> |
||||
|
<div class="container-fluid"> |
||||
|
<main> |
||||
|
|
||||
|
<div id="map" ></div> |
||||
|
|
||||
|
|
||||
|
<h2>Incidents</h2> |
||||
|
<div class="table-responsive"> |
||||
|
<table class="table table-striped table-sm" > |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th scope="col">#</th> |
||||
|
<th scope="col">Date</th> |
||||
|
<th scope="col">Description</th> |
||||
|
<th scope="col">Status</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody id="incidentList"> |
||||
|
|
||||
|
|
||||
|
<tr> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</div> |
||||
|
</main> |
||||
|
</div> |
||||
|
</div> |
||||
|
<script> |
||||
|
var connected = false; |
||||
|
var socket; |
||||
|
socket = new WebSocket("ws://" + location.host + "/antennas"); |
||||
|
socket.onopen = function () { |
||||
|
console.log("connected to WS") |
||||
|
} |
||||
|
socket.onmessage = function (m) { |
||||
|
console.log("Got message: " + m.data); |
||||
|
var markerList = JSON.parse(m.data); |
||||
|
markerList.forEach(element => { |
||||
|
var marker = L.marker([element.latitude, element.longitude]).addTo(map).bindPopup('<b>Hello world!</b><br />I am a popup.'); |
||||
|
}); |
||||
|
}; |
||||
|
var map = L.map('map').setView([46.928881, 2.409900], 5); |
||||
|
|
||||
|
|
||||
|
var tiles = L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1Ijoic2ViaTI3MDYiLCJhIjoiY2wyaXVmMndwMGpybTNpcTZvb3l3Z3o3aiJ9.FYmA5eV2HxTPq_wh42FZGw', { |
||||
|
maxZoom: 14, |
||||
|
attribution: 'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, ' + |
||||
|
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>', |
||||
|
id: 'mapbox/streets-v11', |
||||
|
tileSize: 512, |
||||
|
zoomOffset: -1 |
||||
|
}).addTo(map); |
||||
|
var popup = L.popup(); |
||||
|
|
||||
|
function onMapClick(e) { |
||||
|
popup |
||||
|
.setLatLng(e.latlng) |
||||
|
.setContent('You clicked the map at ' + e.latlng.toString()) |
||||
|
.openOn(map); |
||||
|
} |
||||
|
|
||||
|
map.on('click', onMapClick); |
||||
|
|
||||
|
var xhttp = new XMLHttpRequest(); |
||||
|
xhttp.onreadystatechange = function() { |
||||
|
if (this.readyState == 4 && this.status == 200) { |
||||
|
console.log(xhttp.response); |
||||
|
var incidents = JSON.parse(xhttp.response); |
||||
|
var incidentTable = document.getElementById("incidentList"); |
||||
|
incidents.forEach(element => { |
||||
|
var tr = document.createElement("tr"); |
||||
|
var td1 = document.createElement("td") |
||||
|
td1.innerText = element.id; |
||||
|
|
||||
|
var td2 = document.createElement("td"); |
||||
|
td2.innerText = element.date; |
||||
|
|
||||
|
var td3 = document.createElement("td"); |
||||
|
td3.innerText = element.description; |
||||
|
tr.appendChild(td1); |
||||
|
tr.appendChild(td2); |
||||
|
tr.appendChild(td3); |
||||
|
|
||||
|
var td4 = document.createElement("td"); |
||||
|
if(element.status==true){ |
||||
|
td4.innerText = "🟩"; |
||||
|
} |
||||
|
else { |
||||
|
td4.innerText = "🟥"; |
||||
|
} |
||||
|
tr.appendChild(td4); |
||||
|
|
||||
|
incidentTable.appendChild(tr); |
||||
|
|
||||
|
} |
||||
|
); |
||||
|
} |
||||
|
}; |
||||
|
xhttp.open("GET", "/rest/incidents", true); |
||||
|
xhttp.send(); |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
|
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 696 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 618 B |
File diff suppressed because it is too large
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
File diff suppressed because one or more lines are too long
@ -0,0 +1,657 @@ |
|||||
|
/* required styles */ |
||||
|
|
||||
|
.leaflet-pane, |
||||
|
.leaflet-tile, |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow, |
||||
|
.leaflet-tile-container, |
||||
|
.leaflet-pane > svg, |
||||
|
.leaflet-pane > canvas, |
||||
|
.leaflet-zoom-box, |
||||
|
.leaflet-image-layer, |
||||
|
.leaflet-layer { |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
} |
||||
|
.leaflet-container { |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
.leaflet-tile, |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow { |
||||
|
-webkit-user-select: none; |
||||
|
-moz-user-select: none; |
||||
|
user-select: none; |
||||
|
-webkit-user-drag: none; |
||||
|
} |
||||
|
/* Prevents IE11 from highlighting tiles in blue */ |
||||
|
.leaflet-tile::selection { |
||||
|
background: transparent; |
||||
|
} |
||||
|
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ |
||||
|
.leaflet-safari .leaflet-tile { |
||||
|
image-rendering: -webkit-optimize-contrast; |
||||
|
} |
||||
|
/* hack that prevents hw layers "stretching" when loading new tiles */ |
||||
|
.leaflet-safari .leaflet-tile-container { |
||||
|
width: 1600px; |
||||
|
height: 1600px; |
||||
|
-webkit-transform-origin: 0 0; |
||||
|
} |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow { |
||||
|
display: block; |
||||
|
} |
||||
|
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ |
||||
|
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ |
||||
|
.leaflet-container .leaflet-overlay-pane svg { |
||||
|
max-width: none !important; |
||||
|
max-height: none !important; |
||||
|
} |
||||
|
.leaflet-container .leaflet-marker-pane img, |
||||
|
.leaflet-container .leaflet-shadow-pane img, |
||||
|
.leaflet-container .leaflet-tile-pane img, |
||||
|
.leaflet-container img.leaflet-image-layer, |
||||
|
.leaflet-container .leaflet-tile { |
||||
|
max-width: none !important; |
||||
|
max-height: none !important; |
||||
|
width: auto; |
||||
|
padding: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container.leaflet-touch-zoom { |
||||
|
-ms-touch-action: pan-x pan-y; |
||||
|
touch-action: pan-x pan-y; |
||||
|
} |
||||
|
.leaflet-container.leaflet-touch-drag { |
||||
|
-ms-touch-action: pinch-zoom; |
||||
|
/* Fallback for FF which doesn't support pinch-zoom */ |
||||
|
touch-action: none; |
||||
|
touch-action: pinch-zoom; |
||||
|
} |
||||
|
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { |
||||
|
-ms-touch-action: none; |
||||
|
touch-action: none; |
||||
|
} |
||||
|
.leaflet-container { |
||||
|
-webkit-tap-highlight-color: transparent; |
||||
|
} |
||||
|
.leaflet-container a { |
||||
|
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); |
||||
|
} |
||||
|
.leaflet-tile { |
||||
|
filter: inherit; |
||||
|
visibility: hidden; |
||||
|
} |
||||
|
.leaflet-tile-loaded { |
||||
|
visibility: inherit; |
||||
|
} |
||||
|
.leaflet-zoom-box { |
||||
|
width: 0; |
||||
|
height: 0; |
||||
|
-moz-box-sizing: border-box; |
||||
|
box-sizing: border-box; |
||||
|
z-index: 800; |
||||
|
} |
||||
|
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ |
||||
|
.leaflet-overlay-pane svg { |
||||
|
-moz-user-select: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-pane { z-index: 400; } |
||||
|
|
||||
|
.leaflet-tile-pane { z-index: 200; } |
||||
|
.leaflet-overlay-pane { z-index: 400; } |
||||
|
.leaflet-shadow-pane { z-index: 500; } |
||||
|
.leaflet-marker-pane { z-index: 600; } |
||||
|
.leaflet-tooltip-pane { z-index: 650; } |
||||
|
.leaflet-popup-pane { z-index: 700; } |
||||
|
|
||||
|
.leaflet-map-pane canvas { z-index: 100; } |
||||
|
.leaflet-map-pane svg { z-index: 200; } |
||||
|
|
||||
|
.leaflet-vml-shape { |
||||
|
width: 1px; |
||||
|
height: 1px; |
||||
|
} |
||||
|
.lvml { |
||||
|
behavior: url(#default#VML); |
||||
|
display: inline-block; |
||||
|
position: absolute; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* control positioning */ |
||||
|
|
||||
|
.leaflet-control { |
||||
|
position: relative; |
||||
|
z-index: 800; |
||||
|
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ |
||||
|
pointer-events: auto; |
||||
|
} |
||||
|
.leaflet-top, |
||||
|
.leaflet-bottom { |
||||
|
position: absolute; |
||||
|
z-index: 1000; |
||||
|
pointer-events: none; |
||||
|
} |
||||
|
.leaflet-top { |
||||
|
top: 0; |
||||
|
} |
||||
|
.leaflet-right { |
||||
|
right: 0; |
||||
|
} |
||||
|
.leaflet-bottom { |
||||
|
bottom: 0; |
||||
|
} |
||||
|
.leaflet-left { |
||||
|
left: 0; |
||||
|
} |
||||
|
.leaflet-control { |
||||
|
float: left; |
||||
|
clear: both; |
||||
|
} |
||||
|
.leaflet-right .leaflet-control { |
||||
|
float: right; |
||||
|
} |
||||
|
.leaflet-top .leaflet-control { |
||||
|
margin-top: 10px; |
||||
|
} |
||||
|
.leaflet-bottom .leaflet-control { |
||||
|
margin-bottom: 10px; |
||||
|
} |
||||
|
.leaflet-left .leaflet-control { |
||||
|
margin-left: 10px; |
||||
|
} |
||||
|
.leaflet-right .leaflet-control { |
||||
|
margin-right: 10px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* zoom and fade animations */ |
||||
|
|
||||
|
.leaflet-fade-anim .leaflet-popup { |
||||
|
opacity: 0; |
||||
|
-webkit-transition: opacity 0.2s linear; |
||||
|
-moz-transition: opacity 0.2s linear; |
||||
|
transition: opacity 0.2s linear; |
||||
|
} |
||||
|
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { |
||||
|
opacity: 1; |
||||
|
} |
||||
|
.leaflet-zoom-animated { |
||||
|
-webkit-transform-origin: 0 0; |
||||
|
-ms-transform-origin: 0 0; |
||||
|
transform-origin: 0 0; |
||||
|
} |
||||
|
svg.leaflet-zoom-animated { |
||||
|
will-change: transform; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-anim .leaflet-zoom-animated { |
||||
|
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); |
||||
|
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); |
||||
|
transition: transform 0.25s cubic-bezier(0,0,0.25,1); |
||||
|
} |
||||
|
.leaflet-zoom-anim .leaflet-tile, |
||||
|
.leaflet-pan-anim .leaflet-tile { |
||||
|
-webkit-transition: none; |
||||
|
-moz-transition: none; |
||||
|
transition: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-anim .leaflet-zoom-hide { |
||||
|
visibility: hidden; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* cursors */ |
||||
|
|
||||
|
.leaflet-interactive { |
||||
|
cursor: pointer; |
||||
|
} |
||||
|
.leaflet-grab { |
||||
|
cursor: -webkit-grab; |
||||
|
cursor: -moz-grab; |
||||
|
cursor: grab; |
||||
|
} |
||||
|
.leaflet-crosshair, |
||||
|
.leaflet-crosshair .leaflet-interactive { |
||||
|
cursor: crosshair; |
||||
|
} |
||||
|
.leaflet-popup-pane, |
||||
|
.leaflet-control { |
||||
|
cursor: auto; |
||||
|
} |
||||
|
.leaflet-dragging .leaflet-grab, |
||||
|
.leaflet-dragging .leaflet-grab .leaflet-interactive, |
||||
|
.leaflet-dragging .leaflet-marker-draggable { |
||||
|
cursor: move; |
||||
|
cursor: -webkit-grabbing; |
||||
|
cursor: -moz-grabbing; |
||||
|
cursor: grabbing; |
||||
|
} |
||||
|
|
||||
|
/* marker & overlays interactivity */ |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow, |
||||
|
.leaflet-image-layer, |
||||
|
.leaflet-pane > svg path, |
||||
|
.leaflet-tile-container { |
||||
|
pointer-events: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-marker-icon.leaflet-interactive, |
||||
|
.leaflet-image-layer.leaflet-interactive, |
||||
|
.leaflet-pane > svg path.leaflet-interactive, |
||||
|
svg.leaflet-image-layer.leaflet-interactive path { |
||||
|
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ |
||||
|
pointer-events: auto; |
||||
|
} |
||||
|
|
||||
|
/* visual tweaks */ |
||||
|
|
||||
|
.leaflet-container { |
||||
|
background: #ddd; |
||||
|
outline-offset: 1px; |
||||
|
} |
||||
|
.leaflet-container a { |
||||
|
color: #0078A8; |
||||
|
} |
||||
|
.leaflet-zoom-box { |
||||
|
border: 2px dotted #38f; |
||||
|
background: rgba(255,255,255,0.5); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* general typography */ |
||||
|
.leaflet-container { |
||||
|
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; |
||||
|
font-size: 12px; |
||||
|
font-size: 0.75rem; |
||||
|
line-height: 1.5; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* general toolbar styles */ |
||||
|
|
||||
|
.leaflet-bar { |
||||
|
box-shadow: 0 1px 5px rgba(0,0,0,0.65); |
||||
|
border-radius: 4px; |
||||
|
} |
||||
|
.leaflet-bar a { |
||||
|
background-color: #fff; |
||||
|
border-bottom: 1px solid #ccc; |
||||
|
width: 26px; |
||||
|
height: 26px; |
||||
|
line-height: 26px; |
||||
|
display: block; |
||||
|
text-align: center; |
||||
|
text-decoration: none; |
||||
|
color: black; |
||||
|
} |
||||
|
.leaflet-bar a, |
||||
|
.leaflet-control-layers-toggle { |
||||
|
background-position: 50% 50%; |
||||
|
background-repeat: no-repeat; |
||||
|
display: block; |
||||
|
} |
||||
|
.leaflet-bar a:hover, |
||||
|
.leaflet-bar a:focus { |
||||
|
background-color: #f4f4f4; |
||||
|
} |
||||
|
.leaflet-bar a:first-child { |
||||
|
border-top-left-radius: 4px; |
||||
|
border-top-right-radius: 4px; |
||||
|
} |
||||
|
.leaflet-bar a:last-child { |
||||
|
border-bottom-left-radius: 4px; |
||||
|
border-bottom-right-radius: 4px; |
||||
|
border-bottom: none; |
||||
|
} |
||||
|
.leaflet-bar a.leaflet-disabled { |
||||
|
cursor: default; |
||||
|
background-color: #f4f4f4; |
||||
|
color: #bbb; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-bar a { |
||||
|
width: 30px; |
||||
|
height: 30px; |
||||
|
line-height: 30px; |
||||
|
} |
||||
|
.leaflet-touch .leaflet-bar a:first-child { |
||||
|
border-top-left-radius: 2px; |
||||
|
border-top-right-radius: 2px; |
||||
|
} |
||||
|
.leaflet-touch .leaflet-bar a:last-child { |
||||
|
border-bottom-left-radius: 2px; |
||||
|
border-bottom-right-radius: 2px; |
||||
|
} |
||||
|
|
||||
|
/* zoom control */ |
||||
|
|
||||
|
.leaflet-control-zoom-in, |
||||
|
.leaflet-control-zoom-out { |
||||
|
font: bold 18px 'Lucida Console', Monaco, monospace; |
||||
|
text-indent: 1px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { |
||||
|
font-size: 22px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* layers control */ |
||||
|
|
||||
|
.leaflet-control-layers { |
||||
|
box-shadow: 0 1px 5px rgba(0,0,0,0.4); |
||||
|
background: #fff; |
||||
|
border-radius: 5px; |
||||
|
} |
||||
|
.leaflet-control-layers-toggle { |
||||
|
background-image: url(images/layers.png); |
||||
|
width: 36px; |
||||
|
height: 36px; |
||||
|
} |
||||
|
.leaflet-retina .leaflet-control-layers-toggle { |
||||
|
background-image: url(images/layers-2x.png); |
||||
|
background-size: 26px 26px; |
||||
|
} |
||||
|
.leaflet-touch .leaflet-control-layers-toggle { |
||||
|
width: 44px; |
||||
|
height: 44px; |
||||
|
} |
||||
|
.leaflet-control-layers .leaflet-control-layers-list, |
||||
|
.leaflet-control-layers-expanded .leaflet-control-layers-toggle { |
||||
|
display: none; |
||||
|
} |
||||
|
.leaflet-control-layers-expanded .leaflet-control-layers-list { |
||||
|
display: block; |
||||
|
position: relative; |
||||
|
} |
||||
|
.leaflet-control-layers-expanded { |
||||
|
padding: 6px 10px 6px 6px; |
||||
|
color: #333; |
||||
|
background: #fff; |
||||
|
} |
||||
|
.leaflet-control-layers-scrollbar { |
||||
|
overflow-y: scroll; |
||||
|
overflow-x: hidden; |
||||
|
padding-right: 5px; |
||||
|
} |
||||
|
.leaflet-control-layers-selector { |
||||
|
margin-top: 2px; |
||||
|
position: relative; |
||||
|
top: 1px; |
||||
|
} |
||||
|
.leaflet-control-layers label { |
||||
|
display: block; |
||||
|
font-size: 13px; |
||||
|
font-size: 1.08333em; |
||||
|
} |
||||
|
.leaflet-control-layers-separator { |
||||
|
height: 0; |
||||
|
border-top: 1px solid #ddd; |
||||
|
margin: 5px -10px 5px -6px; |
||||
|
} |
||||
|
|
||||
|
/* Default icon URLs */ |
||||
|
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ |
||||
|
background-image: url(images/marker-icon.png); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* attribution and scale controls */ |
||||
|
|
||||
|
.leaflet-container .leaflet-control-attribution { |
||||
|
background: #fff; |
||||
|
background: rgba(255, 255, 255, 0.8); |
||||
|
margin: 0; |
||||
|
} |
||||
|
.leaflet-control-attribution, |
||||
|
.leaflet-control-scale-line { |
||||
|
padding: 0 5px; |
||||
|
color: #333; |
||||
|
line-height: 1.4; |
||||
|
} |
||||
|
.leaflet-control-attribution a { |
||||
|
text-decoration: none; |
||||
|
} |
||||
|
.leaflet-control-attribution a:hover, |
||||
|
.leaflet-control-attribution a:focus { |
||||
|
text-decoration: underline; |
||||
|
} |
||||
|
.leaflet-control-attribution svg { |
||||
|
display: inline !important; |
||||
|
} |
||||
|
.leaflet-left .leaflet-control-scale { |
||||
|
margin-left: 5px; |
||||
|
} |
||||
|
.leaflet-bottom .leaflet-control-scale { |
||||
|
margin-bottom: 5px; |
||||
|
} |
||||
|
.leaflet-control-scale-line { |
||||
|
border: 2px solid #777; |
||||
|
border-top: none; |
||||
|
line-height: 1.1; |
||||
|
padding: 2px 5px 1px; |
||||
|
white-space: nowrap; |
||||
|
overflow: hidden; |
||||
|
-moz-box-sizing: border-box; |
||||
|
box-sizing: border-box; |
||||
|
|
||||
|
background: #fff; |
||||
|
background: rgba(255, 255, 255, 0.5); |
||||
|
} |
||||
|
.leaflet-control-scale-line:not(:first-child) { |
||||
|
border-top: 2px solid #777; |
||||
|
border-bottom: none; |
||||
|
margin-top: -2px; |
||||
|
} |
||||
|
.leaflet-control-scale-line:not(:first-child):not(:last-child) { |
||||
|
border-bottom: 2px solid #777; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-attribution, |
||||
|
.leaflet-touch .leaflet-control-layers, |
||||
|
.leaflet-touch .leaflet-bar { |
||||
|
box-shadow: none; |
||||
|
} |
||||
|
.leaflet-touch .leaflet-control-layers, |
||||
|
.leaflet-touch .leaflet-bar { |
||||
|
border: 2px solid rgba(0,0,0,0.2); |
||||
|
background-clip: padding-box; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* popup */ |
||||
|
|
||||
|
.leaflet-popup { |
||||
|
position: absolute; |
||||
|
text-align: center; |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
.leaflet-popup-content-wrapper { |
||||
|
padding: 1px; |
||||
|
text-align: left; |
||||
|
border-radius: 12px; |
||||
|
} |
||||
|
.leaflet-popup-content { |
||||
|
margin: 13px 24px 13px 20px; |
||||
|
line-height: 1.3; |
||||
|
font-size: 13px; |
||||
|
font-size: 1.08333em; |
||||
|
min-height: 1px; |
||||
|
} |
||||
|
.leaflet-popup-content p { |
||||
|
margin: 17px 0; |
||||
|
margin: 1.3em 0; |
||||
|
} |
||||
|
.leaflet-popup-tip-container { |
||||
|
width: 40px; |
||||
|
height: 20px; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
margin-top: -1px; |
||||
|
margin-left: -20px; |
||||
|
overflow: hidden; |
||||
|
pointer-events: none; |
||||
|
} |
||||
|
.leaflet-popup-tip { |
||||
|
width: 17px; |
||||
|
height: 17px; |
||||
|
padding: 1px; |
||||
|
|
||||
|
margin: -10px auto 0; |
||||
|
pointer-events: auto; |
||||
|
|
||||
|
-webkit-transform: rotate(45deg); |
||||
|
-moz-transform: rotate(45deg); |
||||
|
-ms-transform: rotate(45deg); |
||||
|
transform: rotate(45deg); |
||||
|
} |
||||
|
.leaflet-popup-content-wrapper, |
||||
|
.leaflet-popup-tip { |
||||
|
background: white; |
||||
|
color: #333; |
||||
|
box-shadow: 0 3px 14px rgba(0,0,0,0.4); |
||||
|
} |
||||
|
.leaflet-container a.leaflet-popup-close-button { |
||||
|
position: absolute; |
||||
|
top: 0; |
||||
|
right: 0; |
||||
|
border: none; |
||||
|
text-align: center; |
||||
|
width: 24px; |
||||
|
height: 24px; |
||||
|
font: 16px/24px Tahoma, Verdana, sans-serif; |
||||
|
color: #757575; |
||||
|
text-decoration: none; |
||||
|
background: transparent; |
||||
|
} |
||||
|
.leaflet-container a.leaflet-popup-close-button:hover, |
||||
|
.leaflet-container a.leaflet-popup-close-button:focus { |
||||
|
color: #585858; |
||||
|
} |
||||
|
.leaflet-popup-scrolled { |
||||
|
overflow: auto; |
||||
|
border-bottom: 1px solid #ddd; |
||||
|
border-top: 1px solid #ddd; |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .leaflet-popup-content-wrapper { |
||||
|
-ms-zoom: 1; |
||||
|
} |
||||
|
.leaflet-oldie .leaflet-popup-tip { |
||||
|
width: 24px; |
||||
|
margin: 0 auto; |
||||
|
|
||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; |
||||
|
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .leaflet-control-zoom, |
||||
|
.leaflet-oldie .leaflet-control-layers, |
||||
|
.leaflet-oldie .leaflet-popup-content-wrapper, |
||||
|
.leaflet-oldie .leaflet-popup-tip { |
||||
|
border: 1px solid #999; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* div icon */ |
||||
|
|
||||
|
.leaflet-div-icon { |
||||
|
background: #fff; |
||||
|
border: 1px solid #666; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* Tooltip */ |
||||
|
/* Base styles for the element that has a tooltip */ |
||||
|
.leaflet-tooltip { |
||||
|
position: absolute; |
||||
|
padding: 6px; |
||||
|
background-color: #fff; |
||||
|
border: 1px solid #fff; |
||||
|
border-radius: 3px; |
||||
|
color: #222; |
||||
|
white-space: nowrap; |
||||
|
-webkit-user-select: none; |
||||
|
-moz-user-select: none; |
||||
|
-ms-user-select: none; |
||||
|
user-select: none; |
||||
|
pointer-events: none; |
||||
|
box-shadow: 0 1px 3px rgba(0,0,0,0.4); |
||||
|
} |
||||
|
.leaflet-tooltip.leaflet-interactive { |
||||
|
cursor: pointer; |
||||
|
pointer-events: auto; |
||||
|
} |
||||
|
.leaflet-tooltip-top:before, |
||||
|
.leaflet-tooltip-bottom:before, |
||||
|
.leaflet-tooltip-left:before, |
||||
|
.leaflet-tooltip-right:before { |
||||
|
position: absolute; |
||||
|
pointer-events: none; |
||||
|
border: 6px solid transparent; |
||||
|
background: transparent; |
||||
|
content: ""; |
||||
|
} |
||||
|
|
||||
|
/* Directions */ |
||||
|
|
||||
|
.leaflet-tooltip-bottom { |
||||
|
margin-top: 6px; |
||||
|
} |
||||
|
.leaflet-tooltip-top { |
||||
|
margin-top: -6px; |
||||
|
} |
||||
|
.leaflet-tooltip-bottom:before, |
||||
|
.leaflet-tooltip-top:before { |
||||
|
left: 50%; |
||||
|
margin-left: -6px; |
||||
|
} |
||||
|
.leaflet-tooltip-top:before { |
||||
|
bottom: 0; |
||||
|
margin-bottom: -12px; |
||||
|
border-top-color: #fff; |
||||
|
} |
||||
|
.leaflet-tooltip-bottom:before { |
||||
|
top: 0; |
||||
|
margin-top: -12px; |
||||
|
margin-left: -6px; |
||||
|
border-bottom-color: #fff; |
||||
|
} |
||||
|
.leaflet-tooltip-left { |
||||
|
margin-left: -6px; |
||||
|
} |
||||
|
.leaflet-tooltip-right { |
||||
|
margin-left: 6px; |
||||
|
} |
||||
|
.leaflet-tooltip-left:before, |
||||
|
.leaflet-tooltip-right:before { |
||||
|
top: 50%; |
||||
|
margin-top: -6px; |
||||
|
} |
||||
|
.leaflet-tooltip-left:before { |
||||
|
right: 0; |
||||
|
margin-right: -12px; |
||||
|
border-left-color: #fff; |
||||
|
} |
||||
|
.leaflet-tooltip-right:before { |
||||
|
left: 0; |
||||
|
margin-left: -12px; |
||||
|
border-right-color: #fff; |
||||
|
} |
||||
|
|
||||
|
/* Printing */ |
||||
|
|
||||
|
@media print { |
||||
|
/* Prevent printers from removing background-images of controls. */ |
||||
|
.leaflet-control { |
||||
|
-webkit-print-color-adjust: exact; |
||||
|
color-adjust: exact; |
||||
|
} |
||||
|
} |
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue