OpenRewriteRecipeBestPractices

master
Markus Kreth 4 months ago
parent f8d3595afe
commit ade0b73919
  1. 1
      Application_Properties.java
  2. 7
      pom.xml
  3. 2
      src/main/java/de/kreth/property2java/Configuration.java
  4. 2
      src/main/java/de/kreth/property2java/Generator.java
  5. 1
      src/main/java/de/kreth/property2java/cli/ArgumentConfiguration.java
  6. 4
      src/main/java/de/kreth/property2java/cli/CliConfig.java
  7. 2
      src/main/java/de/kreth/property2java/config/FreemarkerConfig.java
  8. 1
      src/main/java/de/kreth/property2java/processor/GenerateProperty2Java.java
  9. 1
      src/main/java/de/kreth/property2java/processor/GenerateResourceBundleProperty2Java.java
  10. 2
      src/main/java/de/kreth/property2java/processor/ProcessorConfiguration.java
  11. 2
      src/main/java/de/kreth/property2java/processor/Property2JavaGenerator.java
  12. 1
      src/test/java/de/kreth/property2java/ConfigurationTest.java
  13. 6
      src/test/java/de/kreth/property2java/GeneratorTests.java
  14. 20
      src/test/java/de/kreth/property2java/GeneratorWithInnerPropertiesTest.java
  15. 1
      src/test/java/de/kreth/property2java/TestPropertiesSource.java
  16. 6
      src/test/java/de/kreth/property2java/parts/ReplaceLogicForTemplate.java
  17. 5
      src/test/java/de/kreth/property2java/parts/ReplaceLogicForTemplateTest.java
  18. 2
      src/test/java/de/kreth/property2java/processor/Property2JavaGeneratorTest.java

@ -162,17 +162,24 @@
<recipe>org.openrewrite.staticanalysis.JavaApiBestPractices</recipe> <recipe>org.openrewrite.staticanalysis.JavaApiBestPractices</recipe>
<recipe>org.openrewrite.staticanalysis.CommonStaticAnalysis</recipe> <recipe>org.openrewrite.staticanalysis.CommonStaticAnalysis</recipe>
<recipe>org.openrewrite.staticanalysis.CodeCleanup</recipe> <recipe>org.openrewrite.staticanalysis.CodeCleanup</recipe>
<recipe>org.openrewrite.recipes.rewrite.OpenRewriteRecipeBestPractices</recipe>
</activeRecipes> </activeRecipes>
<exclusions> <exclusions>
<exclusion>**/generated/**</exclusion> <exclusion>**/generated/**</exclusion>
</exclusions> </exclusions>
</configuration> </configuration>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.openrewrite.recipe</groupId> <groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-migrate-java</artifactId> <artifactId>rewrite-migrate-java</artifactId>
<version>3.14.1</version> <version>3.14.1</version>
</dependency> </dependency>
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-rewrite</artifactId>
<version>0.5.0</version>
</dependency>
</dependencies> </dependencies>
</plugin> </plugin>
</plugins> </plugins>

@ -10,9 +10,9 @@ import java.nio.file.Path;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.Map; import java.util.Map;
import org.apache.commons.text.WordUtils;
import de.kreth.property2java.config.Regex; import de.kreth.property2java.config.Regex;
import org.apache.commons.text.WordUtils;
public interface Configuration { public interface Configuration {

@ -17,8 +17,10 @@ import java.util.Map;
import java.util.Properties; import java.util.Properties;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import de.kreth.property2java.cli.ArgumentConfiguration; import de.kreth.property2java.cli.ArgumentConfiguration;
import de.kreth.property2java.config.FreemarkerConfig; import de.kreth.property2java.config.FreemarkerConfig;
import freemarker.template.Template; import freemarker.template.Template;
import freemarker.template.TemplateException; import freemarker.template.TemplateException;

@ -12,6 +12,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import de.kreth.property2java.Configuration; import de.kreth.property2java.Configuration;
public final class ArgumentConfiguration implements Configuration { public final class ArgumentConfiguration implements Configuration {

@ -2,6 +2,8 @@ package de.kreth.property2java.cli;
import java.io.IOException; import java.io.IOException;
import de.kreth.property2java.cli.ArgumentConfiguration.Builder;
import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.DefaultParser;
@ -11,8 +13,6 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options; import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException; import org.apache.commons.cli.ParseException;
import de.kreth.property2java.cli.ArgumentConfiguration.Builder;
public class CliConfig { public class CliConfig {
private final Options options = options(); private final Options options = options();

@ -2,7 +2,9 @@ package de.kreth.property2java.config;
import java.io.IOException; import java.io.IOException;
import de.kreth.property2java.Format; import de.kreth.property2java.Format;
import freemarker.template.Configuration; import freemarker.template.Configuration;
import freemarker.template.Template; import freemarker.template.Template;

@ -6,6 +6,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import de.kreth.property2java.Format; import de.kreth.property2java.Format;
import de.kreth.property2java.GeneratorOptions; import de.kreth.property2java.GeneratorOptions;

@ -7,6 +7,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import de.kreth.property2java.Format; import de.kreth.property2java.Format;
import de.kreth.property2java.GeneratorOptions; import de.kreth.property2java.GeneratorOptions;

@ -11,7 +11,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import javax.annotation.processing.Filer; import javax.annotation.processing.Filer;
import javax.lang.model.element.Element; import javax.lang.model.element.Element;
import javax.lang.model.element.PackageElement; import javax.lang.model.element.PackageElement;
@ -19,6 +18,7 @@ import javax.lang.model.element.TypeElement;
import javax.tools.FileObject; import javax.tools.FileObject;
import javax.tools.StandardLocation; import javax.tools.StandardLocation;
import de.kreth.property2java.Configuration; import de.kreth.property2java.Configuration;
import de.kreth.property2java.Format; import de.kreth.property2java.Format;
import de.kreth.property2java.Generator; import de.kreth.property2java.Generator;

@ -6,7 +6,6 @@ import java.io.StringWriter;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment; import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes; import javax.annotation.processing.SupportedAnnotationTypes;
@ -16,6 +15,7 @@ import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement; import javax.lang.model.element.TypeElement;
import javax.tools.Diagnostic.Kind; import javax.tools.Diagnostic.Kind;
import de.kreth.property2java.Format; import de.kreth.property2java.Format;
import de.kreth.property2java.GeneratorException; import de.kreth.property2java.GeneratorException;
import de.kreth.property2java.GeneratorOptions; import de.kreth.property2java.GeneratorOptions;

@ -10,6 +10,7 @@ import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock; import org.mockito.Mock;

@ -9,10 +9,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.*;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -28,6 +25,7 @@ import java.util.Optional;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.hamcrest.Matchers; import org.hamcrest.Matchers;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;

@ -2,14 +2,9 @@ package de.kreth.property2java;
import static de.kreth.property2java.TestPropertiesSource.testProperties; import static de.kreth.property2java.TestPropertiesSource.testProperties;
import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.*;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -25,6 +20,7 @@ import java.util.Optional;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.hamcrest.Matchers; import org.hamcrest.Matchers;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -123,11 +119,11 @@ public class GeneratorWithInnerPropertiesTest {
String load = null; String load = null;
while (sourceTokenizer.hasMoreTokens()) { while (sourceTokenizer.hasMoreTokens()) {
String line = sourceTokenizer.nextToken(); String line = sourceTokenizer.nextToken();
if (line.contains("Properties") if (line.contains("Properties") &&
&& !line.contains("import") !line.contains("import") &&
&& !line.contains("enum") !line.contains("enum") &&
&& !line.contains("@link") !line.contains("@link") &&
&& !line.contains("class")) { !line.contains("class")) {
declaration = line; declaration = line;
} else if (line.contains(".load")) { } else if (line.contains(".load")) {
load = line; load = line;

@ -5,6 +5,7 @@ import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.StringReader; import java.io.StringReader;
import de.kreth.property2java.generated.GenerateTheTest; import de.kreth.property2java.generated.GenerateTheTest;
public class TestPropertiesSource { public class TestPropertiesSource {

@ -1,6 +1,6 @@
package de.kreth.property2java.parts; package de.kreth.property2java.parts;
public class ReplaceLogicForTemplate { public final class ReplaceLogicForTemplate {
static String doReplacements(String property, Object...objects) { static String doReplacements(String property, Object...objects) {
StringBuilder text = new StringBuilder(); StringBuilder text = new StringBuilder();
@ -14,8 +14,8 @@ public class ReplaceLogicForTemplate {
String theIndex = property.substring(index, endIndex); String theIndex = property.substring(index, endIndex);
int withIndex = Integer.valueOf(theIndex); int withIndex = Integer.valueOf(theIndex);
if (withIndex+1> objects.length) { if (withIndex+1> objects.length) {
throw new IllegalStateException("No Argument for Index {" + theIndex throw new IllegalStateException("No Argument for Index {" + theIndex +
+ "}" + " at Position=" + (index - 1) + " in \"" + property + "\""); "}" + " at Position=" + (index - 1) + " in \"" + property + "\"");
} }
text.append(objects[withIndex].toString()); text.append(objects[withIndex].toString());
index = property.indexOf('{', endIndex); index = property.indexOf('{', endIndex);

@ -1,7 +1,10 @@
package de.kreth.property2java.parts; package de.kreth.property2java.parts;
import static org.assertj.core.api.Assertions.*;
import static de.kreth.property2java.parts.ReplaceLogicForTemplate.doReplacements; import static de.kreth.property2java.parts.ReplaceLogicForTemplate.doReplacements;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
public class ReplaceLogicForTemplateTest { public class ReplaceLogicForTemplateTest {

@ -4,12 +4,12 @@ import static org.mockito.Mockito.when;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import javax.annotation.processing.Messager; import javax.annotation.processing.Messager;
import javax.annotation.processing.ProcessingEnvironment; import javax.annotation.processing.ProcessingEnvironment;
import javax.annotation.processing.RoundEnvironment; import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.TypeElement; import javax.lang.model.element.TypeElement;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;

Loading…
Cancel
Save