Skip to content
This repository has been archived by the owner on Oct 26, 2022. It is now read-only.

Update to master branch in Particify Gitlab repository #3

Open
wants to merge 99 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
e707712
Add additional logging output to database layer
dgerhardt May 8, 2019
697aba0
Explicitly set image instead of using a tagged CI runner
dgerhardt Mar 17, 2020
c9cac89
Share Gradle's global cache between pipelines
dgerhardt Mar 17, 2020
12f0742
Build Docker image as part of CI
dgerhardt Mar 17, 2020
7207034
Load config defaults from classpath
dgerhardt Mar 18, 2020
69db62c
Run Gradle with additional CLI args for CI
dgerhardt Mar 18, 2020
58b0350
Merge branch 'ci-docker' into 'master'
tekay Mar 18, 2020
fe6158f
Update binding config to support java.time.Instant
dgerhardt Mar 19, 2020
f53ee13
Include start and end date for course data
dgerhardt Mar 19, 2020
2d17cc2
Setup Jackson's JSR310 (time) module dependency
dgerhardt Mar 20, 2020
96b10cc
Merge branch 'course-start' into 'master'
dgerhardt Mar 28, 2020
0f246bc
Update Gradle config to use new plugin for Maven publishing
dgerhardt Mar 28, 2020
4b74bdc
Merge branch 'gradle-maven-publish' into 'master'
dgerhardt Mar 28, 2020
cefdefa
Upgrade Gradle to version 6.3 for CI and wrapper
dgerhardt Mar 28, 2020
a9fe0a0
Merge branch 'gradle-6.3' into 'master'
dgerhardt Mar 28, 2020
f9dea2a
Bump Spring Framework dependencies
dgerhardt Mar 28, 2020
f11fd62
Bump Gradle dependencies and plugins
dgerhardt Mar 28, 2020
aba4e01
Update Gradle config to replace deprecated features
dgerhardt Mar 28, 2020
d3a44c6
Fix Gradle BOM dependency handling for war plugin
dgerhardt Mar 28, 2020
ab4c65a
Add API dependencies from Jakarata for JDK 11 support
dgerhardt Mar 30, 2020
829a68f
Merge branch 'jdk11' into 'master'
dgerhardt Mar 30, 2020
6ba4688
Bump Gradle Gretty plugin
dgerhardt Mar 30, 2020
def0371
Use new MySQL driver class by default
dgerhardt Mar 30, 2020
dc25c13
Merge branch 'new-mysql-driver-default' into 'master'
dgerhardt Mar 30, 2020
c874f28
Fix Gradle task dependency on xjc
dgerhardt Mar 30, 2020
07579f1
Merge branch 'fix-gradle-xjc-task-dependency' into 'master'
dgerhardt Mar 30, 2020
ccabbfd
Remove obsolete test configs
dgerhardt Mar 30, 2020
b8f3fff
Remove obsolete Dojo web client
dgerhardt Mar 30, 2020
fb94534
Remove unused Checkstyle configs
dgerhardt Mar 30, 2020
6e8a99f
Merge branch 'cleanup' into 'master'
dgerhardt Mar 30, 2020
76bf635
Remove redundant repository configs for Gradle
dgerhardt Mar 31, 2020
3612e99
Switch to YAML for configuration
dgerhardt Apr 4, 2020
63ba88a
Add Gradle project properties to set log levels and config dir
dgerhardt Apr 4, 2020
22387e9
Merge branch 'config-improvements' into 'master'
dgerhardt Apr 4, 2020
4483ba7
Do not set end date if the Unix timestamp equals 0
dgerhardt Apr 4, 2020
f27898c
Merge branch 'moodle-nullable-enddate' into 'master'
dgerhardt Apr 4, 2020
97d6e99
Do not rerun Gradle tasks in later CI stages
dgerhardt Apr 6, 2020
2639413
Merge branch 'ci-gradle-exclude-previous-tasks' into 'master'
dgerhardt Apr 6, 2020
9c0ab15
Do not show Gradle welcome message for CI jobs
dgerhardt Apr 6, 2020
a56b844
Merge branch 'ci-gradle-no-welcome-msg' into 'master'
dgerhardt Apr 6, 2020
ac2e27f
Add Gradle and CI config for publishing Maven artifacts
dgerhardt Apr 5, 2020
3e5ad12
Fix publication config for web archive
dgerhardt Apr 6, 2020
41f98a4
Merge branch 'ci-publish-to-maven' into 'master'
dgerhardt Apr 6, 2020
6c9ae04
Clean up documentation
dgerhardt Apr 6, 2020
fd79fef
Merge branch 'cleanup-docs' into 'master'
dgerhardt Apr 6, 2020
653c81b
Add MIT license
dgerhardt Apr 6, 2020
d6b0441
Merge branch 'license' into 'master'
dgerhardt Apr 6, 2020
692f4e1
Simple code cleanup in connector client
pcvolkmer Apr 6, 2020
24997c5
Merge branch 'client-code-cleanup' into 'master'
dgerhardt Apr 6, 2020
89d118a
Add some useful tests to client library
pcvolkmer Apr 6, 2020
436096d
Merge branch 'client-unit-tests' into 'master'
dgerhardt Apr 6, 2020
a7d0044
Remove unused imports
dgerhardt Apr 6, 2020
6577c07
Use net.particify.arsnova as root namespace
dgerhardt Apr 6, 2020
d5f46dd
Merge branch 'particify-package-namespace' into 'master'
dgerhardt Apr 6, 2020
06e87bf
Generate test reports for GitLab
dgerhardt Apr 7, 2020
0d5392f
Merge branch 'ci-test-reports' into 'master'
dgerhardt Apr 7, 2020
a5bc152
Update compatibility info
dgerhardt Apr 7, 2020
6d73526
Merge branch 'docs-lms-compatibility' into 'master'
dgerhardt Apr 7, 2020
b1f94c4
Automatically prepend package for DAO impl classes
dgerhardt Apr 7, 2020
8be8897
Merge branch 'config-no-impl-package' into 'master'
dgerhardt Apr 7, 2020
8137315
Remove support for deprecated Stud.IP REST API
dgerhardt Apr 8, 2020
7309989
Merge branch 'remove-deprecated-studip-restapi' into 'master'
dgerhardt Apr 8, 2020
b6c2891
Remove support for LDAP
dgerhardt Apr 8, 2020
c5bd043
Merge branch 'remove-ldap' into 'master'
dgerhardt Apr 8, 2020
c4efb06
Refactor config structure
dgerhardt Apr 8, 2020
25c1776
Use ConfigurationProperties for type safe property access
dgerhardt Apr 8, 2020
56b490a
Merge branch 'refac-config' into 'master'
dgerhardt Apr 8, 2020
1308f2d
Remove CORS support
dgerhardt Apr 8, 2020
b7c9d87
Merge branch 'remove-cors' into 'master'
dgerhardt Apr 8, 2020
da31d93
Remove token authentication
dgerhardt Apr 8, 2020
e609e8b
Merge branch 'remove-token-auth' into 'master'
dgerhardt Apr 8, 2020
cbf67a1
Rename PermissionEvaluator and move it to security package
dgerhardt Apr 8, 2020
46a974f
Merge branch 'refac-permission-evaluator' into 'master'
dgerhardt Apr 8, 2020
5c9dd3f
Remove obsolete classes
dgerhardt Apr 8, 2020
6864497
Merge branch 'cleanup' into 'master'
dgerhardt Apr 8, 2020
eec9c4c
Add separate Docker image job for releases
dgerhardt Apr 9, 2020
9f7642c
Merge branch 'ci-docker-image-release' into 'master'
dgerhardt Apr 9, 2020
21bdd74
Use Java 11/Debian 10 variant of Jetty Docker image
dgerhardt Apr 9, 2020
1c52720
Merge branch 'jib-base-image' into 'master'
dgerhardt Apr 9, 2020
03f45ce
Enable caching for course and membership data
dgerhardt Apr 6, 2020
5ca4cd3
Merge branch 'caching' into 'master'
dgerhardt Apr 10, 2020
cf9f597
Switch to AsciiDoc for documentation
dgerhardt Apr 11, 2020
1ffeb20
Merge branch 'asciidoc' into 'master'
dgerhardt Apr 11, 2020
dd61261
Improve CI rules for Maven publishing
dgerhardt Apr 11, 2020
79d79c2
Merge branch 'ci-rules-maven-publish' into 'master'
dgerhardt Apr 11, 2020
cec3a6c
Do not rerun previous Gradle tasks for publish task
dgerhardt Apr 11, 2020
b0db4bb
Merge branch 'ci-maven-publish-exclude-tasks' into 'master'
dgerhardt Apr 11, 2020
ef82a4e
Release version 1.0.0
dgerhardt Apr 11, 2020
982a164
Start next patch release iteration
dgerhardt Apr 11, 2020
ec1fb42
Merge branch '1.0'
dgerhardt Apr 12, 2020
fe62084
Start next release iteration
dgerhardt Apr 12, 2020
deceb20
Bump Gradle, dependencies, plugins and wrapper
dgerhardt Jan 7, 2021
89e5bd8
Release version 1.0.1
dgerhardt Jan 7, 2021
276d22d
Start next patch release iteration
dgerhardt Jan 7, 2021
8ef1b98
Merge branch '1.0'
dgerhardt Jan 7, 2021
f30203e
Bump Gradle, dependencies, plugins and wrapper
dgerhardt Jan 26, 2021
c9a6577
Release version 1.0.2
dgerhardt Jan 26, 2021
9d3d00e
Start next patch release iteration
dgerhardt Jan 26, 2021
98e0281
Merge branch '1.0'
dgerhardt Jan 26, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 94 additions & 13 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,113 @@
variables:
OUTPUT_DIR: "*/build"
GRADLE_USER_HOME: .gradle-user-home
GRADLE_OPTS: -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false
GRADLE_CLI_OPTS: --no-daemon --console=plain

.gradle_cache: &gradle_cache
paths:
- .gradle/
- $GRADLE_USER_HOME/
.gradle:
image: gradle:6.8-jdk8
cache:
key: gradle-global-cache
paths:
- $GRADLE_USER_HOME/caches

compile:
extends: .gradle
stage: build
tags:
- gradle
artifacts:
paths:
- $OUTPUT_DIR
cache: *gradle_cache
script:
- gradle xjc assemble
- gradle $GRADLE_CLI_OPTS assemble

unit_test:
extends: .gradle
stage: test
tags:
- gradle
dependencies:
- compile
artifacts:
paths:
- $OUTPUT_DIR
cache: *gradle_cache
- $OUTPUT_DIR/jacoco
- $OUTPUT_DIR/reports
- $OUTPUT_DIR/test-results
reports:
junit: $OUTPUT_DIR/test-results/test/TEST-*.xml
coverage: '/Code coverage: \d+\.\d+/'
script:
- gradle $GRADLE_CLI_OPTS test jacocoTestReport -x compileJava -x classes -x jar
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print "Instructions covered:", covered, "/", instructions; print "Code coverage:", 100 * covered / instructions "%" }' $OUTPUT_DIR/reports/jacoco/test/jacocoTestReport.csv

maven_publish:
extends: .gradle
stage: deploy
rules:
- if: $CI_MERGE_REQUEST_ID
when: never
# Automatically publish snapshot packages for the master branch
- if: $CI_COMMIT_REF_NAME == "master"
when: on_success
# Publish packages for releases on-demand
- if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+/ || $CI_COMMIT_REF_NAME =~ /^[0-9]+\.[0-9]+$/
when: manual
# Do not publish packages for topic branches
- when: never
dependencies:
- compile
script:
- gradle test
- gradle $GRADLE_CLI_OPTS publish -x jar -x war -PgitlabHostUrl=$CI_SERVER_URL -PgitlabProjectId=$CI_PROJECT_ID -PgitlabAuthToken=$CI_JOB_TOKEN

.docker_image:
extends: .gradle
stage: deploy
variables:
DOCKER_IMAGE: $CI_REGISTRY/$CI_PROJECT_PATH
DOCKER_TAG: $CI_COMMIT_REF_SLUG
dependencies:
- compile
allow_failure: true
script:
- "echo Creation time for image: `git log -1 --format=%cI`"
- "echo Tag for image: $DOCKER_TAG"
- 'if [ -n "$DOCKER_ADDITIONAL_TAGS" ]; then echo "Additional tags: $DOCKER_ADDITIONAL_TAGS"; fi'
- gradle $GRADLE_CLI_OPTS jib -x classes -x jar -x war
-Djib.to.auth.username="$CI_REGISTRY_USER"
-Djib.to.auth.password="$CI_REGISTRY_PASSWORD"
-Djib.to.image="$DOCKER_IMAGE:$DOCKER_TAG"
-Djib.container.creationTime="`git log -1 --format=%cI`"
$GRADLE_JIB_OPTS

docker_image:
extends: .docker_image
rules:
- if: $CI_MERGE_REQUEST_ID
when: never
# Automatically build images for the master branch
- if: $CI_COMMIT_REF_NAME == "master"
when: on_success
# Exclude refs conflicting with Docker tags for releases
- if: $CI_COMMIT_REF_NAME == "latest" || $CI_COMMIT_REF_NAME =~ /^v[0-9]+/ || $CI_COMMIT_REF_NAME =~ /^[0-9]+\.[0-9]+$/
when: never
# Build topic branch images on-demand
- when: manual
before_script:
- DOCKER_ADDITIONAL_TAGS=
- GRADLE_JIB_OPTS=

