Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a line separator configuration item #212

Closed
wants to merge 18 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
:release-version: 0.0.22
:release-version: 0.0.24
:checkstyle-version: 8.32
== Spring Java Format

Expand Down Expand Up @@ -223,7 +223,7 @@ If you want most `SpringChecks` but need to exclude one or two, you can do somet
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="com.puppycrawl.tools.checkstyle.Checker">
<module name="io.spring.javaformat.checkstyle.SpringChecks">
<property name="excludes" value="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStaticImportCheck" />
<property name="excludes" value="io.spring.javaformat.checkstyle.check.SpringAvoidStaticImportCheck" />
</module>
</module>
----
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-build</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Spring JavaFormat Build</name>
<description>Spring JavaFormat</description>
Expand Down
4 changes: 2 additions & 2 deletions samples/spring-javaformat-gradle-sample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath("io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.23-SNAPSHOT")
classpath("io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.25-SNAPSHOT")
}
}

Expand All @@ -25,5 +25,5 @@ checkstyle {
}

dependencies {
checkstyle("io.spring.javaformat:spring-javaformat-checkstyle:0.0.23-SNAPSHOT")
checkstyle("io.spring.javaformat:spring-javaformat-checkstyle:0.0.25-SNAPSHOT")
}
2 changes: 1 addition & 1 deletion samples/spring-javaformat-maven-sample/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-javaformat.version>0.0.23-SNAPSHOT</spring-javaformat.version>
<spring-javaformat.version>0.0.25-SNAPSHOT</spring-javaformat.version>
</properties>
<build>
<plugins>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<feature
id="io.spring.javaformat.eclipse.feature"
label="%featureName"
version="0.0.23.qualifier"
version="0.0.25.qualifier"
provider-name="%vendorName"
plugin="io.spring.javaformat.eclipse">

Expand All @@ -22,7 +22,7 @@
id="io.spring.javaformat.eclipse"
download-size="0"
install-size="0"
version="0.0.23.qualifier"
version="0.0.25.qualifier"
unpack="false"/>

</feature>
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-eclipse</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>io.spring.javaformat.eclipse.feature</artifactId>
<packaging>eclipse-feature</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<description>
Maven Integration for Eclipse (maven-eclipse-plugin support)
</description>
<feature url="features/io.spring.javaformat.eclipse.feature_0.0.23.qualifier.jar" id="io.spring.javaformat.eclipse.feature" version="0.0.23.qualifier">
<feature url="features/io.spring.javaformat.eclipse.feature_0.0.25.qualifier.jar" id="io.spring.javaformat.eclipse.feature" version="0.0.25.qualifier">
<category name="spring-java-format"/>
</feature>
<category-def name="spring-java-format" label="Spring Java Format"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>

<product uid="io.spring.javaformat.eclipse.site" version="0.0.23.qualifier" useFeatures="true" includeLaunchers="false">
<product uid="io.spring.javaformat.eclipse.site" version="0.0.25.qualifier" useFeatures="true" includeLaunchers="false">

