Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
9963926
Merge branch 'master' into dev
rjrudin Sep 16, 2024
b83bc57
Bumped to 5.1-SNAPSHOT
rjrudin Sep 16, 2024
f80f89a
Merge branch 'master' into dev
rjrudin Sep 20, 2024
7b06dcb
Merge branch 'master' into dev
rjrudin Sep 20, 2024
913298e
Can now specify a list of redaction rules to include when generating …
BillFarber Oct 1, 2024
78c26dc
Merge pull request #715 from BillFarber/feature/specifyRedactionRules
BillFarber Oct 1, 2024
910d4e7
Updated the transform testing
BillFarber Oct 1, 2024
dfd2619
Merge pull request #716 from BillFarber/feature/specifyRedactionRules
BillFarber Oct 1, 2024
a34cbd1
Updated the CONTRIBUTING to include instructions for testing.
BillFarber Oct 2, 2024
457d5cf
Merge pull request #717 from BillFarber/dev
BillFarber Oct 2, 2024
abc59d0
#719 Supporting a scenario where spring-web 6 is on the classpath
rjrudin Nov 18, 2024
ba3ccba
Merge pull request #722 from marklogic/feature/spring-web-fix
rjrudin Nov 18, 2024
b32a687
MLE-18103 Trimming custom tokens
rjrudin Nov 27, 2024
11317d3
Merge pull request #724 from marklogic/feature/18103-bug
rjrudin Nov 27, 2024
936be7c
Merge branch 'master' into dev
rjrudin Apr 28, 2025
93b46e2
MLE-21393 Added support for symlinks when loading files
rjrudin May 1, 2025
ff5fd3a
Merge pull request #731 from marklogic/feature/21393-symlink
rjrudin May 1, 2025
4f04cc8
Requiring property values to not be empty
rjrudin Feb 20, 2025
5a22c21
Fixing Polaris high issues
rjrudin May 5, 2025
8284cfa
Merge pull request #727 from marklogic/feature/blank-property-fix
rjrudin May 6, 2025
62d6489
Merge pull request #732 from marklogic/feature/polaris-high-issues
rjrudin May 6, 2025
de61188
Renamed test app folder to just "test-app"
rjrudin May 7, 2025
0321645
Merge pull request #733 from marklogic/feature/refactor-test-app
rjrudin May 7, 2025
bcafbac
Reverting Jenkinsfile to run tests separately
rjrudin May 15, 2025
c2842a9
MLE-21542 Sanitizing values for XPath expressions
rjrudin May 14, 2025
938acc3
Merge pull request #734 from marklogic/feature/21542-polaris
rjrudin May 15, 2025
beedda5
Updated CODEOWNERS
rjrudin May 15, 2025
3d86bb9
MLE-21542 More Polaris fixes
rjrudin May 15, 2025
31fd99d
Merge pull request #735 from marklogic/feature/21542-more-polaris
rjrudin May 21, 2025
a83e3fc
MLE-21542 First batch of null checks
rjrudin May 21, 2025
641ba98
Merge pull request #736 from marklogic/feature/21542-polaris-nulls
rjrudin May 21, 2025
cb2dd17
MLE-21542 More null checks for Polaris
rjrudin May 21, 2025
f3517b0
Merge pull request #737 from marklogic/feature/21542-polaris-nulls
rjrudin May 22, 2025
f5de1c8
MLE-21542 More Polaris fixes
rjrudin May 22, 2025
ba41cab
Merge pull request #738 from marklogic/feature/21542-more-polaris
rjrudin May 22, 2025
024d2b2
MLE-21542 More Polaris fixes
rjrudin May 22, 2025
9857f51
Merge pull request #739 from marklogic/feature/21542-more-polaris
rjrudin May 22, 2025
6ab7326
MLE-21542 Hopefully last null check
rjrudin May 22, 2025
1a95f51
Merge pull request #740 from marklogic/feature/21542-more-polaris
rjrudin May 22, 2025
7201859
MLE-21542 Yet one more small null check
rjrudin May 22, 2025
bb33970
Merge pull request #741 from marklogic/feature/21542-more-polaris
rjrudin May 22, 2025
4d55039
MLE-22458 Updated dependencies in example projects
rjrudin Jun 12, 2025
5720cdb
Merge pull request #744 from marklogic/feature/22458-black-duck
rjrudin Jun 12, 2025
f02a4de
MLE-22526 Bumping to Spring 6 and Java 17
rjrudin Jun 12, 2025
a29e856
Merge pull request #743 from marklogic/feature/22526-spring-6
rjrudin Jun 13, 2025
a8761bb
MLE-22458 More Black Duck fixes
rjrudin Jun 13, 2025
643ecfe
Merge pull request #745 from marklogic/feature/22458-black-duck
rjrudin Jun 13, 2025
dc1321a
MLE-22458 More Black Duck fixes
rjrudin Jun 13, 2025
ee57da6
Merge pull request #746 from marklogic/feature/22458-black-duck
rjrudin Jun 13, 2025
46e6bf5
MLE-22458 More Black Duck fixes
rjrudin Jun 13, 2025
1562e7d
Merge pull request #747 from marklogic/feature/22458-black-duck
rjrudin Jun 13, 2025
6858274
MLE-14474 Can now provide a passphrase for a host certificate
rjrudin Jun 13, 2025
368b8ac
Merge pull request #748 from marklogic/feature/14474-host-certificate…
rjrudin Jun 16, 2025
7708e0d
MLE-22604 Disabling host certificate passphrase tests unless ML 12
rjrudin Jun 17, 2025
2683d03
Merge pull request #750 from marklogic/feature/22604-disable-12-tests
rjrudin Jun 17, 2025
b87bb47
MLE-22604 Refactored ml-app-deployer tests to use marklogic-junit5
rjrudin Jun 17, 2025
d36a6c8
Merge pull request #751 from marklogic/feature/22604-refactor-fragment
rjrudin Jun 20, 2025
914c808
MLE-12345 Bumping version to 6.0-SNAPSHOT
rjrudin Jun 21, 2025
3e37d09
MLE-18712 Can now authenticate with an OAuth token
rjrudin Jun 21, 2025
5824fbf
Merge pull request #753 from marklogic/feature/version
rjrudin Jun 25, 2025
4ac5617
Merge pull request #754 from marklogic/feature/18712-oauth
rjrudin Jun 25, 2025
b52a424
MLE-20741 Forest replica creation now considers host zone
rjrudin Jun 11, 2025
80dfbef
Merge pull request #755 from marklogic/feature/20741-forest-host-zone
rjrudin Jul 3, 2025
523bd38
MLE-20741 Now accounting for zones when creating forest replicas
rjrudin Jul 7, 2025
8d69d19
Merge pull request #756 from marklogic/feature/20741-consolidate
rjrudin Jul 7, 2025
83392c4
MLE-20741 Zone-aware replicas created when forests on single host
rjrudin Jul 7, 2025
c15fd70
Merge pull request #757 from marklogic/feature/20741-forests-on-one-host
rjrudin Jul 7, 2025
353ee3f
MLE-22812 Refactor: Created ForestPlanner
rjrudin Jul 7, 2025
5c6157d
Merge pull request #758 from marklogic/feature/22812-print-forest-plan
rjrudin Jul 8, 2025
4bc5ad2
MLE-22812 Refactor: Only configuring replicas in one place
rjrudin Jul 7, 2025
3b1b09b
Merge pull request #759 from marklogic/feature/22812-use-cfrc
rjrudin Jul 8, 2025
cce529c
MLE-22182 Fixing bug with same zone hosts
rjrudin Jul 8, 2025
7768451
Merge pull request #760 from marklogic/feature/22812-more-testing
rjrudin Jul 8, 2025
bc3e010
MLE-22651 Updated copyright
rjrudin Jul 8, 2025
07be432
Merge pull request #761 from marklogic/feature/22651-copyright
rjrudin Jul 8, 2025
be2fa43
MLE-12345 Bumping commons-lang
rjrudin Jul 14, 2025
b3009cd
Merge pull request #763 from marklogic/feature/commons-lang
rjrudin Jul 14, 2025
7f8b4d2
MLE-12345 Removing OBE CLI prototype
rjrudin Jul 14, 2025
482d03d
Merge pull request #764 from marklogic/feature/jcommander
rjrudin Jul 14, 2025
a183b4e
MLE-22919 Bumped Jackson to 2.19.0
rjrudin Jul 14, 2025
6ad10d7
Merge pull request #765 from marklogic/feature/22919-jackson
rjrudin Jul 14, 2025
a371d8d
MLE-23094 Migrated marklogic-data-movement-components code to here
rjrudin Jul 23, 2025
bdf60f3
Merge pull request #767 from marklogic/feature/23094-data-components
rjrudin Jul 23, 2025
2f036a6
MLE-23095 Migrated MlcpBean class
rjrudin Jul 23, 2025
4a336c4
Merge pull request #768 from marklogic/feature/23095-mlcp-util
rjrudin Jul 23, 2025
c13e13f
MLE-23174 Using retry interceptor to fix intermittent failures
rjrudin Jul 25, 2025
397ea14
Merge pull request #769 from marklogic/feature/23174-retry
rjrudin Jul 28, 2025
3a28188
MLE-23174 Hiding retry capability for now
rjrudin Jul 28, 2025
3d521a9
Merge pull request #770 from marklogic/feature/23174-hide-retry
rjrudin Jul 29, 2025
1b74cd6
MLE-22604 Converting Jenkinsfile to use Docker
rjrudin Jun 16, 2025
25676e1
Merge pull request #771 from marklogic/feature/22604-jenkinsfile-docker
rjrudin Jul 29, 2025
2642153
MLE-22604 Test fixes required by MarkLogic 12
rjrudin Jul 29, 2025
93372ae
Merge pull request #772 from marklogic/feature/test-fixes
rjrudin Jul 29, 2025
37960bf
MLE-12345 Bumped Java Client and Spring versions
rjrudin Jul 30, 2025
4f01d96
Merge pull request #773 from marklogic/feature/java-client
rjrudin Jul 30, 2025
0b2be23
MLE-23304 Removed deprecated items
rjrudin Jul 31, 2025
a4dc817
Merge pull request #774 from marklogic/feature/deprecations
rjrudin Jul 31, 2025
a3882e2
MLE-22591 Bumped a couple dependencies and updated NOTICE
rjrudin Jul 31, 2025
9a9faba
Merge pull request #775 from marklogic/feature/release-prep
rjrudin Jul 31, 2025
a7951a0
MLE-22591 Bumped junit to 5.13.4
rjrudin Aug 1, 2025
a085a39
Merge pull request #776 from marklogic/feature/junit-bump
rjrudin Aug 1, 2025
ccc5193
MLE-22591 Bumped example projects to 6.0.0
rjrudin Aug 1, 2025
a5dd7de
Merge pull request #777 from marklogic/feature/version-bump
rjrudin Aug 1, 2025
ab4ed47
MLE-22591 Bumped to 6.0.0
rjrudin Aug 1, 2025
3e98d60
Merge branch 'master' into release/6.0.0
rjrudin Aug 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
MARKLOGIC_IMAGE=ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi-rootless:latest-12
MARKLOGIC_LOGS_PATH=./docker/marklogic/logs
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ out
gradle-local.properties
snyk
.vscode
docker
dep.txt
2 changes: 1 addition & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# Each line is a file pattern followed by one or more owners.

# These owners will be the default owners for everything in the repo.
* @anu3990 @billfarber @rjrudin
* @anu3990 @billfarber @rjrudin @stevebio
64 changes: 39 additions & 25 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,9 @@

Here's how to get started with making contributions to this project:

1. Install a JDK (Java Development Kit) version 9 or higher. (If you're working with ml-gradle 2.x or 3.x, you only need Java 8.)
1. Install a JDK (Java Development Kit) version 8 or higher.
1. Clone this repository.
1. Assuming you want to use Eclipse for development, run "gradlew eclipse" (or "gradle eclipse" if you have Gradle installed locally). This will generate Eclipse project files.
1. Import your repository folder as a new project in Eclipse. Everything should compile successfully and you should be good to go.

To make contributions, check out the issues in the project and follow the below, subject-to-change process:

1. For a given issue, create a local branch with the name of the issue (I'll use issue #9 as an example): git checkout issue-9
1. Track the local branch to a remote one: git push -u origin issue-9
1. Do your work on that local feature branch, ideally making small commits. Push to remote as often as you'd like.
1. When you're ready, submit a pull request from your feature branch for review.

Currently, I don't have any tests for ml-gradle, as most of the interesting functionality is in ml-app-deployer, where
there are many automated tests. I also haven't found an easy way to test tasks or the MarkLogicPlugin class. So for the
time being, don't worry about automated tests.
1. Import your repository folder as a new project into your IDE. Everything should compile successfully and you should be good to go.

## Formatting

Expand All @@ -25,14 +13,17 @@ either install that or follow the guidelines set in the file.

## How to test ml-gradle changes

This part is a little tricky - in order to really test ml-gradle, you need to build it and publish it to your local
Maven repository (~/.m2) and then reference it in a separate Gradle file. Fortunately, the ./examples directory in this
project has many projects that you can use for testing out your change to ml-gradle. Here's how to go about doing so:
In order to test ml-gradle as a Gradle plugin, you need to build it and publish it to your local
Maven repository (~/.m2) and then reference it in a separate Gradle file. The `./examples` directory in this
project has many projects that you can use for testing out your change to ml-gradle, with the
`./examples/local-testing-project` being intended for testing local changes to ml-gradle.

1. Make your changes to the ml-gradle source code
1. Run "gradle -Pversion=issue-number publishToMavenLocal" (the version can be anything you want)
To build and publish ml-gradle locally, perform the following steps:

Then pick a project under ./examples, and replace the "plugins" block with the following code:
1. Make your changes to the ml-gradle source code.
1. Run `gradle publishToMavenLocal`.

Then pick a project under `./examples`, and replace the `plugins` block with the following code:

buildscript {
repositories {
Expand All @@ -45,15 +36,38 @@ Then pick a project under ./examples, and replace the "plugins" block with the f
}
apply plugin: "com.marklogic.ml-gradle"

The above unfortunately has to be done because while the "plugins" DSL in Gradle is very concise,
it can't be used for finding plugins in your local Maven repository. So we have to
replace it with the much more verbose syntax. Of course, after you're done testing with this, change the Gradle file
back to just use the plugins DSL.
The above has to be done because while the "plugins" DSL in Gradle is very concise, it can't be used for finding
plugins in your local Maven repository.

After making the above changes, when you run any Gradle task, Gradle will use the ml-gradle plugin that you published
to your local Maven repository.

You can then repeat this process as often as you want - i.e. make more changes in the ml-gradle source, publish a new
copy to your local Maven repo, and test it in the project you chose.

For a real example, see the "local-testing-project" project in the examples directory.
## Automated Testing

The automated tests for each of the three subprojects require access to a MarkLogic server, and the ml-javaclient-util &
ml-gradle subprojects also require a test application deployed to it. To deploy that
application in a new Docker container, run the following commands:

```
docker compose up -d --build
cd test-app
../gradlew -i mlDeploy
cd ..
```

Once the test server and application are set up, you are ready to run the tests for each subproject. Those tests can be
run in multiple ways, but the easiest is to simply use Gradle on the command-line as shown below.

```
./gradlew ml-javaclient-util:test
./gradlew ml-app-deployer:test
./gradlew ml-gradle:test
```

You can also run all tests via:

./gradlew test

118 changes: 60 additions & 58 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,74 +1,76 @@
@Library('shared-libraries') _

def runTests(String mlVersion, String javaVersion){
copyRPM 'Release',mlVersion
setUpML '$WORKSPACE/xdmp/src/Mark*.rpm'
sh label:'test', script: '''#!/bin/bash
export JAVA_HOME=$'''+javaVersion+'''
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
cd $WORKSPACE/ml-gradle/ml-javaclient-util-test-app
echo "mlPassword=admin" > gradle-local.properties
../gradlew -i :mlDeploy
cd $WORKSPACE/ml-gradle/
./gradlew ml-javaclient-util:test || true
./gradlew ml-app-deployer:test || true
./gradlew ml-gradle:test || true
def setupDockerMarkLogic(String image) {
sh label:'mlsetup', script: '''#!/bin/bash
echo "Removing any running MarkLogic server and clean up MarkLogic data directory"
sudo /usr/local/sbin/mladmin remove
sudo /usr/local/sbin/mladmin cleandata
cd ml-gradle
docker-compose down -v || true
docker volume prune -f
echo "Using image: "'''+image+'''
docker pull '''+image+'''
MARKLOGIC_IMAGE='''+image+''' MARKLOGIC_LOGS_PATH=/tmp/marklogic/logs docker compose up -d --build
echo "Waiting for MarkLogic server to initialize."
sleep 60s
'''
junit '**/build/**/*.xml'
}

pipeline{
agent none
def tearDownDocker() {
sh label:'tearDownDocker', script: '''#!/bin/bash
cd ml-gradle
docker compose down -v || true
docker volume prune -f
sudo rm -rf /tmp/marklogic/logs
'''
}

pipeline {
agent {label 'devExpLinuxPool'}

options {
checkoutToSubdirectory 'ml-gradle'
buildDiscarder logRotator(artifactDaysToKeepStr: '7', artifactNumToKeepStr: '', daysToKeepStr: '30', numToKeepStr: '')
buildDiscarder logRotator(artifactDaysToKeepStr: '7', artifactNumToKeepStr: '', daysToKeepStr: '7', numToKeepStr: '5')
}
environment{
JAVA11_HOME_DIR="/home/builder/java/jdk-11.0.20"
JAVA8_HOME_DIR="/home/builder/java/openjdk-1.8.0-262"
JAVA17_HOME_DIR="/home/builder/java/jdk-17.0.2"
JAVA21_HOME_DIR="/home/builder/java/jdk-21.0.1"

environment {
JAVA_HOME_DIR="/home/builder/java/jdk-17.0.2"
GRADLE_DIR =".gradle"
DMC_USER = credentials('MLBUILD_USER')
DMC_PASSWORD = credentials('MLBUILD_PASSWORD')
}
stages{
stage('tests-java11'){
agent {label 'devExpLinuxPool'}
steps{
runTests('11.3.1','JAVA11_HOME_DIR')
}
}
stage('regressions'){
when {
anyOf {
branch 'dev'
branch 'master'
}
beforeAgent true
}
parallel{
stage('tests-java8'){
agent {label 'devExpLinuxPool'}
steps{
runTests('11.3.1','JAVA8_HOME_DIR')
}
}
stage('tests-java17'){
agent {label 'devExpLinuxPool'}
steps{
runTests('11.3.1','JAVA17_HOME_DIR')
}
}
stage('tests-java21'){
agent {label 'devExpLinuxPool'}
steps{
runTests('11.3.1','JAVA21_HOME_DIR')
}
}

stages {

stage('tests') {
steps {
cleanupDocker()
setupDockerMarkLogic("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi-rootless:latest-12")
sh label:'test', script: '''#!/bin/bash
# 'set -e' causes the script to fail if any command fails.
set -e
export JAVA_HOME=$JAVA_HOME_DIR
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
cd ml-gradle
cd test-app
../gradlew -i mlDeploy
cd ..
# Running these separately to decrease likelihood of connection resets.
./gradlew ml-javaclient-util:test || true
./gradlew ml-app-deployer:test || true
./gradlew ml-gradle:test || true
'''
junit '**/build/**/*.xml'
}
post {
always {
tearDownDocker()
cleanupDocker()
}
}
}

stage('publish'){
agent {label 'devExpLinuxPool'}
when {
Expand All @@ -81,7 +83,7 @@ pipeline{
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
cp ~/.gradle/gradle.properties $GRADLE_USER_HOME;
cd ml-gradle
./gradlew publish
./gradlew publish
'''
}
}
Expand Down
Loading