docker_image_release:
extends: .docker_image
only:
- /^v[0-9]+(\.[0-9]+){2}$/
except:
- branches
when: manual
before_script:
- VERSION=`echo $CI_COMMIT_REF_NAME | cut -c2-`
- V_MINOR=`echo $VERSION | cut -d . -f 1,2`
- V_MAJOR=`echo $V_MINOR | cut -d . -f 1`
- DOCKER_TAG=$VERSION
- DOCKER_ADDITIONAL_TAGS=
- if [ -n "$TAG_MINOR" ]; then DOCKER_ADDITIONAL_TAGS=$DOCKER_ADDITIONAL_TAGS,$V_MINOR; fi
- if [ -n "$TAG_MAJOR" ]; then DOCKER_ADDITIONAL_TAGS=$DOCKER_ADDITIONAL_TAGS,$V_MAJOR; fi
- if [ -n "$TAG_LATEST" ]; then DOCKER_ADDITIONAL_TAGS=$DOCKER_ADDITIONAL_TAGS,latest; fi
- DOCKER_ADDITIONAL_TAGS=`echo $DOCKER_ADDITIONAL_TAGS | cut -c2-`
- if [ -n "$DOCKER_ADDITIONAL_TAGS" ]; then GRADLE_JIB_OPTS=-Djib.to.tags=$DOCKER_ADDITIONAL_TAGS; fi
194 changes: 0 additions & 194 deletions ARSnova-checkstyle-checker.xml

This file was deleted.

47 changes: 47 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
= Changelog

== 1.0.2

This is a maintenance release which only brings libraries up to date to
fix potential bugs.

== 1.0.1

This is a maintenance release which only brings libraries up to date to
fix potential bugs.

== 1.0

This is the first stable release of LMS Connector. It introduces a lot
of changes since the latest pre-release.

=== New Features and Improvements
* Java 11 is supported.
* Start and end dates of courses are retrieved from the LMS's and have
been added to the API.
* The configuration file uses YAML format. Its location is set as a
Java system property.
* Optimized SQL queries for performance.
* The mapping of Moodle user role IDs can be changed in configuration.
* The client library uses annotations to support caching of course and
membership data.
* Frameworks and libraries have been updated.

=== Bug Fixes
* A NullPointerException, which was caused by the SQL query for Moodle
course memberships in some cases, has been fixed.
* A compatibility issue with the PostgreSQL JDBC driver has been fixed.

=== Removed Features
* The deprecated Stud.IP REST API plugin is no longer supported.
* Ilias integration was removed because its feature set was not
consistent with integrations for other LMS's. It might resurface in a
future release.
* Token authentication is no longer supported.
* LDAP is no longer supported.
* CORS HTTP headers are no longer set.

=== Contributions
Lead development:
Daniel Gerhardt (https://particify.com[Particify]),
Paul-Christian Volkmer
7 changes: 7 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Copyright 2013-2020 Daniel Gerhardt, Paul-Christian Volkmer and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Loading