no message
parent
5de4c1ada0
commit
b7d5dfb198
@ -0,0 +1,6 @@
|
|||||||
|
TAG=6.2.1
|
||||||
|
ENV=dev
|
||||||
|
PROFILE=production
|
||||||
|
AOT=no-aot
|
||||||
|
ELASTIC_VERSION=6.2.1
|
||||||
|
ELASTIC_PASSWORD=changeme
|
@ -0,0 +1,3 @@
|
|||||||
|
TAG=6.2.1
|
||||||
|
ELASTIC_VERSION=6.2.1
|
||||||
|
ELASTIC_PASSWORD=changeme
|
@ -0,0 +1 @@
|
|||||||
|
**/*~
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
language: python
|
||||||
|
python: ['3.5']
|
||||||
|
script: make
|
||||||
|
|
||||||
|
sudo: required
|
||||||
|
services: ['docker']
|
@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright {yyyy} {name of copyright owner}
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://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.
|
@ -0,0 +1,30 @@
|
|||||||
|
SHELL=/bin/bash
|
||||||
|
|
||||||
|
ifndef ELASTIC_VERSION
|
||||||
|
ELASTIC_VERSION := $(shell awk 'BEGIN { FS = "[= ]" } /^ELASTIC_VERSION=/ { print $$2 }' .env)
|
||||||
|
endif
|
||||||
|
export ELASTIC_VERSION
|
||||||
|
|
||||||
|
ifndef GIT_BRANCH
|
||||||
|
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
||||||
|
endif
|
||||||
|
|
||||||
|
TARGETS := apm-server elasticsearch logstash kibana beats
|
||||||
|
|
||||||
|
images: $(TARGETS)
|
||||||
|
push: $(TARGETS:%=%-push)
|
||||||
|
clean: $(TARGETS:%=%-clean)
|
||||||
|
|
||||||
|
$(TARGETS): $(TARGETS:%=%-checkout)
|
||||||
|
(cd stack/$@ && make)
|
||||||
|
|
||||||
|
$(TARGETS:%=%-push): $(TARGETS:%=%-checkout)
|
||||||
|
(cd stack/$(@:%-push=%) && make push)
|
||||||
|
|
||||||
|
$(TARGETS:%=%-checkout):
|
||||||
|
test -d stack/$(@:%-checkout=%) || \
|
||||||
|
git clone https://github.com/elastic/$(@:%-checkout=%)-docker.git stack/$(@:%-checkout=%)
|
||||||
|
(cd stack/$(@:%-checkout=%) && git fetch && git reset --hard && git checkout origin/$(GIT_BRANCH))
|
||||||
|
|
||||||
|
$(TARGETS:%=%-clean):
|
||||||
|
rm -rf stack/$(@:%-clean=%)
|
@ -0,0 +1,25 @@
|
|||||||
|
# stack-docker
|
||||||
|
This example Docker Compose configuration demonstrates many components of the
|
||||||
|
Elastic Stack, all running on a single machine under Docker.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
- Docker and Compose. Windows and Mac users get Compose installed automatically
|
||||||
|
with Docker. Linux users can:
|
||||||
|
```
|
||||||
|
pip install docker-compose
|
||||||
|
```
|
||||||
|
|
||||||
|
- At least 4GiB of RAM for the containers. Windows and Mac users _must_
|
||||||
|
configure their Docker virtual machine to have more than the default 2 GiB of
|
||||||
|
RAM:
|
||||||
|
|
||||||
|
![Docker VM memory settings](screenshots/docker-vm-memory-settings.png)
|
||||||
|
|
||||||
|
## Starting the stack
|
||||||
|
Try `docker-compose up` to create a demonstration Elastic Stack with
|
||||||
|
Elasticsearch, Kibana, Logstash, Auditbeat, Metricbeat, Filebeat, Packetbeat,
|
||||||
|
and Heartbeat.
|
||||||
|
|
||||||
|
Point a browser at [`http://localhost:5601`](http://localhost:5601) to see the results.
|
||||||
|
|
||||||
|
Log in with `elastic` / `changeme`.
|
@ -0,0 +1,28 @@
|
|||||||
|
input {
|
||||||
|
http {
|
||||||
|
port => 31311 # default: 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
filter {
|
||||||
|
grok{
|
||||||
|
match => { "message" => "%{GREEDYDATA:request}"}
|
||||||
|
}
|
||||||
|
json{
|
||||||
|
source => "request"
|
||||||
|
target => "parsed"
|
||||||
|
}
|
||||||
|
split{
|
||||||
|
field=>"entries"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
output {
|
||||||
|
elasticsearch {
|
||||||
|
hosts => [ 'elasticsearch' ]
|
||||||
|
user => 'elastic'
|
||||||
|
password => 'changeme'
|
||||||
|
index => "data-management-plan-%{[entries][indexType]}-%{+YYYY.MM.dd}"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,106 @@
|
|||||||
|
---
|
||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
# The environment variable "TAG" is used throughout this file to
|
||||||
|
# specify the version of the images to run. The default is set in the
|
||||||
|
# '.env' file in this folder. It can be overridden with any normal
|
||||||
|
# technique for setting environment variables, for example:
|
||||||
|
#
|
||||||
|
# TAG=6.0.0-beta1 docker-compose up
|
||||||
|
#
|
||||||
|
# REF: https://docs.docker.com/compose/compose-file/#variable-substitution
|
||||||
|
#
|
||||||
|
# Also be sure to set the ELASTIC_VERSION variable. For released versions,
|
||||||
|
# ${TAG} and ${ELASTIC_VERSION} will be identical, but for pre-release
|
||||||
|
# versions, ${TAG} might contain an extra build identifier, like
|
||||||
|
# "6.0.0-beta1-3eab5b40", so a full invocation might look like:
|
||||||
|
#
|
||||||
|
# ELASTIC_VERSION=6.0.0-beta1 TAG=6.0.0-beta1-3eab5b40 docker-compose up
|
||||||
|
#
|
||||||
|
elasticsearch:
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:${TAG}
|
||||||
|
container_name: elasticsearch
|
||||||
|
#volumes:
|
||||||
|
# - esdata:/usr/share/elasticsearch/data
|
||||||
|
environment: ['http.host=0.0.0.0', 'transport.host=127.0.0.1', 'ELASTIC_PASSWORD=${ELASTIC_PASSWORD}']
|
||||||
|
ports: ['0.0.0.0:9200:9200']
|
||||||
|
networks: ['stack']
|
||||||
|
|
||||||
|
kibana:
|
||||||
|
image: docker.elastic.co/kibana/kibana:${TAG}
|
||||||
|
container_name: kibana
|
||||||
|
ports: ['0.0.0.0:5601:5601']
|
||||||
|
networks: ['stack']
|
||||||
|
depends_on: ['elasticsearch']
|
||||||
|
|
||||||
|
logstash:
|
||||||
|
image: docker.elastic.co/logstash/logstash:${TAG}
|
||||||
|
container_name: logstash
|
||||||
|
# Provide a simple pipeline configuration for Logstash with a bind-mounted file.
|
||||||
|
volumes:
|
||||||
|
- ./config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
|
||||||
|
ports: ['0.0.0.0:31311:31311']
|
||||||
|
|
||||||
|
networks: ['stack']
|
||||||
|
depends_on: ['elasticsearch', 'setup_logstash']
|
||||||
|
|
||||||
|
filebeat:
|
||||||
|
image: docker.elastic.co/beats/filebeat:${TAG}
|
||||||
|
container_name: filebeat
|
||||||
|
command: -e -E 'output.elasticsearch.password=${ELASTIC_PASSWORD}'
|
||||||
|
# If the host system has logs at "/var/log", mount them at "/mnt/log"
|
||||||
|
# inside the container, where Filebeat can find them.
|
||||||
|
# volumes: ['/var/log:/mnt/log:ro']
|
||||||
|
networks: ['stack']
|
||||||
|
depends_on: ['elasticsearch', 'setup_filebeat']
|
||||||
|
|
||||||
|
heartbeat:
|
||||||
|
image: docker.elastic.co/beats/heartbeat:${TAG}
|
||||||
|
container_name: heartbeat
|
||||||
|
command: -e -E 'output.elasticsearch.password=${ELASTIC_PASSWORD}'
|
||||||
|
networks: ['stack']
|
||||||
|
depends_on: ['elasticsearch', 'setup_heartbeat']
|
||||||
|
|
||||||
|
# Run a short-lived container to set up Logstash.
|
||||||
|
setup_logstash:
|
||||||
|
image: centos:7
|
||||||
|
container_name: setup_logstash
|
||||||
|
volumes: ['./scripts/setup-logstash.sh:/usr/local/bin/setup-logstash.sh:ro']
|
||||||
|
# The script may have CR/LF line endings if using Docker for Windows, so
|
||||||
|
# make sure that they don't confuse Bash.
|
||||||
|
command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-logstash.sh | tr -d "\r" | bash']
|
||||||
|
environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}']
|
||||||
|
networks: ['stack']
|
||||||
|
depends_on: ['elasticsearch']
|
||||||
|
|
||||||
|
setup_kibana:
|
||||||
|
image: centos:7
|
||||||
|
container_name: setup_kibana
|
||||||
|
volumes: ['./scripts/setup-kibana.sh:/usr/local/bin/setup-kibana.sh:ro']
|
||||||
|
command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-kibana.sh | tr -d "\r" | bash']
|
||||||
|
environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}']
|
||||||
|
networks: ['stack']
|
||||||
|
depends_on: ['elasticsearch']
|
||||||
|
|
||||||
|
setup_filebeat:
|
||||||
|
image: docker.elastic.co/beats/filebeat:${TAG}
|
||||||
|
container_name: setup_filebeat
|
||||||
|
volumes: ['./scripts/setup-beat.sh:/usr/local/bin/setup-beat.sh:ro']
|
||||||
|
command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-beat.sh | tr -d "\r" | bash -s filebeat']
|
||||||
|
environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}']
|
||||||
|
networks: ['stack']
|
||||||
|
depends_on: ['kibana']
|
||||||
|
|
||||||
|
setup_heartbeat:
|
||||||
|
image: docker.elastic.co/beats/heartbeat:${TAG}
|
||||||
|
container_name: setup_heartbeat
|
||||||
|
volumes: ['./scripts/setup-beat.sh:/usr/local/bin/setup-beat.sh:ro']
|
||||||
|
command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-beat.sh | tr -d "\r" | bash -s heartbeat']
|
||||||
|
environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}']
|
||||||
|
networks: ['stack']
|
||||||
|
depends_on: ['kibana']
|
||||||
|
|
||||||
|
#volumes:
|
||||||
|
#esdata:
|
||||||
|
# driver: local
|
||||||
|
networks: {stack: {}}
|
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
beat=$1
|
||||||
|
|
||||||
|
until curl -s http://kibana:5601; do
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
# Load the sample dashboards for the Beat.
|
||||||
|
# REF: https://www.elastic.co/guide/en/beats/metricbeat/master/metricbeat-sample-dashboards.html
|
||||||
|
${beat} setup \
|
||||||
|
-E setup.kibana.host=kibana \
|
||||||
|
-E setup.kibana.username=elastic \
|
||||||
|
-E setup.kibana.password=${ELASTIC_PASSWORD} \
|
||||||
|
-E output.elasticsearch.password=${ELASTIC_PASSWORD}
|
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
es_url=http://elastic:${ELASTIC_PASSWORD}@elasticsearch:9200
|
||||||
|
|
||||||
|
# Wait for Elasticsearch to start up before doing anything.
|
||||||
|
until curl -s $es_url -o /dev/null; do
|
||||||
|
sleep 1
|
||||||
|
done
|
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
es_url=http://elastic:${ELASTIC_PASSWORD}@elasticsearch:9200
|
||||||
|
|
||||||
|
# Wait for Elasticsearch to start up before doing anything.
|
||||||
|
until curl -s $es_url -o /dev/null; do
|
||||||
|
sleep 1
|
||||||
|
done
|
@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
!/.gitignore
|
@ -1,5 +1,5 @@
|
|||||||
FROM openjdk:8-jdk-alpine
|
FROM openjdk:8-jdk-alpine
|
||||||
VOLUME /tmp
|
VOLUME /tmp
|
||||||
ARG JAR_FILE
|
ARG PROFILE=dev
|
||||||
ADD ${JAR_FILE} app.jar
|
ADD web/target/web-1.0-SNAPSHOT.jar app.jar
|
||||||
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
|
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=${PROFILE}","-jar","/app.jar"]
|
@ -0,0 +1,35 @@
|
|||||||
|
package eu.eudat.core.models.exception;
|
||||||
|
|
||||||
|
import eu.eudat.core.models.LoggingModel;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by ikalyvas on 6/12/2018.
|
||||||
|
*/
|
||||||
|
public class ApiExceptionLoggingModel<E extends Exception,P> extends LoggingModel<Map<String,E>> {
|
||||||
|
private HttpStatus code;
|
||||||
|
private P user;
|
||||||
|
private final String indexType = "api-exception-logging";
|
||||||
|
|
||||||
|
public String getIndexType() {
|
||||||
|
return indexType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public P getUser() {
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUser(P user) {
|
||||||
|
this.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpStatus getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(HttpStatus code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
@ -0,0 +1,5 @@
|
|||||||
|
#Generated by Apache Maven
|
||||||
|
#Thu Jun 21 10:17:25 EEST 2018
|
||||||
|
version=1.0-SNAPSHOT
|
||||||
|
groupId=dmp-backend
|
||||||
|
artifactId=logging
|
@ -0,0 +1,11 @@
|
|||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\exception\ApiExceptionLoggingModel.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\types\LoggingOutputType.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\AuditModel.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\LoggingModel.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\simple\SimpleAuditModel.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\logger\common\AbstractBatchLogger.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\simple\SimpleLoggingModel.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\logger\remote\http\HttpRemoteLogger.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\logger\Logger.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\eu\eudat\core\models\exception\ExceptionLoggingModel.java
|
||||||
|
C:\Users\ikalyvas\Documents\OpenAIRE-EUDAT-DMP-service-pilot\dmp-backend\logging\src\main\java\types\LoggingType.java
|
@ -1,7 +1,7 @@
|
|||||||
package eu.eudat.dynamicproject;
|
package eu.eudat.configurations.dynamicproject;
|
||||||
|
|
||||||
import eu.eudat.dynamicproject.entities.Configuration;
|
import eu.eudat.configurations.dynamicproject.entities.Configuration;
|
||||||
import eu.eudat.models.dynamicfields.DynamicField;
|
import eu.eudat.models.data.dynamicfields.DynamicField;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
package eu.eudat.dynamicproject;
|
package eu.eudat.configurations.dynamicproject;
|
||||||
|
|
||||||
import eu.eudat.dynamicproject.entities.Configuration;
|
import eu.eudat.configurations.dynamicproject.entities.Configuration;
|
||||||
import eu.eudat.dynamicproject.entities.Property;
|
import eu.eudat.configurations.dynamicproject.entities.Property;
|
||||||
import eu.eudat.models.dynamicfields.Dependency;
|
import eu.eudat.models.data.dynamicfields.Dependency;
|
||||||
import eu.eudat.models.dynamicfields.DynamicField;
|
import eu.eudat.models.data.dynamicfields.DynamicField;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Profile;
|
import org.springframework.context.annotation.Profile;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
@ -1,9 +1,9 @@
|
|||||||
package eu.eudat.dynamicproject;
|
package eu.eudat.configurations.dynamicproject;
|
||||||
|
|
||||||
import eu.eudat.dynamicproject.entities.Configuration;
|
import eu.eudat.configurations.dynamicproject.entities.Configuration;
|
||||||
import eu.eudat.dynamicproject.entities.Property;
|
import eu.eudat.configurations.dynamicproject.entities.Property;
|
||||||
import eu.eudat.models.dynamicfields.Dependency;
|
import eu.eudat.models.data.dynamicfields.Dependency;
|
||||||
import eu.eudat.models.dynamicfields.DynamicField;
|
import eu.eudat.models.data.dynamicfields.DynamicField;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Profile;
|
import org.springframework.context.annotation.Profile;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.dynamicproject.entities;
|
package eu.eudat.configurations.dynamicproject.entities;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
import javax.xml.bind.annotation.XmlElementWrapper;
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.dynamicproject.entities;
|
package eu.eudat.configurations.dynamicproject.entities;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.dynamicproject.entities;
|
package eu.eudat.configurations.dynamicproject.entities;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.dynamicproject.entities;
|
package eu.eudat.configurations.dynamicproject.entities;
|
||||||
|
|
||||||
import eu.eudat.proxy.config.UrlConfig;
|
import eu.eudat.logic.proxy.config.UrlConfig;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
import javax.xml.bind.annotation.XmlElementWrapper;
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.dynamicproject.entities;
|
package eu.eudat.configurations.dynamicproject.entities;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
import javax.xml.bind.annotation.XmlElementWrapper;
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.typedefinition;
|
package eu.eudat.configurations.typedefinition;
|
||||||
|
|
||||||
public enum DataType {
|
public enum DataType {
|
||||||
TINY,
|
TINY,
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.typedefinition;
|
package eu.eudat.configurations.typedefinition;
|
||||||
|
|
||||||
public interface DatabaseColumnType {
|
public interface DatabaseColumnType {
|
||||||
public String getType(DataType dt);
|
public String getType(DataType dt);
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.typedefinition;
|
package eu.eudat.configurations.typedefinition;
|
||||||
|
|
||||||
public class PostgreSQLDatabaseColumnType implements DatabaseColumnType {
|
public class PostgreSQLDatabaseColumnType implements DatabaseColumnType {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.typedefinition;
|
package eu.eudat.configurations.typedefinition;
|
||||||
|
|
||||||
import org.hibernate.HibernateException;
|
import org.hibernate.HibernateException;
|
||||||
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.typedefinition;
|
package eu.eudat.configurations.typedefinition;
|
||||||
|
|
||||||
import org.hibernate.HibernateException;
|
import org.hibernate.HibernateException;
|
||||||
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
@ -1,64 +1,45 @@
|
|||||||
package eu.eudat.controllers.controllerhandler;
|
package eu.eudat.controllers.controllerhandler;
|
||||||
|
|
||||||
import eu.eudat.models.errormodels.ValidationErrorContext;
|
import eu.eudat.core.logger.Logger;
|
||||||
import eu.eudat.models.helpers.responses.ResponseItem;
|
import eu.eudat.core.models.exception.ApiExceptionLoggingModel;
|
||||||
import eu.eudat.types.ApiMessageCode;
|
import eu.eudat.models.data.security.Principal;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.MessageSource;
|
|
||||||
import org.springframework.context.i18n.LocaleContextHolder;
|
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.validation.BindingResult;
|
|
||||||
import org.springframework.validation.FieldError;
|
|
||||||
import org.springframework.web.bind.MethodArgumentNotValidException;
|
|
||||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
|
import types.LoggingType;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.HashMap;
|
||||||
import java.util.Locale;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by ikalyvas on 6/12/2018.
|
||||||
|
*/
|
||||||
@ControllerAdvice
|
@ControllerAdvice
|
||||||
public class ControllerErrorHandler {
|
public class ControllerErrorHandler {
|
||||||
|
|
||||||
private MessageSource messageSource;
|
private Logger logger;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public ControllerErrorHandler(MessageSource messageSource) {
|
public ControllerErrorHandler(Logger logger) {
|
||||||
this.messageSource = messageSource;
|
this.logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ExceptionHandler(MethodArgumentNotValidException.class)
|
@ExceptionHandler(Exception.class)
|
||||||
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseItem<ValidationErrorContext> processValidationError(MethodArgumentNotValidException ex) {
|
public void processValidationError(Principal principal, Exception ex) throws Exception {
|
||||||
BindingResult result = ex.getBindingResult();
|
ApiExceptionLoggingModel<Exception, Principal> apiExceptionLoggingModel = new ApiExceptionLoggingModel<>();
|
||||||
List<FieldError> fieldErrors = result.getFieldErrors();
|
apiExceptionLoggingModel.setCode(HttpStatus.BAD_REQUEST);
|
||||||
|
apiExceptionLoggingModel.setUser(principal);
|
||||||
return processFieldErrors(fieldErrors);
|
Map<String,Exception> exceptionMap = new HashMap<>();
|
||||||
}
|
exceptionMap.put("exception",ex);
|
||||||
|
apiExceptionLoggingModel.setData(exceptionMap);
|
||||||
private ResponseItem<ValidationErrorContext> processFieldErrors(List<FieldError> fieldErrors) {
|
apiExceptionLoggingModel.setMessage(ex.getMessage());
|
||||||
ValidationErrorContext dto = new ValidationErrorContext();
|
apiExceptionLoggingModel.setType(LoggingType.ERROR);
|
||||||
|
this.logger.error(apiExceptionLoggingModel);
|
||||||
for (FieldError fieldError : fieldErrors) {
|
return;
|
||||||
String localizedErrorMessage = resolveLocalizedErrorMessage(fieldError);
|
|
||||||
dto.addFieldError(fieldError.getField(), localizedErrorMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ResponseItem<ValidationErrorContext>().status(ApiMessageCode.VALIDATION_MESSAGE).payload(dto);
|
|
||||||
}
|
|
||||||
|
|
||||||
private String resolveLocalizedErrorMessage(FieldError fieldError) {
|
|
||||||
Locale currentLocale = LocaleContextHolder.getLocale();
|
|
||||||
String localizedErrorMessage = messageSource.getMessage(fieldError, currentLocale);
|
|
||||||
|
|
||||||
if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) {
|
|
||||||
String[] fieldErrorCodes = fieldError.getCodes();
|
|
||||||
localizedErrorMessage = fieldErrorCodes[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
return localizedErrorMessage;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
package eu.eudat.controllers.controllerhandler;
|
||||||
|
|
||||||
|
import eu.eudat.core.logger.Logger;
|
||||||
|
import eu.eudat.exceptions.security.UnauthorisedException;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||||
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by ikalyvas on 6/12/2018.
|
||||||
|
*/
|
||||||
|
@ControllerAdvice
|
||||||
|
public class ControllerUnauthorisedHandler {
|
||||||
|
|
||||||
|
private Logger logger;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public ControllerUnauthorisedHandler(Logger logger) {
|
||||||
|
this.logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ExceptionHandler(UnauthorisedException.class)
|
||||||
|
@ResponseStatus(HttpStatus.UNAUTHORIZED)
|
||||||
|
@ResponseBody
|
||||||
|
public void processValidationError(UnauthorisedException ex) {
|
||||||
|
this.logger.error(ex, ex.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
package eu.eudat.controllers.controllerhandler;
|
||||||
|
|
||||||
|
import eu.eudat.models.data.errormodels.ValidationErrorContext;
|
||||||
|
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
||||||
|
import eu.eudat.types.ApiMessageCode;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.MessageSource;
|
||||||
|
import org.springframework.context.i18n.LocaleContextHolder;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
|
import org.springframework.validation.FieldError;
|
||||||
|
import org.springframework.web.bind.MethodArgumentNotValidException;
|
||||||
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||||
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
|
||||||
|
@ControllerAdvice
|
||||||
|
public class ControllerValidatorErrorHandler {
|
||||||
|
|
||||||
|
private MessageSource messageSource;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public ControllerValidatorErrorHandler(MessageSource messageSource) {
|
||||||
|
this.messageSource = messageSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ExceptionHandler(MethodArgumentNotValidException.class)
|
||||||
|
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||||
|
@ResponseBody
|
||||||
|
public ResponseItem<ValidationErrorContext> processValidationError(MethodArgumentNotValidException ex) {
|
||||||
|
BindingResult result = ex.getBindingResult();
|
||||||
|
List<FieldError> fieldErrors = result.getFieldErrors();
|
||||||
|
|
||||||
|
return processFieldErrors(fieldErrors);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ResponseItem<ValidationErrorContext> processFieldErrors(List<FieldError> fieldErrors) {
|
||||||
|
ValidationErrorContext dto = new ValidationErrorContext();
|
||||||
|
|
||||||
|
for (FieldError fieldError : fieldErrors) {
|
||||||
|
String localizedErrorMessage = resolveLocalizedErrorMessage(fieldError);
|
||||||
|
dto.addFieldError(fieldError.getField(), localizedErrorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ResponseItem<ValidationErrorContext>().status(ApiMessageCode.VALIDATION_MESSAGE).payload(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveLocalizedErrorMessage(FieldError fieldError) {
|
||||||
|
Locale currentLocale = LocaleContextHolder.getLocale();
|
||||||
|
String localizedErrorMessage = messageSource.getMessage(fieldError, currentLocale);
|
||||||
|
|
||||||
|
if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) {
|
||||||
|
String[] fieldErrorCodes = fieldError.getCodes();
|
||||||
|
localizedErrorMessage = fieldErrorCodes[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return localizedErrorMessage;
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.builders;
|
package eu.eudat.logic.builders;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by ikalyvas on 2/15/2018.
|
* Created by ikalyvas on 2/15/2018.
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.builders;
|
package eu.eudat.logic.builders;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by ikalyvas on 2/15/2018.
|
* Created by ikalyvas on 2/15/2018.
|
@ -1,10 +1,10 @@
|
|||||||
package eu.eudat.builders;
|
package eu.eudat.logic.builders;
|
||||||
|
|
||||||
import eu.eudat.builders.entity.*;
|
import eu.eudat.logic.builders.entity.*;
|
||||||
import eu.eudat.builders.model.criteria.DataRepositoryCriteriaBuilder;
|
import eu.eudat.logic.builders.model.criteria.DataRepositoryCriteriaBuilder;
|
||||||
import eu.eudat.builders.model.criteria.ExternalDatasetCriteriaBuilder;
|
import eu.eudat.logic.builders.model.criteria.ExternalDatasetCriteriaBuilder;
|
||||||
import eu.eudat.builders.model.criteria.RegistryCriteriaBuilder;
|
import eu.eudat.logic.builders.model.criteria.RegistryCriteriaBuilder;
|
||||||
import eu.eudat.builders.model.models.*;
|
import eu.eudat.logic.builders.model.models.*;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.entity;
|
package eu.eudat.logic.builders.entity;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.entities.Content;
|
import eu.eudat.data.entities.Content;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.entity;
|
package eu.eudat.logic.builders.entity;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.entities.Credential;
|
import eu.eudat.data.entities.Credential;
|
||||||
import eu.eudat.data.entities.UserInfo;
|
import eu.eudat.data.entities.UserInfo;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.entity;
|
package eu.eudat.logic.builders.entity;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.entities.Dataset;
|
import eu.eudat.data.entities.Dataset;
|
||||||
import eu.eudat.data.entities.DatasetProfile;
|
import eu.eudat.data.entities.DatasetProfile;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.entity;
|
package eu.eudat.logic.builders.entity;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.entities.Credential;
|
import eu.eudat.data.entities.Credential;
|
||||||
import eu.eudat.data.entities.DMP;
|
import eu.eudat.data.entities.DMP;
|
||||||
import eu.eudat.data.entities.UserInfo;
|
import eu.eudat.data.entities.UserInfo;
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.entity;
|
package eu.eudat.logic.builders.entity;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.entities.UserInfo;
|
import eu.eudat.data.entities.UserInfo;
|
||||||
import eu.eudat.data.entities.UserRole;
|
import eu.eudat.data.entities.UserRole;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.entity;
|
package eu.eudat.logic.builders.entity;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.entities.UserInfo;
|
import eu.eudat.data.entities.UserInfo;
|
||||||
import eu.eudat.data.entities.UserToken;
|
import eu.eudat.data.entities.UserToken;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package eu.eudat.builders.helpers;
|
package eu.eudat.logic.builders.helpers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by ikalyvas on 3/15/2018.
|
* Created by ikalyvas on 3/15/2018.
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.model.criteria;
|
package eu.eudat.logic.builders.model.criteria;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.dao.criteria.DataRepositoryCriteria;
|
import eu.eudat.data.dao.criteria.DataRepositoryCriteria;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.model.criteria;
|
package eu.eudat.logic.builders.model.criteria;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.dao.criteria.ExternalDatasetCriteria;
|
import eu.eudat.data.dao.criteria.ExternalDatasetCriteria;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.model.criteria;
|
package eu.eudat.logic.builders.model.criteria;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.dao.criteria.RegistryCriteria;
|
import eu.eudat.data.dao.criteria.RegistryCriteria;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,6 +1,6 @@
|
|||||||
package eu.eudat.builders.model.criteria;
|
package eu.eudat.logic.builders.model.criteria;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.dao.criteria.ServiceCriteria;
|
import eu.eudat.data.dao.criteria.ServiceCriteria;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,7 +1,7 @@
|
|||||||
package eu.eudat.builders.model.models;
|
package eu.eudat.logic.builders.model.models;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.models.helpers.common.DataTableData;
|
import eu.eudat.models.data.helpers.common.DataTableData;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package eu.eudat.builders.model.models;
|
package eu.eudat.logic.builders.model.models;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.models.security.Principal;
|
import eu.eudat.models.data.security.Principal;
|
||||||
import eu.eudat.types.Authorities;
|
import eu.eudat.types.Authorities;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
@ -1,9 +1,9 @@
|
|||||||
package eu.eudat.builders.model.models;
|
package eu.eudat.logic.builders.model.models;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.data.entities.UserInfo;
|
import eu.eudat.data.entities.UserInfo;
|
||||||
import eu.eudat.models.dmp.DataManagementPlan;
|
import eu.eudat.models.data.dmp.DataManagementPlan;
|
||||||
import eu.eudat.models.project.Project;
|
import eu.eudat.models.data.project.Project;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
@ -1,7 +1,7 @@
|
|||||||
package eu.eudat.builders.model.models;
|
package eu.eudat.logic.builders.model.models;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.models.dashboard.recent.RecentActivityData;
|
import eu.eudat.models.data.dashboard.recent.RecentActivityData;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package eu.eudat.builders.model.models;
|
package eu.eudat.logic.builders.model.models;
|
||||||
|
|
||||||
import eu.eudat.builders.Builder;
|
import eu.eudat.logic.builders.Builder;
|
||||||
import eu.eudat.models.dmp.Researcher;
|
import eu.eudat.models.data.dmp.Researcher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by ikalyvas on 3/6/2018.
|
* Created by ikalyvas on 3/6/2018.
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue