Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: fuinorg/utils4j
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.10.1
Choose a base ref
...
head repository: fuinorg/utils4j
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.11.0
Choose a head ref

Commits on Dec 29, 2019

  1. Copy the full SHA
    f5b9c75 View commit details
  2. Updated dependencies

    michael-schnell committed Dec 29, 2019
    Copy the full SHA
    b0523a3 View commit details

Commits on Dec 30, 2019

  1. Fixed Sonar issues

    michael-schnell committed Dec 30, 2019
    Copy the full SHA
    03a9e4e View commit details
  2. Updated Maven version

    michael-schnell committed Dec 30, 2019
    Copy the full SHA
    a5ba657 View commit details
  3. Fixed test

    michael-schnell committed Dec 30, 2019
    Copy the full SHA
    cc69fe6 View commit details
  4. Fixed typo

    michael-schnell committed Dec 30, 2019
    Copy the full SHA
    d4692f2 View commit details
  5. Copy the full SHA
    fcd1e8b View commit details

Commits on Jan 1, 2020

  1. Fixed JavaDoc

    michael-schnell committed Jan 1, 2020
    Copy the full SHA
    4344e0d View commit details

Commits on Jan 3, 2020

  1. Copy the full SHA
    7541e6a View commit details
  2. Migrated to Java 11

    michael-schnell committed Jan 3, 2020
    Copy the full SHA
    7721810 View commit details
  3. Copy the full SHA
    020cefc View commit details
  4. Copy the full SHA
    75f6a02 View commit details
  5. Copy the full SHA
    af32c01 View commit details
  6. Copy the full SHA
    b47c566 View commit details
  7. Copy the full SHA
    0e0e3fb View commit details
  8. Fixed JDK badge

    michael-schnell committed Jan 3, 2020
    Copy the full SHA
    9c0ae2b View commit details
  9. doc

    michael-schnell committed Jan 3, 2020
    Copy the full SHA
    c6c4854 View commit details
  10. Copy the full SHA
    3aee079 View commit details
  11. Added hint for jaxb

    michael-schnell committed Jan 3, 2020
    Copy the full SHA
    475e571 View commit details
  12. Added warning

    michael-schnell committed Jan 3, 2020
    Copy the full SHA
    de9f894 View commit details

Commits on Jan 4, 2020

  1. Copy the full SHA
    cd3bac8 View commit details
  2. Added jdeps plugin

    michael-schnell committed Jan 4, 2020
    Copy the full SHA
    ea398a6 View commit details
  3. Cleaned up plugins

    michael-schnell committed Jan 4, 2020
    Copy the full SHA
    9d782f4 View commit details
  4. Added debug

    michael-schnell committed Jan 4, 2020
    Copy the full SHA
    f849c47 View commit details
  5. Revert "Added debug"

    This reverts commit f849c47.
    michael-schnell committed Jan 4, 2020
    Copy the full SHA
    2de01d9 View commit details

