Authored by zhangdajun

test

No preview for this file type
  1 +/target/
  2 +!.mvn/wrapper/maven-wrapper.jar
  3 +
  4 +### STS ###
  5 +.apt_generated
  6 +.classpath
  7 +.factorypath
  8 +.project
  9 +.settings
  10 +.springBeans
  11 +.sts4-cache
  12 +
  13 +### IntelliJ IDEA ###
  14 +.idea
  15 +*.iws
  16 +*.iml
  17 +*.ipr
  18 +
  19 +### NetBeans ###
  20 +/nbproject/private/
  21 +/build/
  22 +/nbbuild/
  23 +/dist/
  24 +/nbdist/
  25 +/.nb-gradle/
No preview for this file type
  1 +distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
  1 +#!/bin/sh
  2 +# ----------------------------------------------------------------------------
  3 +# Licensed to the Apache Software Foundation (ASF) under one
  4 +# or more contributor license agreements. See the NOTICE file
  5 +# distributed with this work for additional information
  6 +# regarding copyright ownership. The ASF licenses this file
  7 +# to you under the Apache License, Version 2.0 (the
  8 +# "License"); you may not use this file except in compliance
  9 +# with the License. You may obtain a copy of the License at
  10 +#
  11 +# http://www.apache.org/licenses/LICENSE-2.0
  12 +#
  13 +# Unless required by applicable law or agreed to in writing,
  14 +# software distributed under the License is distributed on an
  15 +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  16 +# KIND, either express or implied. See the License for the
  17 +# specific language governing permissions and limitations
  18 +# under the License.
  19 +# ----------------------------------------------------------------------------
  20 +
  21 +# ----------------------------------------------------------------------------
  22 +# Maven2 Start Up Batch script
  23 +#
  24 +# Required ENV vars:
  25 +# ------------------
  26 +# JAVA_HOME - location of a JDK home dir
  27 +#
  28 +# Optional ENV vars
  29 +# -----------------
  30 +# M2_HOME - location of maven2's installed home dir
  31 +# MAVEN_OPTS - parameters passed to the Java VM when running Maven
  32 +# e.g. to debug Maven itself, use
  33 +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
  34 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
  35 +# ----------------------------------------------------------------------------
  36 +
  37 +if [ -z "$MAVEN_SKIP_RC" ] ; then
  38 +
  39 + if [ -f /etc/mavenrc ] ; then
  40 + . /etc/mavenrc
  41 + fi
  42 +
  43 + if [ -f "$HOME/.mavenrc" ] ; then
  44 + . "$HOME/.mavenrc"
  45 + fi
  46 +
  47 +fi
  48 +
  49 +# OS specific support. $var _must_ be set to either true or false.
  50 +cygwin=false;
  51 +darwin=false;
  52 +mingw=false
  53 +case "`uname`" in
  54 + CYGWIN*) cygwin=true ;;
  55 + MINGW*) mingw=true;;
  56 + Darwin*) darwin=true
  57 + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
  58 + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
  59 + if [ -z "$JAVA_HOME" ]; then
  60 + if [ -x "/usr/libexec/java_home" ]; then
  61 + export JAVA_HOME="`/usr/libexec/java_home`"
  62 + else
  63 + export JAVA_HOME="/Library/Java/Home"
  64 + fi
  65 + fi
  66 + ;;
  67 +esac
  68 +
  69 +if [ -z "$JAVA_HOME" ] ; then
  70 + if [ -r /etc/gentoo-release ] ; then
  71 + JAVA_HOME=`java-config --jre-home`
  72 + fi
  73 +fi
  74 +
  75 +if [ -z "$M2_HOME" ] ; then
  76 + ## resolve links - $0 may be a link to maven's home
  77 + PRG="$0"
  78 +
  79 + # need this for relative symlinks
  80 + while [ -h "$PRG" ] ; do
  81 + ls=`ls -ld "$PRG"`
  82 + link=`expr "$ls" : '.*-> \(.*\)$'`
  83 + if expr "$link" : '/.*' > /dev/null; then
  84 + PRG="$link"
  85 + else
  86 + PRG="`dirname "$PRG"`/$link"
  87 + fi
  88 + done
  89 +
  90 + saveddir=`pwd`
  91 +
  92 + M2_HOME=`dirname "$PRG"`/..
  93 +
  94 + # make it fully qualified
  95 + M2_HOME=`cd "$M2_HOME" && pwd`
  96 +
  97 + cd "$saveddir"
  98 + # echo Using m2 at $M2_HOME
  99 +fi
  100 +
  101 +# For Cygwin, ensure paths are in UNIX format before anything is touched
  102 +if $cygwin ; then
  103 + [ -n "$M2_HOME" ] &&
  104 + M2_HOME=`cygpath --unix "$M2_HOME"`
  105 + [ -n "$JAVA_HOME" ] &&
  106 + JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  107 + [ -n "$CLASSPATH" ] &&
  108 + CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
  109 +fi
  110 +
  111 +# For Migwn, ensure paths are in UNIX format before anything is touched
  112 +if $mingw ; then
  113 + [ -n "$M2_HOME" ] &&
  114 + M2_HOME="`(cd "$M2_HOME"; pwd)`"
  115 + [ -n "$JAVA_HOME" ] &&
  116 + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
  117 + # TODO classpath?
  118 +fi
  119 +
  120 +if [ -z "$JAVA_HOME" ]; then
  121 + javaExecutable="`which javac`"
  122 + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
  123 + # readlink(1) is not available as standard on Solaris 10.
  124 + readLink=`which readlink`
  125 + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
  126 + if $darwin ; then
  127 + javaHome="`dirname \"$javaExecutable\"`"
  128 + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
  129 + else
  130 + javaExecutable="`readlink -f \"$javaExecutable\"`"
  131 + fi
  132 + javaHome="`dirname \"$javaExecutable\"`"
  133 + javaHome=`expr "$javaHome" : '\(.*\)/bin'`
  134 + JAVA_HOME="$javaHome"
  135 + export JAVA_HOME
  136 + fi
  137 + fi
  138 +fi
  139 +
  140 +if [ -z "$JAVACMD" ] ; then
  141 + if [ -n "$JAVA_HOME" ] ; then
  142 + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
  143 + # IBM's JDK on AIX uses strange locations for the executables
  144 + JAVACMD="$JAVA_HOME/jre/sh/java"
  145 + else
  146 + JAVACMD="$JAVA_HOME/bin/java"
  147 + fi
  148 + else
  149 + JAVACMD="`which java`"
  150 + fi
  151 +fi
  152 +
  153 +if [ ! -x "$JAVACMD" ] ; then
  154 + echo "Error: JAVA_HOME is not defined correctly." >&2
  155 + echo " We cannot execute $JAVACMD" >&2
  156 + exit 1
  157 +fi
  158 +
  159 +if [ -z "$JAVA_HOME" ] ; then
  160 + echo "Warning: JAVA_HOME environment variable is not set."
  161 +fi
  162 +
  163 +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
  164 +
  165 +# traverses directory structure from process work directory to filesystem root
  166 +# first directory with .mvn subdirectory is considered project base directory
  167 +find_maven_basedir() {
  168 +
  169 + if [ -z "$1" ]
  170 + then
  171 + echo "Path not specified to find_maven_basedir"
  172 + return 1
  173 + fi
  174 +
  175 + basedir="$1"
  176 + wdir="$1"
  177 + while [ "$wdir" != '/' ] ; do
  178 + if [ -d "$wdir"/.mvn ] ; then
  179 + basedir=$wdir
  180 + break
  181 + fi
  182 + # workaround for JBEAP-8937 (on Solaris 10/Sparc)
  183 + if [ -d "${wdir}" ]; then
  184 + wdir=`cd "$wdir/.."; pwd`
  185 + fi
  186 + # end of workaround
  187 + done
  188 + echo "${basedir}"
  189 +}
  190 +
  191 +# concatenates all lines of a file
  192 +concat_lines() {
  193 + if [ -f "$1" ]; then
  194 + echo "$(tr -s '\n' ' ' < "$1")"
  195 + fi
  196 +}
  197 +
  198 +BASE_DIR=`find_maven_basedir "$(pwd)"`
  199 +if [ -z "$BASE_DIR" ]; then
  200 + exit 1;
  201 +fi
  202 +
  203 +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
  204 +echo $MAVEN_PROJECTBASEDIR
  205 +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
  206 +
  207 +# For Cygwin, switch paths to Windows format before running java
  208 +if $cygwin; then
  209 + [ -n "$M2_HOME" ] &&
  210 + M2_HOME=`cygpath --path --windows "$M2_HOME"`
  211 + [ -n "$JAVA_HOME" ] &&
  212 + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  213 + [ -n "$CLASSPATH" ] &&
  214 + CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  215 + [ -n "$MAVEN_PROJECTBASEDIR" ] &&
  216 + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
  217 +fi
  218 +
  219 +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
  220 +
  221 +exec "$JAVACMD" \
  222 + $MAVEN_OPTS \
  223 + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
  224 + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
  225 + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
  1 +@REM ----------------------------------------------------------------------------
  2 +@REM Licensed to the Apache Software Foundation (ASF) under one
  3 +@REM or more contributor license agreements. See the NOTICE file
  4 +@REM distributed with this work for additional information
  5 +@REM regarding copyright ownership. The ASF licenses this file
  6 +@REM to you under the Apache License, Version 2.0 (the
  7 +@REM "License"); you may not use this file except in compliance
  8 +@REM with the License. You may obtain a copy of the License at
  9 +@REM
  10 +@REM http://www.apache.org/licenses/LICENSE-2.0
  11 +@REM
  12 +@REM Unless required by applicable law or agreed to in writing,
  13 +@REM software distributed under the License is distributed on an
  14 +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15 +@REM KIND, either express or implied. See the License for the
  16 +@REM specific language governing permissions and limitations
  17 +@REM under the License.
  18 +@REM ----------------------------------------------------------------------------
  19 +
  20 +@REM ----------------------------------------------------------------------------
  21 +@REM Maven2 Start Up Batch script
  22 +@REM
  23 +@REM Required ENV vars:
  24 +@REM JAVA_HOME - location of a JDK home dir
  25 +@REM
  26 +@REM Optional ENV vars
  27 +@REM M2_HOME - location of maven2's installed home dir
  28 +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
  29 +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
  30 +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
  31 +@REM e.g. to debug Maven itself, use
  32 +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
  33 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
  34 +@REM ----------------------------------------------------------------------------
  35 +
  36 +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
  37 +@echo off
  38 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
  39 +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
  40 +
  41 +@REM set %HOME% to equivalent of $HOME
  42 +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
  43 +
  44 +@REM Execute a user defined script before this one
  45 +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
  46 +@REM check for pre script, once with legacy .bat ending and once with .cmd ending
  47 +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
  48 +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
  49 +:skipRcPre
  50 +
  51 +@setlocal
  52 +
  53 +set ERROR_CODE=0
  54 +
  55 +@REM To isolate internal variables from possible post scripts, we use another setlocal
  56 +@setlocal
  57 +
  58 +@REM ==== START VALIDATION ====
  59 +if not "%JAVA_HOME%" == "" goto OkJHome
  60 +
  61 +echo.
  62 +echo Error: JAVA_HOME not found in your environment. >&2
  63 +echo Please set the JAVA_HOME variable in your environment to match the >&2
  64 +echo location of your Java installation. >&2
  65 +echo.
  66 +goto error
  67 +
  68 +:OkJHome
  69 +if exist "%JAVA_HOME%\bin\java.exe" goto init
  70 +
  71 +echo.
  72 +echo Error: JAVA_HOME is set to an invalid directory. >&2
  73 +echo JAVA_HOME = "%JAVA_HOME%" >&2
  74 +echo Please set the JAVA_HOME variable in your environment to match the >&2
  75 +echo location of your Java installation. >&2
  76 +echo.
  77 +goto error
  78 +
  79 +@REM ==== END VALIDATION ====
  80 +
  81 +:init
  82 +
  83 +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
  84 +@REM Fallback to current working directory if not found.
  85 +
  86 +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
  87 +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
  88 +
  89 +set EXEC_DIR=%CD%
  90 +set WDIR=%EXEC_DIR%
  91 +:findBaseDir
  92 +IF EXIST "%WDIR%"\.mvn goto baseDirFound
  93 +cd ..
  94 +IF "%WDIR%"=="%CD%" goto baseDirNotFound
  95 +set WDIR=%CD%
  96 +goto findBaseDir
  97 +
  98 +:baseDirFound
  99 +set MAVEN_PROJECTBASEDIR=%WDIR%
  100 +cd "%EXEC_DIR%"
  101 +goto endDetectBaseDir
  102 +
  103 +:baseDirNotFound
  104 +set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
  105 +cd "%EXEC_DIR%"
  106 +
  107 +:endDetectBaseDir
  108 +
  109 +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
  110 +
  111 +@setlocal EnableExtensions EnableDelayedExpansion
  112 +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
  113 +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
  114 +
  115 +:endReadAdditionalConfig
  116 +
  117 +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
  118 +
  119 +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
  120 +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
  121 +
  122 +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
  123 +if ERRORLEVEL 1 goto error
  124 +goto end
  125 +
  126 +:error
  127 +set ERROR_CODE=1
  128 +
  129 +:end
  130 +@endlocal & set ERROR_CODE=%ERROR_CODE%
  131 +
  132 +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
  133 +@REM check for post script, once with legacy .bat ending and once with .cmd ending
  134 +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
  135 +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
  136 +:skipRcPost
  137 +
  138 +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
  139 +if "%MAVEN_BATCH_PAUSE%" == "on" pause
  140 +
  141 +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
  142 +
  143 +exit /B %ERROR_CODE%
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4 + <modelVersion>4.0.0</modelVersion>
  5 +
  6 + <groupId>com.jpa</groupId>
  7 + <artifactId>jpa-demo</artifactId>
  8 + <version>0.0.1-SNAPSHOT</version>
  9 + <packaging>jar</packaging>
  10 +
  11 + <name>jpa-demo</name>
  12 + <description>Demo project for Spring Boot</description>
  13 +
  14 + <parent>
  15 + <groupId>org.springframework.boot</groupId>
  16 + <artifactId>spring-boot-starter-parent</artifactId>
  17 + <version>2.0.3.RELEASE</version>
  18 + <relativePath/> <!-- lookup parent from repository -->
  19 + </parent>
  20 +
  21 + <properties>
  22 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  23 + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  24 + <java.version>1.8</java.version>
  25 + <fastjson.version>1.2.47</fastjson.version>
  26 + <es.client.version>6.1.4</es.client.version>
  27 + </properties>
  28 +
  29 + <dependencies>
  30 + <dependency>
  31 + <groupId>org.springframework.boot</groupId>
  32 + <artifactId>spring-boot-starter</artifactId>
  33 + </dependency>
  34 +
  35 + <dependency>
  36 + <groupId>org.projectlombok</groupId>
  37 + <artifactId>lombok</artifactId>
  38 + </dependency>
  39 +
  40 + <dependency>
  41 + <groupId>org.springframework.boot</groupId>
  42 + <artifactId>spring-boot-starter-data-jpa</artifactId>
  43 + </dependency>
  44 +
  45 + <dependency>
  46 + <groupId>org.springframework.boot</groupId>
  47 + <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
  48 + </dependency>
  49 +
  50 + <dependency>
  51 + <groupId>com.alibaba</groupId>
  52 + <artifactId>fastjson</artifactId>
  53 + <version>${fastjson.version}</version>
  54 + </dependency>
  55 +
  56 + <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/transport -->
  57 + <dependency>
  58 + <groupId>org.elasticsearch.client</groupId>
  59 + <artifactId>transport</artifactId>
  60 + <version>5.6.10</version>
  61 + </dependency>
  62 +
  63 +
  64 + <dependency>
  65 + <groupId>com.h2database</groupId>
  66 + <artifactId>h2</artifactId>
  67 + </dependency>
  68 +
  69 + <dependency>
  70 + <groupId>org.springframework.boot</groupId>
  71 + <artifactId>spring-boot-starter-web</artifactId>
  72 + </dependency>
  73 +
  74 +
  75 + <dependency>
  76 + <groupId>org.springframework.boot</groupId>
  77 + <artifactId>spring-boot-starter-test</artifactId>
  78 + <scope>test</scope>
  79 + </dependency>
  80 + </dependencies>
  81 +
  82 + <build>
  83 + <plugins>
  84 + <plugin>
  85 + <groupId>org.springframework.boot</groupId>
  86 + <artifactId>spring-boot-maven-plugin</artifactId>
  87 + </plugin>
  88 + </plugins>
  89 + </build>
  90 +
  91 +
  92 +</project>
