From 05d4e32c0d2fdd10badf5c4eb15602944b4fc80f Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Wed, 26 Jun 2019 12:00:26 +0200 Subject: [PATCH 1/5] docs(Build): Adding build badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8b873f1..e43d16e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ log-parser-plugin ================= +[![Build Status](https://ci.jenkins.io/buildStatus/icon?job=Plugins%2Flog-parser-plugin%2Fmaster)](https://ci.jenkins.io/blue/organizations/jenkins/Plugins%2Flog-parser-plugin/branches/) + Parses the console output and highlights error/warning/info lines. http://wiki.jenkins-ci.org/display/JENKINS/Log+Parser+Plugin From e16a72e2b9bb91365d4bf416d481ad9a584ba3af Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Wed, 26 Jun 2019 13:24:43 +0200 Subject: [PATCH 2/5] refactor(Build): Switch to gitflow for releasing --- CONTRIBUTING.md => .github/CONTRIBUTING.md | 116 ++++---- .github/FUNDING.yml | 8 + .github/ISSUE_TEMPLATE/bug_report.md | 48 ++++ .github/ISSUE_TEMPLATE/feature_request.md | 17 ++ .github/PULL_REQUEST_TEMPLATE.md | 35 +++ .mvn/wrapper/MavenWrapperDownloader.java | 117 ++++++++ .mvn/wrapper/maven-wrapper.properties | 2 + Dockerfile | 3 +- Jenkinsfile_dev | 48 ++++ RELEASE.md | 13 + docker-compose.yaml => docker-compose.yml | 0 mvnw | 310 +++++++++++++++++++++ mvnw.cmd | 182 ++++++++++++ pom.xml | 33 ++- release.sh | 9 + 15 files changed, 889 insertions(+), 52 deletions(-) rename CONTRIBUTING.md => .github/CONTRIBUTING.md (62%) create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java create mode 100644 .mvn/wrapper/maven-wrapper.properties create mode 100644 Jenkinsfile_dev create mode 100644 RELEASE.md rename docker-compose.yaml => docker-compose.yml (100%) create mode 100755 mvnw create mode 100755 mvnw.cmd create mode 100755 release.sh diff --git a/CONTRIBUTING.md b/.github/CONTRIBUTING.md similarity index 62% rename from CONTRIBUTING.md rename to .github/CONTRIBUTING.md index aca9509..4015b7a 100644 --- a/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,27 +1,55 @@ -# Development Ideology +### Submitting Pull Requests -Truths which we believe to be self-evident (adapted from [TextSecure's](https://github.com/WhisperSystems/TextSecure/blob/master/contributing.md)) +We'd love for you to contribute to our source code and to make this package even better than it is +today! Here are the guidelines we'd like you to follow: -1. **The answer is not more options.** If you feel compelled to add a preference that's exposed to the user, it's very possible you've made a wrong turn somewhere. -2. **There are no power users.** The idea that some users "understand" concepts better than others has proven to be, for the post part, false. If anything, "power users" are more dangerous than the test, and we should avoid exposing dangerous functionality to them. -3. **If it's "like PGP," it's wrong.** PGP is our guide for what not to do. -4. **It's an asynchronous world.** We wary of anything that is anti-asynchronous: ACKs, protocol confirmations, or anly protocol-level "advisory" message. -5. **There is no such thing as time**. Protocol ideas that require synchonized clocks are doomed to failure. + - [Issues and Bugs](#issue) + - [Feature Requests](#feature) + - [Coding Rules](#rules) + - [Commit Message Guidelines](#commit) -# Code Style Guidelines +## Found an Issue? -## Resulting from long experience +If you find a bug in the source code or a mistake in the documentation, you can help us by +submitting an issue to our GitHub Repository. Even better you can submit a Pull Request +with a fix. But first search if the issue is already described! + +If not create a new issue: + +* Tell about your environment: + * node version + * nativescript version + * used platform and versionÍ +* Describe your issue + * describe your steps leading to the issue + * attach error logs or screenshots + * if possible provide test case or screenshots + +## Want a Feature? + +You can request a new feature by submitting an issue to our [GitHub Repository][github]. + +Please follow these basic steps to simplify pull request reviews - if you don't you'll probably just be asked to anyway.** + +* Please rebase your branch against the current develop, use the **develop** for pull requests +* Please ensure that the test suite passes **and** that code is lint free before submitting a PR by running: + * ```./mvnw test``` + * Verify plugin is working via docker test ```docker compose up``` +* If you've added new functionality, **please** include tests which validate its behaviour +* Make reference to possible [issues](https://github.com/jenkinsci/log-parser-plugin/issues) on PR comment + +### Resulting from long experience * To the largest extent possible, all fields shall be private. Use an IDE to generate the getters and setters. * If a class has more than one `volatile` member field, it is probable that there are subtle race conditions. Please consider where appropriate encapsulation of the multiple fields into an immutable value object replace the multiple `volatile` member fields with a single `volatile` reference to the value object (or perhaps better yet an `AtomicReference` to allow for `compareAndSet` - if compare-and-set logic is appropriate). * If it is `Serializable` it shall have a `serialVersionUID` field. Unless code has shipped to users, the initial value of the `serialVersionUID` field shall be `1L`. -## Indentation +### Indentation 1. **Use spaces.** Tabs are banned. 2. **Java blocks are 4 spaces.** JavaScript blocks as for Java. **XML nesting is 2 spaces** -## Field Naming Conventions +### Field Naming Conventions 1. "hungarian"-style notation is banned (i.e. instance variable names preceded by an 'm', etc) 2. If the field is `static final` then it shall be named in `ALL_CAPS_WITH_UNDERSCORES`. @@ -31,20 +59,20 @@ Truths which we believe to be self-evident (adapted from [TextSecure's](https:// 6. It is acceptable to use `e` for the exception in a `try...catch` block. 7. You shall never use `l` (i.e. lower case `L`) as a variable name. -## Line Length +### Line Length To the greatest extent possible, please wrap lines to ensure that they do not exceed 120 characters. -## Maven POM file layout +### Maven POM file layout * The `pom.xml` file shall use the sequencing of elements as defined by the `mvn tidy:pom` command (after any indenting fix-up). * If you are introducing a property to the `pom.xml` the property must be used in at least two distinct places in the model or a comment justifying the use of a property shall be provided. * If the `` is in the groupId `org.apache.maven.plugins` you shall omit the ``. * All `` entries shall have an explicit version defined unless inherited from the parent. -## Java code style +### Java code style -### Modifiers +#### Modifiers * For fields, the order is: - public / protected / private @@ -67,10 +95,10 @@ To the greatest extent possible, please wrap lines to ensure that they do not ex - final - strictfp -### Imports +#### Imports * For code in `src/main`: - - `*` imports are banned. + - `*` imports are banned. - `static` imports are strongly discouraged. - `static` `*` imports are discouraged unless code readability is significantly enhanced and the import is restricted to a single class. * For code in `src/test`: @@ -78,12 +106,12 @@ To the greatest extent possible, please wrap lines to ensure that they do not ex - `static` imports of anything other than JUnit classes and Hamcrest matchers are strongly discouraged. - `import static org.hamcrest.Matchers.*`, `import static org.junit.Assert.*` are expressly permitted. Any other `static` `*` imports are discouraged unless code readability is significantly enhanced and the import is restricted to a single class. -### Annotation placement +#### Annotation placement * Annotations on classes, interfaces, annotations, enums, methods, fields and local variables shall be on the lines immediately preceding the line where modifier(s) (e.g. `public` / `protected` / `private` / `final`, etc) would be appropriate. * Annotations on method arguments shall, to the largest extent possible, be on the same line as the method argument (and, if present, before the `final` modifier) -### Javadoc +#### Javadoc * Each class shall have a Javadoc comment. * Each field shall have a Javadoc comment. @@ -101,16 +129,16 @@ To the greatest extent possible, please wrap lines to ensure that they do not ex * The count of widgets */ private int widgetCount; - + /** * Returns the count of widgets. * - * @return the count of widgets. + * @return the count of widgets. */ public int getWidgetCount() { return widgetCount; } - + /** * Sets the count of widgets. * @@ -122,31 +150,19 @@ To the greatest extent possible, please wrap lines to ensure that they do not ex ``` * When adding a new class / interface / etc, it shall have a `@since` doc comment. The version shall be `FIXME` to indicate that the person merging the change should replace the `FIXME` with the next release version number. The fields and methods within a class/interface (but not nested classes) will be assumed to have the `@since` annotation of their class/interface unless a different `@since` annotation is present. -### IDE Configuration - -* Eclipse, by and large the IDE defaults are acceptable with the following changes: - - Tab policy to `Spaces only` - - Indent statements within `switch` body - - Maximum line width `120` - - Line wrapping, ensure all to `wrap where necessary` - - Organize imports alphabetically, no grouping -* NetBeans, by and large the IDE defaults are acceptable with the following changes: - - Tabs and Indents - + Change Right Margin to `120` - + Indent case statements in switch - - Wrapping - + Change all the `Never` values to `If Long` - + Select the checkbox for Wrap After Assignement Operators -* IntelliJ, by and large the IDE defaults are acceptable with the following changes: - - Wrapping and Braces - + Change `Do not wrap` to `Wrap if long` - + Change `Do not force` to `Always` - - Javadoc - + Disable generating `

` on empty lines - - Imports - + Class count to use import with '*': `9999` - + Names count to use static import with '*': `99999` - + Import Layout - * import all other imports - * blank line - * import static all other imports +## Coding Rules + +To ensure consistency throughout the source code, keep these rules in mind as you are working: + +* All features or bug fixes **must be tested** by one or more [specs][unit-testing]. +* All public API methods **must be documented** with jsdoc. + + +* To the largest extent possible, all fields shall be private. Use an IDE to generate the getters and setters. +* If a class has more than one `volatile` member field, it is probable that there are subtle race conditions. Please consider where appropriate encapsulation of the multiple fields into an immutable value object replace the multiple `volatile` member fields with a single `volatile` reference to the value object (or perhaps better yet an `AtomicReference` to allow for `compareAndSet` - if compare-and-set logic is appropriate). +* If it is `Serializable` it shall have a `serialVersionUID` field. Unless code has shipped to users, the initial value of the `serialVersionUID` field shall be `1L`. + + +## Git Commit Guidelines + +We're using [Angular Commit Guidelines](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#-git-commit-guidelines) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..d777525 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,8 @@ +# These are supported funding model platforms + +# github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +#patreon: continuoussecuritytooling +#open_collective: moleculer +#ko_fi: # Replace with a single Ko-fi username +#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +custom: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=H8TR8246RCDJG diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..2f6094f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,48 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +## Prerequisites + +Please answer the following questions for yourself before submitting an issue. + +- [ ] I am running the latest version +- [ ] I checked the documentation and found no answer +- [ ] I checked to make sure that this issue has not already been filed +- [ ] I'm reporting the issue to the correct repository + +## Current Behavior + + + +## Expected Behavior + + + +## Failure Information + + + +### Steps to Reproduce + +Please provide detailed steps for reproducing the issue. + +1. step 1 +2. step 2 +3. you get it... + + +### Context + +Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions. + +* Java version: +* Jenkins version: +* Operating System: + +### Failure Logs +``` + +``` diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..ad9a01d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Suggest an idea for this project + +--- + +**Is your feature request related to a problem? Please describe.** + + +**Describe the solution you'd like** + + +**Describe alternatives you've considered** + + +**Additional context** + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..cf67524 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,35 @@ +## :memo: Description + + + +### :dart: Relevant issues + + +### :gem: Type of change + + + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] This change requires a documentation update + +### :scroll: Example code +```js + +``` + +## :vertical_traffic_light: How Has This Been Tested? + +Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration + +- [ ] Test A +- [ ] Test B + +## :checkered_flag: Checklist: + +- [ ] My code follows the style guidelines of this project +- [ ] I have performed a self-review of my own code +- [ ] **I have added tests that prove my fix is effective or that my feature works** +- [ ] **New and existing unit tests pass locally with my changes** +- [ ] I have commented my code, particularly in hard-to-understand areas diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..c32394f --- /dev/null +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * 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.5"; + /** + * 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/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + 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 directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + 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()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..fa87ad7 --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar diff --git a/Dockerfile b/Dockerfile index 4875536..01c70f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ FROM maven:alpine -RUN apk add ttf-dejavu +RUN apk update && apk upgrade && \ + apk --update add fontconfig ttf-dejavu bash git openssh openjdk8-jre RUN mkdir -p /data WORKDIR /data diff --git a/Jenkinsfile_dev b/Jenkinsfile_dev new file mode 100644 index 0000000..f22da30 --- /dev/null +++ b/Jenkinsfile_dev @@ -0,0 +1,48 @@ +#!groovy + +// only 20 builds +properties([ + disableConcurrentBuilds(), + buildDiscarder(logRotator(artifactNumToKeepStr: '20', numToKeepStr: '20')) +]) + +@Library('mare-build-library') +def git = new de.mare.ci.jenkins.Git() + +node('docker') { + + def buildNumber = env.BUILD_NUMBER + def workspace = env.WORKSPACE + def buildUrl = env.BUILD_URL + + // PRINT ENVIRONMENT TO JOB + echo "workspace directory is $workspace" + echo "build URL is $buildUrl" + echo "build Number is $buildNumber" + echo "PATH is $env.PATH" + + try { + stage('Checkout') { + checkout scm + } + + stage('Build and Test') { + sh "./mvnw clean install -U" + openTasks high: 'FIXME', normal: 'TODO', pattern: '**/src/**/*.*,*.properties,Jenkinsfil*,*.gradle' + junit 'target/surefire-reports/*.xml' + } + + stage('Deploy') { + if (git.isProductionBranch()) { + sshagent(credentials: ['github-hypery2k']) { + sh "./mvnw deploy -DskipTests=true" + } + } + } + + } catch (e) { + mail subject: 'Error on build', to: 'github@martinreinhardt-online.de', body: "Please go to ${env.BUILD_URL}." + throw e + } + +} diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..67b8251 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,13 @@ +# Release new version +``` +git checkout develop +mvn jgitflow:release-start && \ + conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && \ + git add CHANGELOG.md && \ + git commit -m "Changelog" && \ + mvn jgitflow:release-finish -DnoDeploy=true && \ + git push origin master && git push --tags && \ + git checkout develop +``` + +or just run `release.sh` diff --git a/docker-compose.yaml b/docker-compose.yml similarity index 100% rename from docker-compose.yaml rename to docker-compose.yml diff --git a/mvnw b/mvnw new file mode 100755 index 0000000..d2f0ea3 --- /dev/null +++ b/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# 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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + 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 + 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 + 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 + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + 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" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100755 index 0000000..b26ab24 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml index ff64bd1..644475f 100755 --- a/pom.xml +++ b/pom.xml @@ -17,11 +17,15 @@ Parses the console log generated by a build - 2.5 false 2.138.2 8 + + 2.5 + 2.5.1 + 3.3 + 1.5.0 @@ -59,6 +63,11 @@ + + hypery2k + Martin Reinhardt + contact@martinreinhardt-online.de + jborghi John Borghi @@ -136,6 +145,28 @@ + + + + com.amashchenko.maven.plugin + gitflow-maven-plugin + ${plugin.gitflow-maven.version} + + + master + develop + feature/ + release/ + hotfix/ + support/ + v + origin + + false + + + + org.apache.maven.plugins diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..42c2e89 --- /dev/null +++ b/release.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +git checkout develop +mvn gitflow:release-start && \ + conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && \ + git add CHANGELOG.md && \ + git commit -m "Changelog" && \ + mvn gitflow:release-finish -DnoDeploy=true && \ + git push origin master && git push --tags && \ + git checkout develop From 20414132ce66ff34462caf1da543d4c95c0c5360 Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Mon, 1 Jul 2019 21:49:08 +0200 Subject: [PATCH 3/5] refactor(Colors): Rework on colors see https://github.com/jenkinsci/log-parser-plugin/pull/25 --- .../hudson/plugins/logparser/LogParserAction.java | 2 +- .../plugins/logparser/LogParserDisplayConsts.java | 4 ++-- src/main/webapp/images/gray.gif | Bin 0 -> 499 bytes 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 src/main/webapp/images/gray.gif diff --git a/src/main/java/hudson/plugins/logparser/LogParserAction.java b/src/main/java/hudson/plugins/logparser/LogParserAction.java index 19d803f..10c9ce5 100755 --- a/src/main/java/hudson/plugins/logparser/LogParserAction.java +++ b/src/main/java/hudson/plugins/logparser/LogParserAction.java @@ -228,7 +228,7 @@ public String generateToolTip(CategoryDataset dataset, int row, ar.setSeriesPaint(0, ColorPalette.RED); // error ar.setSeriesPaint(1, ColorPalette.BLUE); // info ar.setSeriesPaint(2, ColorPalette.YELLOW); // warning - ar.setSeriesPaint(3, ColorPalette.BLUE); // debug + ar.setSeriesPaint(3, ColorPalette.GREY); // debug // crop extra space around the graph plot.setInsets(new RectangleInsets(0, 0, 0, 5.0)); diff --git a/src/main/java/hudson/plugins/logparser/LogParserDisplayConsts.java b/src/main/java/hudson/plugins/logparser/LogParserDisplayConsts.java index 4bd5702..c17a6e7 100755 --- a/src/main/java/hudson/plugins/logparser/LogParserDisplayConsts.java +++ b/src/main/java/hudson/plugins/logparser/LogParserDisplayConsts.java @@ -27,13 +27,13 @@ public LogParserDisplayConsts() { colorTable.put(LogParserConsts.WARNING, "orange"); colorTable.put(LogParserConsts.INFO, "blue"); colorTable.put(LogParserConsts.START, "blue"); - colorTable.put(LogParserConsts.DEBUG, "blue"); + colorTable.put(LogParserConsts.DEBUG, "gray"); // Icon for each status in the summary iconTable.put(LogParserConsts.ERROR, "red.gif"); iconTable.put(LogParserConsts.WARNING, "yellow.gif"); iconTable.put(LogParserConsts.INFO, "blue.gif"); - iconTable.put(LogParserConsts.DEBUG, "blue.gif"); + iconTable.put(LogParserConsts.DEBUG, "gray.gif"); // How to display in link summary html linkListDisplay.put(LogParserConsts.ERROR, "Error"); diff --git a/src/main/webapp/images/gray.gif b/src/main/webapp/images/gray.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e52cc8de52a47c185d54788fb66bf07b24fb826 GIT binary patch literal 499 zcmV%|tFf)4xUF}#uARKEf3vczzOsk2v$MUlqsFyzxVEpjxU{;st-!sl z&AoZfy`H|lzRACd)W4j~z+AFL^Y!%T|Ns9000000000000000000000 z00000A^8Le0021vEC2ui02lxm000L6K%8($EE5-;!WU<=;-0?cvHWfp~$;=1j4g(cmMJN>x9xX15izg0$27xDPLNgm= zij0gN1Al=IghC`3dYYOiopM_)L?TxXri`eNTPH*+ZU#@LEfoQtogPCsCS-CanJy<4 zodJ;n0=7dd50P6A6^B~CdZ{f$Bo=_pzvYnz+;u}CCY_PFSZC!GHAFEi5x-k+TjhVO zMM|V-;ICl00h5k!0D-`uzX2oa8LY&1rH)*c=E#I p5GBecBq$((!h!<~_9zNv1SS&@4?y`qp#%npjiX14Dg_e+06Up7>1O}{ literal 0 HcmV?d00001 From 463ad6feb200ddafac11709c901a38bd430e141e Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Mon, 1 Jul 2019 22:31:58 +0200 Subject: [PATCH 4/5] update versions for release --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 644475f..e72295b 100755 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ log-parser hpi Log Parser Plugin - 2.1-SNAPSHOT + 2.1 https://wiki.jenkins-ci.org/display/JENKINS/Log+Parser+Plugin Parses the console log generated by a build From 931d80d5d959db19449c4829744c704f29809e5d Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Mon, 1 Jul 2019 22:32:01 +0200 Subject: [PATCH 5/5] Changelog --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2b100f3 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +# (2019-07-01) + + +### Bug Fixes + +* docker-compose up doesn't support --rm ([d613f5e](https://github.com/jenkinsci/log-parser-plugin/commit/d613f5e)) +* Now Jenkins is available on port 8081 and boots ([f269c53](https://github.com/jenkinsci/log-parser-plugin/commit/f269c53)) + + +