Commits on Feb 1, 2020

  1. Bump assertj-core from 3.14.0 to 3.15.0

    Bumps [assertj-core](https://github.com/joel-costigliola/assertj-core) from 3.14.0 to 3.15.0.
    - [Release notes](https://github.com/joel-costigliola/assertj-core/releases)
    - [Commits](assertj/assertj@assertj-core-3.14.0...assertj-core-3.15.0)
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Feb 1, 2020
    Copy the full SHA
    c3161b3 View commit details
  2. Bump equalsverifier from 3.1.11 to 3.1.12

    Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 3.1.11 to 3.1.12.
    - [Release notes](https://github.com/jqno/equalsverifier/releases)
    - [Changelog](https://github.com/jqno/equalsverifier/blob/master/CHANGELOG.md)
    - [Commits](jqno/equalsverifier@equalsverifier-3.1.11...equalsverifier-3.1.12)
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Feb 1, 2020
    Copy the full SHA
    a66bb1b View commit details
  3. Bump junit from 4.12 to 4.13

    Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.
    - [Release notes](https://github.com/junit-team/junit4/releases)
    - [Changelog](https://github.com/junit-team/junit4/blob/master/doc/ReleaseNotes4.12.md)
    - [Commits](junit-team/junit4@r4.12...r4.13)
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Feb 1, 2020
    Copy the full SHA
    6c5eea9 View commit details
  4. Merge pull request #3 from fuinorg/dependabot/maven/junit-junit-4.13

    Bump junit from 4.12 to 4.13
    michael-schnell authored Feb 1, 2020
    Copy the full SHA
    c13e5fd View commit details
  5. Merge pull request #2 from fuinorg/dependabot/maven/nl.jqno.equalsver…

    …ifier-equalsverifier-3.1.12
    
    Bump equalsverifier from 3.1.11 to 3.1.12
    michael-schnell authored Feb 1, 2020
    Copy the full SHA
    b191121 View commit details
  6. Merge pull request #1 from fuinorg/dependabot/maven/org.assertj-asser…

    …tj-core-3.15.0
    
    Bump assertj-core from 3.14.0 to 3.15.0
    michael-schnell authored Feb 1, 2020
    Copy the full SHA
    8ce49b5 View commit details

Commits on Mar 1, 2020

  1. Bump jakarta.xml.bind-api from 2.3.2 to 2.3.3

    Bumps jakarta.xml.bind-api from 2.3.2 to 2.3.3.
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Mar 1, 2020
    Copy the full SHA
    846679c View commit details
  2. Merge pull request #4 from fuinorg/dependabot/maven/jakarta.xml.bind-…

    …jakarta.xml.bind-api-2.3.3
    
    Bump jakarta.xml.bind-api from 2.3.2 to 2.3.3
    michael-schnell authored Mar 1, 2020
    Copy the full SHA
    243426e View commit details

Commits on Apr 1, 2020

  1. Bump equalsverifier from 3.1.12 to 3.1.13

    Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 3.1.12 to 3.1.13.
    - [Release notes](https://github.com/jqno/equalsverifier/releases)
    - [Changelog](https://github.com/jqno/equalsverifier/blob/master/CHANGELOG.md)
    - [Commits](jqno/equalsverifier@equalsverifier-3.1.12...equalsverifier-3.1.13)
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Apr 1, 2020
    Copy the full SHA
    deb6c02 View commit details
  2. Bump jandex from 2.1.2.Final to 2.1.3.Final

    Bumps jandex from 2.1.2.Final to 2.1.3.Final.
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Apr 1, 2020
    Copy the full SHA
    5dcca74 View commit details

Commits on Apr 2, 2020

  1. Merge pull request #5 from fuinorg/dependabot/maven/nl.jqno.equalsver…

    …ifier-equalsverifier-3.1.13
    
    Bump equalsverifier from 3.1.12 to 3.1.13
    michael-schnell authored Apr 2, 2020
    Copy the full SHA
    e063a19 View commit details
  2. Merge pull request #6 from fuinorg/dependabot/maven/org.jboss-jandex-…

    …2.1.3.Final
    
    Bump jandex from 2.1.2.Final to 2.1.3.Final
    michael-schnell authored Apr 2, 2020
    Copy the full SHA
    185a49d View commit details

Commits on May 1, 2020

  1. Bump jaxb-runtime from 2.3.2 to 2.3.3

    Bumps jaxb-runtime from 2.3.2 to 2.3.3.
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored May 1, 2020
    Copy the full SHA
    f29a4c6 View commit details
  2. Merge pull request #7 from fuinorg/dependabot/maven/org.glassfish.jax…

    …b-jaxb-runtime-2.3.3
    
    Bump jaxb-runtime from 2.3.2 to 2.3.3
    michael-schnell authored May 1, 2020
    Copy the full SHA
    9819e52 View commit details

Commits on May 2, 2020

  1. Copy the full SHA
    4ff134b View commit details
  2. Copy the full SHA
    631efa2 View commit details
  3. Fixed source plugin

    michael-schnell committed May 2, 2020
    Copy the full SHA
    344bae4 View commit details

Commits on Jun 1, 2020

  1. Bump equalsverifier from 3.1.13 to 3.3

    Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 3.1.13 to 3.3.
    - [Release notes](https://github.com/jqno/equalsverifier/releases)
    - [Changelog](https://github.com/jqno/equalsverifier/blob/master/CHANGELOG.md)
    - [Commits](jqno/equalsverifier@equalsverifier-3.1.13...equalsverifier-3.3)
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Jun 1, 2020
    Copy the full SHA
    4237694 View commit details
  2. Bump assertj-core from 3.15.0 to 3.16.1

    Bumps [assertj-core](https://github.com/joel-costigliola/assertj-core) from 3.15.0 to 3.16.1.
    - [Release notes](https://github.com/joel-costigliola/assertj-core/releases)
    - [Commits](assertj/assertj@assertj-core-3.15.0...assertj-core-3.16.1)
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Jun 1, 2020
    Copy the full SHA
    fd44ef6 View commit details
  3. Bump commons-io from 2.6 to 2.7

    Bumps commons-io from 2.6 to 2.7.
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Jun 1, 2020
    Copy the full SHA
    ffd8812 View commit details

Commits on Jun 2, 2020

  1. Merge pull request #8 from fuinorg/dependabot/maven/nl.jqno.equalsver…

    …ifier-equalsverifier-3.3
    
    Bump equalsverifier from 3.1.13 to 3.3
    michael-schnell authored Jun 2, 2020
    Copy the full SHA
    6b09913 View commit details
  2. Merge pull request #9 from fuinorg/dependabot/maven/org.assertj-asser…

    …tj-core-3.16.1
    
    Bump assertj-core from 3.15.0 to 3.16.1
    michael-schnell authored Jun 2, 2020
    Copy the full SHA
    3375614 View commit details
  3. Merge pull request #10 from fuinorg/dependabot/maven/commons-io-commo…

    …ns-io-2.7
    
    Bump commons-io from 2.6 to 2.7
    michael-schnell authored Jun 2, 2020
    Copy the full SHA
    5ce3da0 View commit details

Commits on Jul 1, 2020

  1. Bump equalsverifier from 3.3 to 3.4.1

    Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 3.3 to 3.4.1.
    - [Release notes](https://github.com/jqno/equalsverifier/releases)
    - [Changelog](https://github.com/jqno/equalsverifier/blob/main/CHANGELOG.md)
    - [Commits](jqno/equalsverifier@equalsverifier-3.3...equalsverifier-3.4.1)
    
    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
    dependabot-preview[bot] authored Jul 1, 2020
    Copy the full SHA
    ea80f79 View commit details

Commits on Jul 8, 2020

  1. Merge pull request #11 from fuinorg/dependabot/maven/nl.jqno.equalsve…

    …rifier-equalsverifier-3.4.1
    
    Bump equalsverifier from 3.3 to 3.4.1
    michael-schnell authored Jul 8, 2020
    Copy the full SHA
    16e7da8 View commit details
51 changes: 29 additions & 22 deletions .mvn/wrapper/MavenWrapperDownloader.java
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,34 +1,31 @@
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
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.
*/

* Copyright 2007-present the original author or authors.
*
* 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.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;

public class MavenWrapperDownloader {

private static final String WRAPPER_VERSION = "0.5.6";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";

/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
@@ -76,13 +73,13 @@ public static void main(String args[]) {
}
}
}
System.out.println("- Downloading from: : " + url);
System.out.println("- Downloading from: " + url);

File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if(!outputFile.getParentFile().exists()) {
if(!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
@@ -98,6 +95,16 @@ public static void main(String args[]) {
}

private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
Binary file modified .mvn/wrapper/maven-wrapper.jar
100755 → 100644
Binary file not shown.
3 changes: 2 additions & 1 deletion .mvn/wrapper/maven-wrapper.properties
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
4 changes: 2 additions & 2 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pipeline {
agent any
tools {
jdk 'Oracle JDK 8 (latest)'
jdk 'OpenJDK 11 (latest)'
}
stages {
stage ('Initialize') {
@@ -15,7 +15,7 @@ pipeline {
withCredentials( [
string(credentialsId: 'sonar_login', variable: 'SONAR_LOGIN')
] ) {
sh "./mvnw clean deploy jacoco:report sonar:sonar -U -B -P sonatype-oss-release -s /private/jenkins/settings.xml -Dsonar.organization=fuinorg -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${SONAR_LOGIN}"
sh "./mvnw clean deploy -U -B -P sonatype-oss-release -s /private/jenkins/settings.xml"
}
}
}
22 changes: 17 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -8,9 +8,9 @@ A small Java library that contains several helpful utility classes.
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.fuin/utils4j/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.fuin/utils4j/)
[![Javadocs](https://www.javadoc.io/badge/org.fuin/utils4j.svg)](https://www.javadoc.io/doc/org.fuin/utils4j)
[![LGPLv3 License](http://img.shields.io/badge/license-LGPLv3-blue.svg)](https://www.gnu.org/licenses/lgpl.html)
[![Java Development Kit 1.8](https://img.shields.io/badge/JDK-1.8-green.svg)](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
[![Java Development Kit 11](https://img.shields.io/badge/JDK-11-green.svg)](https://openjdk.java.net/projects/jdk/11/)

**JDK 1.8 for releases >= 0.9.0 / JDK 1.4.2 for releases up to 0.8.0**
**Java 11 for releases >= 0.11.0** / Java 8 <= 0.10.1 / Java 1.4.2 <= 0.8.0

* * *

@@ -23,7 +23,7 @@ A small Java library that contains several helpful utility classes.
* [Easy file locking](#easy-file-locking)
* [Properties file preferences](#properties-file-preferences)
* [JAXB CDATA Stream Writer](#jaxb-cdata-stream-writer)
* [Wait for code to finish](#wait-for-code-to-finish)
* [Wait for code to finish](#wait-for-code-to-finish) (Deprecated in favour of [Awaitility](https://github.com/awaitility/awaitility))
* [Find all JARs and classes in the classpath](#find-all-jars-and-classes-in-the-classpath)
* [Analyze classes in the classpath with Jandex](#analyze-classes-in-the-classpath-with-jandex)

@@ -130,9 +130,9 @@ public final class MyClassWithCData {

}
```
If you just need to unmarshal a CDATA section, using the above annotation is all you need to do.
:information_source: If you just need to **unmarshal** (XML to Java) a CDATA section, using the above annotation is all you need to do.

If you need to marshal a class with CDATA content you need to use the CDataXmlStreamWriter:
:warning: If you need to **marshal** (Java to XML) a class with CDATA content you must use the CDataXmlStreamWriter in addition:
```Java
// Create writers
final StringWriter writer = new StringWriter();
@@ -161,9 +161,21 @@ System.out.println(copy.getContent());

A full example can be found here: [CDataJaxbExample.java](https://github.com/fuinorg/utils4j/blob/master/src/test/java/org/fuin/utils4j/examples/CDataJaxbExample.java)

**Caution** - You must explicitly add the xml.bind-api dependency to your POM if you want to use this feature, because it's defined as optional here.

```xml
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.2</version>
</dependency>
```


### Wait for code to finish

> :warning: Deprecated in favour of [Awaitility](https://github.com/awaitility/awaitility)
The [WaitHelper](https://github.com/fuinorg/utils4j/blob/master/src/main/java/org/fuin/utils4j/WaitHelper.java) class supports waiting for some condition.

Example of waiting for a function to finish without an exception:
34 changes: 29 additions & 5 deletions mvnw
Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@
# ----------------------------------------------------------------------------

# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
@@ -114,7 +114,6 @@ if $mingw ; then
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi

if [ -z "$JAVA_HOME" ]; then
@@ -212,7 +211,11 @@ else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
@@ -221,22 +224,38 @@ else
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi

if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
wget "$jarUrl" -O "$wrapperJarPath"
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
curl -o "$wrapperJarPath" "$jarUrl"
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi

else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
@@ -277,6 +296,11 @@ if $cygwin; then
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi

# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS

WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain

exec "$JAVACMD" \
Loading