No preview for this file type
  1 +package com.jpa.jpademo;
  2 +
  3 +import org.springframework.boot.SpringApplication;
  4 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  5 +
  6 +@SpringBootApplication
  7 +public class JpaDemoApplication {
  8 +
  9 + public static void main(String[] args) {
  10 + SpringApplication.run(JpaDemoApplication.class, args);
  11 + }
  12 +}
  1 +package com.jpa.jpademo.domain;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import javax.persistence.*;
  6 +import java.io.Serializable;
  7 +import java.util.List;
  8 +
  9 +/**
  10 + * 指令模型
  11 + *
  12 + */
  13 +@Data
  14 +//@Entity
  15 +//@Table(name = "DIRECTIVE_MODULE")
  16 +public class DirectiveModel implements Serializable,Cloneable {
  17 +
  18 + @Id
  19 + @GeneratedValue(strategy = GenerationType.IDENTITY)
  20 + long id;
  21 +
  22 + @Column(name = "TEMPLATE_ID")
  23 + String templateId;
  24 +
  25 + /**
  26 + * monitor新增 执行频率,原本指令是没有频率的,该频率依托于采集任务的执行频率
  27 + */
  28 + @Column(name = "INTERVAL")
  29 + String interval;
  30 +
  31 + /**
  32 + * 指令ID
  33 + */
  34 + @Column(name = "DIRECTIVE_ID")
  35 + String directiveId; // 指令ID
  36 + /**
  37 + * 指令内容
  38 + */
  39 + @Column(name = "DIRECTIVE_CONTENT")
  40 + String directiveContent;// 指令内容
  41 +
  42 + /**
  43 + * monitor新增 指令下挂接指标
  44 + */
  45 + List<KpiModel> kpiModelList;
  46 +
  47 + @Override
  48 + protected Object clone() throws CloneNotSupportedException {
  49 + return super.clone();
  50 + }
  51 +
  52 +}
  1 +package com.jpa.jpademo.domain;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import javax.persistence.*;
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * 该对象主要用于job调度时参数,任务只需要和模版进行绑定
  10 + * 每个模版可以绑定多个资源,这也适用与采集
  11 + */
  12 +@Data
  13 +@Entity
  14 +@Table(name = "JOB_RUNTIME_DETAIL_INFO")
  15 +public class JobRuntimeDetailInfo {
  16 +
  17 + public static String JOB_RUNTIME_DETAIIL_KEY = "JOB_RUNTIME_DETAIIL_KEY";
  18 +
  19 + // 任务ID workstation 上报
  20 + @Id
  21 + @Column(name = "TASK_ID")
  22 + String taskId;
  23 + // 批次号
  24 + @Transient
  25 + String batchNo;
  26 + // 下次执行时间
  27 + @Transient
  28 + String nextFireTime;
  29 + // job 类型,由workstation提供,类型包含:增加 1、修改 2、删除 0
  30 + // 枚举值见Constants.MESSAGE_TYPE_CREATE/MESSAGE_TYPE_UPDATE/MESSAGE_TYPE_DELETE
  31 + @Transient
  32 + int type;
  33 + // 采集器ID
  34 + @Column(name = "COLLECTOR_ID")
  35 + String collectorId;
  36 + // 调度频率,如果job中该频率不为空,则以该频率作为采集频率
  37 + // 如果该频率为空,则以指令的调度频率作为采集频率
  38 + @Column(name = "INTERVAL")
  39 + String interval;
  40 +
  41 + // 模版信息
  42 + @OneToMany(fetch=FetchType.EAGER)
  43 + @JoinTable(name="JOB_TEMPLATE",
  44 + joinColumns={@JoinColumn(name="j_id",referencedColumnName="task_id")},
  45 + inverseJoinColumns={@JoinColumn(name="t_id",referencedColumnName="id")})
  46 + List<TemplateInfo> templateInfos;
  47 +}
  1 +package com.jpa.jpademo.domain;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import javax.persistence.*;
  6 +import java.io.Serializable;
  7 +
  8 +@Data
  9 +//@Entity
  10 +//@Table(name = "KPI_MODULE")
  11 +public class KpiModel implements Serializable,Cloneable {
  12 +
  13 + @Id
  14 + @GeneratedValue(strategy = GenerationType.IDENTITY)
  15 + long id;
  16 +
  17 + @Column(name = "TASK_ID")
  18 + String taskId;
  19 +
  20 + @Column(name = "RESOURCE_ID")
  21 + String resourceId;
  22 +
  23 + @Column(name = "KPI_ID")
  24 + String kpiId;
  25 + @Column(name = "KPI_INTERVAL")
  26 + String kpiInterval;
  27 + @Column(name = "KPI_NAME")
  28 + String kpiName;
  29 + @Column(name = "KPI_VALUE")
  30 + String kpiValue;
  31 +
  32 + @Override
  33 + protected Object clone() throws CloneNotSupportedException {
  34 + return super.clone();
  35 + }
  36 +
  37 +
  38 +}
  1 +package com.jpa.jpademo.domain;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import javax.persistence.*;
  6 +import java.io.Serializable;
  7 +
  8 +@Data
  9 +@Entity
  10 +@Table(name = "RESOURCE_MODULE")
  11 +public class ResourceModel implements Serializable,Cloneable {
  12 +
  13 + @Id
  14 + @GeneratedValue(strategy = GenerationType.IDENTITY)
  15 + long id;
  16 +
  17 + @Column(name = "RESOURCE_ID")
  18 + private String resourceId;
  19 + @Column(name = "VERSION")
  20 + private String version;// 版本,包含snmp版本,ssh版本,jdbc版本(oracle/mysql)
  21 + @Column(name = "PROTOCOL")
  22 + private String protocol;
  23 + @Column(name = "URL")
  24 + private String url;
  25 + @Column(name = "IP_ADDR")
  26 + private String ipAddr;
  27 + @Column(name = "PORT")
  28 + private String port;
  29 + @Column(name = "USER_NAME")
  30 + private String userName;
  31 + @Column(name = "PASSWORD")
  32 + private String password;
  33 + /** 比如jdbc所需要的驱动程序
  34 + * 比如snmp所需要的community
  35 + * 比如https所需要的ssl参数等等
  36 + */
  37 + @Column(name = "EXT_PARAMS")
  38 + private String extParams;
  39 +
  40 + @Override
  41 + protected Object clone() throws CloneNotSupportedException {
  42 + return super.clone();
  43 + }
  44 +
  45 +}
  1 +package com.jpa.jpademo.domain;
  2 +
  3 +import lombok.Data;
  4 +import org.springframework.util.StringUtils;
  5 +
  6 +import javax.persistence.*;
  7 +import javax.validation.constraints.NotNull;
  8 +import java.io.Serializable;
  9 +import java.util.List;
  10 +
  11 +/**
  12 + * 模版类:
  13 + * 意在表述一个模版由多个指令组成,并且一个模版可以被多个资源进行绑定;
  14 + * 在巡检中,同一个模版下可绑定多个资源,并且他们的采集频率应该是相同的;
  15 + * 在监控中,同一个模版每次绑定一个资源,而监控中的采集模版是根据指令的采集频率来进行调度的,因此,任务调度时以指令中频率为准。
  16 + */
  17 +@Data
  18 +@Entity
  19 +@Table(name = "TEMPLATE_INFO")
  20 +public class TemplateInfo implements Serializable {
  21 +
  22 + @Id
  23 + @GeneratedValue(strategy = GenerationType.IDENTITY)
  24 + long id;
  25 +
  26 + @Column(name = "TEMPLATE_ID")
  27 + String templateId;
  28 + @Column(name = "TEMPLATE_NAME")
  29 + String templateName;
  30 +
  31 + // 指令集合
  32 + /*@NotNull
  33 + @OneToMany(fetch=FetchType.EAGER)
  34 + @JoinTable(name="TEMPLATE_DIRECTIVE",
  35 + joinColumns={@JoinColumn(name="template_id",referencedColumnName="template_id")},
  36 + inverseJoinColumns={@JoinColumn(name="directive_id",referencedColumnName="directive_id")})
  37 + List<DirectiveModel> directiveModelList;*/
  38 +
  39 + // 资源集合
  40 + @NotNull
  41 + @OneToMany(fetch=FetchType.EAGER)
  42 + @JoinTable(name="TEMPLATE_RESOURCE",
  43 + joinColumns={@JoinColumn(name="template_id",referencedColumnName="template_id")},
  44 + inverseJoinColumns={@JoinColumn(name="resource_id",referencedColumnName="id")})
  45 + List<ResourceModel> resourceModels;
  46 +
  47 + public String getTemplateId(){
  48 + if(StringUtils.isEmpty(templateId)) return "default-template";
  49 + return templateId;
  50 + }
  51 +}
  1 +package com.jpa.jpademo.es.docs;
  2 +
  3 +import com.fasterxml.jackson.annotation.JsonProperty;
  4 +import lombok.Data;
  5 +import org.springframework.data.elasticsearch.annotations.Document;
  6 +import org.springframework.data.elasticsearch.annotations.Field;
  7 +import org.springframework.data.elasticsearch.annotations.FieldType;
  8 +
  9 +import javax.persistence.Id;
  10 +
  11 +@Data
  12 +@Document(indexName = "jpa",type = "jpa-test")
  13 +public class JpaTest {
  14 +
  15 + @Id
  16 + Long id;
  17 +
  18 + @Field(type = FieldType.Text,index = false)
  19 + String name;
  20 + @Field(type = FieldType.Text,index = true)
  21 + String content;
  22 + @JsonProperty("json_content")
  23 + String jsonContent;
  24 +}
  1 +package com.jpa.jpademo.es.repository;
  2 +
  3 +import com.jpa.jpademo.es.docs.JpaTest;
  4 +import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
  5 +
  6 +public interface JPAEsRepository extends ElasticsearchRepository<JpaTest,Long> {
  7 +}
  1 +package com.jpa.jpademo.repository;
  2 +
  3 +import com.jpa.jpademo.domain.JobRuntimeDetailInfo;
  4 +import org.springframework.data.repository.CrudRepository;
  5 +
  6 +public interface JobRepository extends CrudRepository<JobRuntimeDetailInfo,String> {
  7 +
  8 +
  9 +}
  1 +package com.jpa.jpademo.repository;
  2 +
  3 +import com.jpa.jpademo.domain.ResourceModel;
  4 +import org.springframework.data.repository.CrudRepository;
  5 +
  6 +public interface ResourceRepository extends CrudRepository<ResourceModel,Long> {
  7 +}
  1 +package com.jpa.jpademo.repository;
  2 +
  3 +import com.jpa.jpademo.domain.TemplateInfo;
  4 +import org.springframework.data.repository.CrudRepository;
  5 +
  6 +public interface TemplateRepository extends CrudRepository<TemplateInfo,Long> {
  7 +}
  1 +server:
  2 + port: 8081
  3 +spring:
  4 + application:
  5 + name: 1818181217
  6 + jpa:
  7 + generate-ddl: false
  8 + show-sql: true
  9 + hibernate:
  10 + ddl-auto: update
  11 + datasource:
  12 + url: jdbc:h2:file:~/.h2/${spring.application.name}
  13 + driver-class-name: org.h2.Driver
  14 + username: sa
  15 + password: sa
  16 + schema: classpath:/sql/schema.sql
  17 + platform: h2
  18 + data:
  19 + elasticsearch:
  20 + repositories:
  21 + enabled: true
  22 + cluster-name: my-application
  23 + cluster-nodes: 127.0.0.1:9300
  24 + h2:
  25 + console:
  26 + path: /h2-console
  27 + enabled: true
  1 +
  2 +drop table JOB_RUNTIME_DETAIL_INFO ;
  3 +drop table RESOURCE_MODULE ;
  4 +drop table TEMPLATE_INFO ;
  5 +drop table JOB_TEMPLATE ;
  6 +drop table TEMPLATE_RESOURCE;
  7 +
  8 +
  9 +create table IF not exists JOB_RUNTIME_DETAIL_INFO(
  10 + task_id VARCHAR(100),
  11 + collector_id VARCHAR(100),
  12 + interval varchar(100),
  13 + PRIMARY KEY (task_id)
  14 +);
  15 +
  16 +create table IF not exists TEMPLATE_INFO(
  17 + id bigint generated BY DEFAULT AS IDENTITY,
  18 + template_id varchar(100),
  19 + template_name varchar(100),
  20 + PRIMARY KEY (id)
  21 +);
  22 +
  23 +CREATE TABLE IF NOT EXISTS RESOURCE_MODULE(
  24 + id bigint generated BY DEFAULT AS IDENTITY,
  25 + resource_id VARCHAR(100),
  26 + version VARCHAR(20),
  27 + protocol VARCHAR(20),
  28 + url VARCHAR(200),
  29 + ip_addr VARCHAR(20),
  30 + port VARCHAR(10),
  31 + user_name VARCHAR(50),
  32 + password VARCHAR(100),
  33 + ext_params VARCHAR(2000),
  34 + PRIMARY KEY (id)
  35 +);
  1 +package com.jpa.jpademo;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.jpa.jpademo.domain.JobRuntimeDetailInfo;
  5 +import com.jpa.jpademo.domain.ResourceModel;
  6 +import com.jpa.jpademo.domain.TemplateInfo;
  7 +import com.jpa.jpademo.es.docs.JpaTest;
  8 +import com.jpa.jpademo.es.repository.JPAEsRepository;
  9 +import com.jpa.jpademo.repository.JobRepository;
  10 +import com.jpa.jpademo.repository.ResourceRepository;
  11 +import com.jpa.jpademo.repository.TemplateRepository;
  12 +import org.junit.Test;
  13 +import org.junit.runner.RunWith;
  14 +import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.boot.test.context.SpringBootTest;
  16 +import org.springframework.data.domain.Page;
  17 +import org.springframework.data.domain.PageImpl;
  18 +import org.springframework.data.domain.PageRequest;
  19 +import org.springframework.data.domain.Pageable;
  20 +import org.springframework.test.context.junit4.SpringRunner;
  21 +
  22 +import java.util.ArrayList;
  23 +import java.util.List;
  24 +import java.util.UUID;
  25 +
  26 +@RunWith(SpringRunner.class)
  27 +@SpringBootTest
  28 +public class JpaDemoApplicationTests {
  29 +
  30 + @Autowired
  31 + JobRepository jobRepository;
  32 + @Autowired
  33 + TemplateRepository templateRepository;
  34 + @Autowired
  35 + ResourceRepository resourceRepository;
  36 +
  37 + @Test
  38 + public void contextLoads() {
  39 +
  40 +
  41 + JobRuntimeDetailInfo jobRuntimeDetailInfo = new JobRuntimeDetailInfo();
  42 + jobRuntimeDetailInfo.setTaskId(UUID.randomUUID().toString());
  43 + jobRuntimeDetailInfo.setInterval("interval" + System.currentTimeMillis());
  44 + jobRuntimeDetailInfo.setNextFireTime("next-fire-time");
  45 +
  46 + List<TemplateInfo> templateInfos = new ArrayList<>();
  47 + TemplateInfo t1 = new TemplateInfo();
  48 + t1.setTemplateId("1");
  49 + t1.setTemplateName("name-1");
  50 + templateInfos.add(t1);
  51 +
  52 + ResourceModel r1 = new ResourceModel();
  53 + r1.setResourceId("r-1");
  54 + r1.setIpAddr("127.0.0.1");
  55 +
  56 + ResourceModel r2 = new ResourceModel();
  57 + r2.setResourceId("r-2");
  58 + r2.setIpAddr("127.0.0.2");
  59 +
  60 + List<ResourceModel> resourceModels = new ArrayList<>();
  61 + resourceModels.add(r1);
  62 + resourceModels.add(r2);
  63 +
  64 + t1.setResourceModels(resourceModels);
  65 +
  66 + TemplateInfo t2 = new TemplateInfo();
  67 + t2.setTemplateId("2");
  68 + t2.setTemplateName("name-2");
  69 + templateInfos.add(t2);
  70 +
  71 +
  72 + ResourceModel r3 = new ResourceModel();
  73 + r3.setResourceId("r-1");
  74 + r3.setIpAddr("127.0.0.1");
  75 +
  76 + ResourceModel r4 = new ResourceModel();
  77 + r4.setResourceId("r-2");
  78 + r4.setIpAddr("127.0.0.2");
  79 +
  80 + List<ResourceModel> resourceModels2 = new ArrayList<>();
  81 + resourceModels2.add(r3);
  82 + resourceModels2.add(r4);
  83 +
  84 + t2.setResourceModels(resourceModels2);
  85 +
  86 + /*TemplateInfo t3 = new TemplateInfo();
  87 + t3.setTemplateId("3");
  88 + t3.setTemplateName("name-3");
  89 + templateInfos.add(t3);
  90 +
  91 + t3.setResourceModels(resourceModels);*/
  92 +
  93 + jobRuntimeDetailInfo.setTemplateInfos(templateInfos);
  94 +
  95 + resourceRepository.save(r1);
  96 + resourceRepository.save(r2);
  97 + resourceRepository.save(r3);
  98 + resourceRepository.save(r4);
  99 +
  100 + templateRepository.save(t1);
  101 + templateRepository.save(t2);
  102 + //templateRepository.save(t3);
  103 +
  104 + jobRepository.save(jobRuntimeDetailInfo);
  105 +
  106 + Iterable<JobRuntimeDetailInfo> jobs = jobRepository.findAll();
  107 +
  108 + jobs.forEach(
  109 + j -> j.getTemplateInfos().forEach(
  110 + t -> t.getResourceModels().forEach(
  111 + r->System.out.println(j.getTaskId()+"->"+t.getId()+"->"+r.getResourceId())
  112 + )
  113 + )
  114 + );
  115 +
  116 +
  117 +
  118 + }
  119 +
  120 + @Autowired
  121 + JPAEsRepository jpaEsRepository;
  122 + @Test
  123 + public void jpaESTest(){
  124 + JpaTest jpaTest = new JpaTest();
  125 + jpaTest.setId(System.currentTimeMillis()); // ID相同的数据只会存放一条
  126 + jpaTest.setName("zhangdajun"+System.currentTimeMillis());
  127 + jpaTest.setContent("print zhangdj "+System.currentTimeMillis());
  128 + jpaTest.setJsonContent("{\"ext\":\"my ext information\"}");
  129 +
  130 + jpaEsRepository.save(jpaTest);
  131 +
  132 + Iterable<JpaTest> rstIts = jpaEsRepository.findAll();
  133 +
  134 +
  135 + System.out.println("\n\n=++++++++++++++++++++++++=华丽分割线=+++++++++++++++++++++++++++++=\n\n");
  136 + Page<JpaTest> data = jpaEsRepository.findAll(new PageRequest(1,20));
  137 + System.out.println(JSONObject.toJSONString(data));
  138 +
  139 + System.out.println("\n\n=++++++++++++++++++++++++=华丽分割线=+++++++++++++++++++++++++++++=\n\n");
  140 +
  141 + rstIts.forEach(e->System.out.println(JSONObject.toJSONString(e)));
  142 +
  143 +
  144 + }
  145 +
  146 +}