<configIni use="">
</configIni>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-eclipse</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>io.spring.javaformat.eclipse.site</artifactId>
<packaging>eclipse-repository</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Spring Java Format Tests
Bundle-SymbolicName: io.spring.javaformat.eclipse.tests
Automatic-Module-Name: io.spring.javaformat.eclipse.tests
Bundle-Version: 0.0.23.qualifier
Bundle-Version: 0.0.25.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.junit;bundle-version="4.12"
Bundle-ClassPath: .,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-eclipse</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>io.spring.javaformat.eclipse.tests</artifactId>
<packaging>eclipse-test-plugin</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Spring Java Format
Bundle-SymbolicName: io.spring.javaformat.eclipse;singleton:=true
Automatic-Module-Name: io.spring.javaformat.eclipse
Bundle-Version: 0.0.23.qualifier
Bundle-Version: 0.0.25.qualifier
Bundle-Activator: io.spring.javaformat.eclipse.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.ui,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-eclipse</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>io.spring.javaformat.eclipse</artifactId>
<packaging>eclipse-plugin</packaging>
Expand Down
2 changes: 1 addition & 1 deletion spring-javaformat-eclipse/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-build</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat-eclipse</artifactId>
<packaging>pom</packaging>
Expand Down
2 changes: 1 addition & 1 deletion spring-javaformat-gradle/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-build</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat-gradle</artifactId>
<packaging>pom</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-gradle</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat-gradle-plugin</artifactId>
<packaging>pom</packaging>
Expand Down
2 changes: 1 addition & 1 deletion spring-javaformat-intellij/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-build</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat-intellij</artifactId>
<packaging>pom</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-intellij</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat-intellij-plugin</artifactId>
<name>Spring JavaFormat IntelliJ Plugin</name>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-intellij</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat-intellij-runtime</artifactId>
<packaging>pom</packaging>
Expand Down
2 changes: 1 addition & 1 deletion spring-javaformat-maven/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-build</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat-maven</artifactId>
<packaging>pom</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-maven</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,18 @@ public abstract class FormatMojo extends AbstractMojo {
@Parameter(property = "spring-javaformat.includeGeneratedSource", defaultValue = "false")
private boolean includeGeneratedSource;

/**
* Specifies the line separator to use when formatting.
*/
@Parameter(property = "spring-javaformat.lineSeparator")
private LineSeparator lineSeparator;

@Override
public final void execute() throws MojoExecutionException, MojoFailureException {
if (this.lineSeparator != null) {
System.getProperties().setProperty("line.separator", this.lineSeparator.getSymbol());
}

List<File> directories = new ArrayList<>();
resolve(this.sourceDirectories).forEach(directories::add);
resolve(this.testSourceDirectories).forEach(directories::add);
Expand Down Expand Up @@ -158,4 +168,35 @@ private boolean hasLength(Object[] array) {
protected abstract void execute(List<File> files, Charset encoding)
throws MojoExecutionException, MojoFailureException;


/*
* The types of line separator. {@link FormatMojo#lineSeparator}
*/
enum LineSeparator {

/**
* Carriage Return.
*/
CR("\r"),

/**
* Linefeed.
*/
LF("\n"),

/**
* Carriage Return & Linefeed.
*/
CRLF("\r\n");

LineSeparator(String symbol) {
this.symbol = symbol;
}

private final String symbol;

private String getSymbol() {
return this.symbol;
}
}
}
2 changes: 1 addition & 1 deletion spring-javaformat/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-build</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat</artifactId>
<packaging>pom</packaging>
Expand Down
2 changes: 1 addition & 1 deletion spring-javaformat/spring-javaformat-checkstyle/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat</artifactId>
<version>0.0.23-SNAPSHOT</version>
<version>0.0.25-SNAPSHOT</version>
</parent>
<artifactId>spring-javaformat-checkstyle</artifactId>
<name>Spring JavaFormat CheckStyle</name>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2017-2019 the original author or authors.
* Copyright 2017-2020 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.
Expand All @@ -23,9 +23,19 @@
import com.puppycrawl.tools.checkstyle.TreeWalkerFilter;
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
import com.puppycrawl.tools.checkstyle.api.Configuration;

class FilteredModuleFactory implements ModuleFactory {

static final TreeWalkerFilter FILTERED = new TreeWalkerFilter() {

@Override
public boolean accept(TreeWalkerAuditEvent treeWalkerAuditEvent) {
return true;
}

};

private final ModuleFactory moduleFactory;

private final Set<String> excludes;
Expand All @@ -38,32 +48,25 @@ class FilteredModuleFactory implements ModuleFactory {
@Override
public Object createModule(String name) throws CheckstyleException {
Object module = this.moduleFactory.createModule(name);
if (module instanceof AbstractCheck) {
module = filter((AbstractCheck) module);
if (isFiltered(module)) {
if (module instanceof AbstractCheck) {
return FILTERED;
}
throw new IllegalStateException("Unable to filter module " + module.getClass().getName());
}
return module;
}

private Object filter(AbstractCheck check) {
if (this.excludes != null && this.excludes.contains(check.getClass().getName())) {
return new FilteredCheck(check);
}
return check;
boolean nonFiltered(Configuration configuration) {
return !isFiltered(configuration.getName());
}

static class FilteredCheck implements TreeWalkerFilter {

private final AbstractCheck check;

FilteredCheck(AbstractCheck check) {
this.check = check;
}

@Override
public boolean accept(TreeWalkerAuditEvent treeWalkerAuditEvent) {
return true;
}
private boolean isFiltered(Object module) {
return isFiltered(module.getClass().getName());
}

private boolean isFiltered(String name) {
return this.excludes != null && this.excludes.contains(name);
}

}
Loading