Skip to content

Commit

Permalink
Merge pull request #1 from codecentric/codecentric-refactoring
Browse files Browse the repository at this point in the history
Codecentric refactoring
  • Loading branch information
danielkocot authored Mar 7, 2021
2 parents 6ddc716 + 01fd230 commit fdd0cfb
Show file tree
Hide file tree
Showing 28 changed files with 286 additions and 120 deletions.
18 changes: 18 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Maven Build

on: [push]

jobs:
build:
runs-on: ubuntu-latest
steps:

- uses: actions/checkout@v2

- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11

- name: Build with Maven
run: mvn -B install --no-transfer-progress --file pom.xml
56 changes: 56 additions & 0 deletions .github/workflows/release-to-maven-central.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: release-to-maven-central
on:
workflow_dispatch:
inputs:
releaseversion:
description: 'Release version'
required: true
default: '2.0.0'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- run: echo "Will start a Maven Central upload with version ${{ github.event.inputs.releaseversion }}"

- uses: actions/checkout@v2

- name: Set up settings.xml for Maven Central Repository
uses: actions/setup-java@v1
with:
java-version: 11
server-id: oss.sonatype.org
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE

- name: Set projects Maven version to GitHub Action GUI set version
run: mvn versions:set "-DnewVersion=${{ github.event.inputs.releaseversion }}" --no-transfer-progress

- name: Publish package
run: mvn --batch-mode clean deploy --no-transfer-progress -P central-deploy -DskipTests=true
env:
MAVEN_USERNAME: ${{ secrets.OSS_SONATYPE_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSS_SONATYPE_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}

- name: Generate changelog
id: changelog
uses: metcalfc/[email protected]
with:
myToken: ${{ secrets.GITHUB_TOKEN }}

- name: Create GitHub Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.event.inputs.releaseversion }}
release_name: ${{ github.event.inputs.releaseversion }}
body: |
Grab the new version from Maven central https://repo1.maven.org/maven2/de/codecentric/reedelk/module-json/${{ github.event.inputs.releaseversion }}/
### Things that changed in this release
${{ steps.changelog.outputs.changelog }}
draft: false
prerelease: false
105 changes: 102 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.reedelk</groupId>
<groupId>de.codecentric.reedelk</groupId>
<artifactId>module-parent</artifactId>
<version>1.0.6</version>
<version>2.0.0</version>
</parent>

<packaging>bundle</packaging>
<version>1.0.6</version>
<version>2.0.0</version>
<artifactId>module-json</artifactId>

<properties>
Expand All @@ -23,6 +23,13 @@
<junit.version>5.5.2</junit.version>
<jsonassert.version>1.5.0</jsonassert.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Maven Central Release tools -->
<versions-maven-plugin.version>2.8.1</versions-maven-plugin.version>
<maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version>
<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
<nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -116,4 +123,96 @@
</plugin>
</plugins>
</build>
<profiles>
<!-- plugins needed to deploy to Maven Central -->
<profile>
<id>central-deploy</id>
<build>
<plugins>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<!-- This is necessary for gpg to not try to use the pinentry programs -->
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versions-maven-plugin.version}</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>${nexus-staging-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<serverId>oss.sonatype.org</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<description>${project.version}</description>
</configuration>
<executions>
<execution>
<id>deploy-to-sonatype</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
<goal>release</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
8 changes: 0 additions & 8 deletions src/main/java/com/reedelk/json/ModuleDefinition.java

This file was deleted.

16 changes: 0 additions & 16 deletions src/main/java/com/reedelk/json/internal/commons/Preconditions.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package de.codecentric.reedelk.json;

import de.codecentric.reedelk.runtime.api.annotation.Module;

@Module("JSON Module")
public class ModuleDefinition {
}

Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package com.reedelk.json.component;
package de.codecentric.reedelk.json.component;

import com.reedelk.json.internal.JSONToObjectConverter;
import com.reedelk.json.internal.commons.Preconditions;
import com.reedelk.runtime.api.annotation.ComponentInput;
import com.reedelk.runtime.api.annotation.ComponentOutput;
import com.reedelk.runtime.api.annotation.Description;
import com.reedelk.runtime.api.annotation.ModuleComponent;
import com.reedelk.runtime.api.component.ProcessorSync;
import com.reedelk.runtime.api.flow.FlowContext;
import com.reedelk.runtime.api.message.Message;
import com.reedelk.runtime.api.message.MessageAttributes;
import com.reedelk.runtime.api.message.MessageBuilder;
import de.codecentric.reedelk.json.internal.JSONToObjectConverter;
import de.codecentric.reedelk.json.internal.commons.Preconditions;
import de.codecentric.reedelk.runtime.api.annotation.ComponentInput;
import de.codecentric.reedelk.runtime.api.annotation.ComponentOutput;
import de.codecentric.reedelk.runtime.api.annotation.Description;
import de.codecentric.reedelk.runtime.api.annotation.ModuleComponent;
import de.codecentric.reedelk.runtime.api.component.ProcessorSync;
import de.codecentric.reedelk.runtime.api.flow.FlowContext;
import de.codecentric.reedelk.runtime.api.message.Message;
import de.codecentric.reedelk.runtime.api.message.MessageAttributes;
import de.codecentric.reedelk.runtime.api.message.MessageBuilder;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.ServiceScope;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package com.reedelk.json.component;

import com.reedelk.json.internal.ObjectToJSONConverter;
import com.reedelk.json.internal.commons.Defaults;
import com.reedelk.json.internal.commons.IsValid;
import com.reedelk.json.internal.exception.ObjectToJSONException;
import com.reedelk.runtime.api.annotation.*;
import com.reedelk.runtime.api.component.ProcessorSync;
import com.reedelk.runtime.api.converter.ConverterService;
import com.reedelk.runtime.api.flow.FlowContext;
import com.reedelk.runtime.api.message.Message;
import com.reedelk.runtime.api.message.MessageAttributes;
import com.reedelk.runtime.api.message.MessageBuilder;
package de.codecentric.reedelk.json.component;

import de.codecentric.reedelk.json.internal.ObjectToJSONConverter;
import de.codecentric.reedelk.json.internal.commons.Defaults;
import de.codecentric.reedelk.json.internal.commons.IsValid;
import de.codecentric.reedelk.json.internal.exception.ObjectToJSONException;
import de.codecentric.reedelk.runtime.api.annotation.*;
import de.codecentric.reedelk.runtime.api.component.ProcessorSync;
import de.codecentric.reedelk.runtime.api.converter.ConverterService;
import de.codecentric.reedelk.runtime.api.flow.FlowContext;
import de.codecentric.reedelk.runtime.api.message.Message;
import de.codecentric.reedelk.runtime.api.message.MessageAttributes;
import de.codecentric.reedelk.runtime.api.message.MessageBuilder;
import de.codecentric.reedelk.json.internal.commons.Messages;
import org.json.JSONArray;
import org.json.JSONObject;
import org.osgi.service.component.annotations.Component;
Expand All @@ -19,9 +20,6 @@

import java.util.Optional;

import static com.reedelk.json.internal.commons.Messages.ObjectToJSON.NOT_JSON_STRING;
import static com.reedelk.json.internal.commons.Messages.ObjectToJSON.NOT_VALID_JSON_OBJECT;

@ModuleComponent("Object to JSON")
@ComponentOutput(
attributes = MessageAttributes.class,
Expand Down Expand Up @@ -86,7 +84,7 @@ public Message apply(FlowContext flowContext, Message message) {
.withJson(input)
.build();
} else {
throw new ObjectToJSONException(NOT_JSON_STRING.format());
throw new ObjectToJSONException(Messages.ObjectToJSON.NOT_JSON_STRING.format());
}

} else {
Expand Down Expand Up @@ -120,7 +118,7 @@ private String print(Object result) {

} else {
// A JSON is valid if and only if the Root is an array or an object.
throw new ObjectToJSONException(NOT_VALID_JSON_OBJECT.format(result == null ? null : result.getClass()));
throw new ObjectToJSONException(Messages.ObjectToJSON.NOT_VALID_JSON_OBJECT.format(result == null ? null : result.getClass()));
}
}
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
package com.reedelk.json.internal;
package de.codecentric.reedelk.json.internal;

import com.reedelk.json.internal.exception.JSONToObjectException;
import de.codecentric.reedelk.json.internal.exception.JSONToObjectException;
import de.codecentric.reedelk.json.internal.commons.Messages;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;

import static com.reedelk.json.internal.commons.Messages.JSONToObject.JSON_PARSE_ERROR;
import static com.reedelk.json.internal.commons.Messages.JSONToObject.JSON_TOKEN_ERROR;

public class JSONToObjectConverter {

public Object toObject(String payload) {
Object token;
try {
token = new JSONTokener(payload).nextValue();
} catch (JSONException exception) {
String error = JSON_PARSE_ERROR.format(exception.getMessage());
String error = Messages.JSONToObject.JSON_PARSE_ERROR.format(exception.getMessage());
throw new JSONToObjectException(error, exception);
}

Expand All @@ -29,7 +27,7 @@ public Object toObject(String payload) {
return array.toList();

} else {
String error = JSON_TOKEN_ERROR.format(token);
String error = Messages.JSONToObject.JSON_TOKEN_ERROR.format(token);
throw new JSONToObjectException(error);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package com.reedelk.json.internal;
package de.codecentric.reedelk.json.internal;

import com.reedelk.json.internal.exception.ObjectToJSONException;
import com.reedelk.runtime.api.annotation.Type;
import com.reedelk.runtime.api.annotation.TypeFunction;
import de.codecentric.reedelk.json.internal.exception.ObjectToJSONException;
import de.codecentric.reedelk.runtime.api.annotation.Type;
import de.codecentric.reedelk.runtime.api.annotation.TypeFunction;
import de.codecentric.reedelk.json.internal.commons.Messages;
import org.json.JSONArray;
import org.json.JSONObject;

import static com.reedelk.json.internal.commons.Messages.ObjectToJSON.NOT_VALID_JSON_OBJECT;

@Type(global = true,
description = "The Json type provides a set of utility functions to convert from/to JSON.")
public class Json {
Expand Down Expand Up @@ -61,7 +60,7 @@ private String print(Object result, boolean isPrettyPrint, int theIndentFactor)

} else {
// A JSON is valid if and only if the Root is an array or an object.
throw new ObjectToJSONException(NOT_VALID_JSON_OBJECT.format(result == null ? null : result.getClass()));
throw new ObjectToJSONException(Messages.ObjectToJSON.NOT_VALID_JSON_OBJECT.format(result == null ? null : result.getClass()));
}
}
}
Loading

0 comments on commit fdd0cfb

Please sign in to comment.