Skip to content

Commit

Permalink
Merge pull request #16 from tamada/logging
Browse files Browse the repository at this point in the history
Logging
  • Loading branch information
tamada committed Aug 5, 2017
2 parents 8a82f8c + 7341c12 commit d8ad439
Show file tree
Hide file tree
Showing 36 changed files with 176 additions and 65 deletions.
5 changes: 4 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ addons:
token:
secure: "yHqtSo+Unsu2jqgFLYLKNvB6/A3S1IWX+XnMM3GtgTLFdTt7h9Y08tqtewi6SlNeu8hqPnM75ROiOa8JOcQqQfcMsuOiHiW1xzDDo9dyxQc8PsqzDnPF1CRWNfov7xf+lANrWZPhN/+ruU9DLbZu4AgVIX5/7uUvmEEUY0Eo3e0u7Faw2Re7oZ+T8vpreyVxNpsI56r85sxzY/RB7r7vtM9Epmq33Wk26falDLiJBBLgW13BFTa8lerHY26SLOYthTN9vODJsijfy40q5i9qmKLNh2NDdtRQGEAJbfXg+4w8gSIfNPawNc70LKnWbIgrCv45NIL+QlulkpplGU+5RMX39sFcvSblNj+8vQSAYqG2u8muS4jmEJTHfIm9XhU3qKMCP0bdqE6i09pOWK1LRGm9f0rbysiGHOhHeeX3/F6S+2ySWrpBce0F8o7fQC6KQIWl2Ib3edeKl245PNxG1KpemucNDapk+ZpHFrrY18J0Bk+pfNTrLb8d5hDZraoXUzug1QfBRNhLABaN67sLgT31ceTlMPIwmjjJMuAYnO/B0H0Bsnl66Fa23t/3SobKTGUaeAemd4pzWUW1psk9+7vBkzrgpVEKIuMo/TdmjkMYOITj4ITcKGWpYQFv7fbsRbASQVOFvbC+ZF9xLTj4Z1IomWHK63Noj/ryHTkL/WY="

script:
- mvn package

after_success:
- mvn -DrepoToken=$COVERALLS_TOKEN clean test jacoco:report coveralls:report
- mvn -Dsonar.host.url=https:/sonarqube.com -Dsonar.organization=tamada-github -Dsonar.login=${SONARQUBE_TOKEN} sonar:sonar
- bash <(curl -s https://codecov.io/bash)

cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.sonar/cache'

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[![Build Status](https://travis-ci.org/tamada/9rules.svg?branch=master)](https://travis-ci.org/tamada/9rules)
[![Coverage Status](https://coveralls.io/repos/github/tamada/9rules/badge.svg?branch=master)](https://coveralls.io/github/tamada/9rules?branch=master)
[![codecov](https://codecov.io/gh/tamada/9rules/branch/master/graph/badge.svg)](https://codecov.io/gh/tamada/9rules)
[![codebeat badge](https://codebeat.co/badges/7338b3d9-520f-429b-ba55-16aec78615d1)](https://codebeat.co/projects/github-com-tamada-9rules)
[![Gitter](https://badges.gitter.im/9rules/Lobby.svg)](https://gitter.im/9rules/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![Quality Gate](https://sonarqube.com/api/badges/gate?key=com.github:9rules)](https://sonarqube.com/dashboard/index/com.github:9rules)
Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/github/ninerules/cli/Argument.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ public Argument(String argument){
public Path toPath(){
return Paths.get(givenArgument);
}

@Override
public int hashCode(){
return givenArgument.hashCode();
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/github/ninerules/cli/Option.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

import org.checkerframework.checker.nullness.qual.NonNull;

import com.github.ninerules.StrictLevel;

public class Option {
Expand Down
30 changes: 30 additions & 0 deletions src/main/java/com/github/ninerules/entities/LineCountStream.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.github.ninerules.entities;

import java.util.stream.IntStream;
import java.util.stream.Stream;

public class LineCountStream{
private LineCountStream(){
// do nothing.
}

public static Stream<LineCount> generate(){
return IntStream.iterate(1, x -> x + 1)
.mapToObj(LineCount::new);
}

public static Stream<LineCount> of(int... numbers){
return IntStream.of(numbers)
.mapToObj(LineCount::new);
}

public static Stream<LineCount> range(int startInclusive, int endExclusive){
return IntStream.range(startInclusive, endExclusive)
.mapToObj(LineCount::new);
}

public static Stream<LineCount> rangeClosed(int startInclusive, int endInclusive){
return IntStream.rangeClosed(startInclusive, endInclusive)
.mapToObj(LineCount::new);
}
}
24 changes: 18 additions & 6 deletions src/main/java/com/github/ninerules/entities/LineCountsBuilder.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,35 @@
package com.github.ninerules.entities;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class LineCountsBuilder {
private List<LineCount> list = new ArrayList<>();

private LineCountsBuilder(){
// do nothing.
}

public static LineCountsBuilder builder(){
return new LineCountsBuilder();
}

public LineCounts build(){
LineCount[] array = list.stream()
.toArray(LineCount[]::new);
return new LineCounts(array);
}

public LineCountsBuilder range(int from, int to){
IntStream.range(from, to)
.mapToObj(LineCount::new).forEach(list::add);
LineCountStream.range(from, to)
.forEach(list::add);
return this;
}

public LineCountsBuilder rangeClosed(int startInclusive, int endInclusive){
LineCountStream.rangeClosed(startInclusive, endInclusive)
.forEach(list::add);
return this;
}

Expand All @@ -27,8 +39,8 @@ public LineCountsBuilder of(Stream<LineCount> stream){
}

public LineCountsBuilder of(int... numbers){
Arrays.stream(numbers)
.mapToObj(LineCount::new).forEach(list::add);
LineCountStream.of(numbers)
.forEach(list::add);
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

import java.util.Objects;

import org.checkerframework.checker.nullness.qual.NonNull;

import com.github.ninerules.entities.Message;

abstract class IntegerParameter implements Parameter{
Expand All @@ -22,17 +20,13 @@ public int hashCode(){

@Override
public boolean equals(Object object){
return object instanceof Parameter && checkEquals((Parameter)object);
}

private boolean checkEquals(@NonNull Parameter parameter){
Class<?> clazz1 = getClass();
Class<?> clazz2 = parameter.getClass();
return Objects.equals(clazz1, clazz2) && isEqualsTo(parameter);
return object instanceof IntegerParameter && Objects.equals(
getClass(), object.getClass())
&& isEqualTo((Parameter)object);
}

@Override
public boolean isEqualsTo(Parameter parameter){
public boolean isEqualTo(Parameter parameter){
return value == ((IntegerParameter)parameter).value;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static final NullParameter parameter(){
}

@Override
public boolean isEqualsTo(Parameter parameter) {
public boolean isEqualTo(Parameter parameter) {
return this == parameter;
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/github/ninerules/parameters/Parameter.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ default int compareTo(Parameter parameter){
return new ParameterComparator().compare(this, parameter);
}

boolean isEqualsTo(Parameter param);
boolean isEqualTo(Parameter param);

boolean isLessThan(Parameter param);

default boolean isGreaterThan(Parameter param){
return !isLessThan(param) &&
!isEqualsTo(param);
!isEqualTo(param);
}

default String format(Message format){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ private PredicateHelper<Parameter, Integer> buildHelper(){
private void registerPredicates(PredicateHelper<Parameter, Integer> helper){
helper.register(Parameter::isLessThan, -1);
helper.register(Parameter::isGreaterThan, 1);
helper.register(Parameter::isEqualsTo, 0);
helper.register(Parameter::isEqualTo, 0);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public long computesFieldCount(Predicate<FieldDeclaration> predict){
}

public LineCounts lineNumbers(Predicate<FieldDeclaration> predicate){
return new LineCountsBuilder()
return LineCountsBuilder.builder()
.of(stream(predicate))
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import com.github.ninerules.entities.LineCount;
import com.github.ninerules.entities.LineCountsBuilder;
import com.github.ninerules.utils.LoggingHelper;
import com.github.ninerules.utils.Pair;
import com.github.ninerules.utils.Streams;

Expand All @@ -20,9 +21,8 @@ public StringLineVisitorHelper(StringLineVisitor visitor){
public void visit(Path path){
try {
visitImpl(path);
}
catch (IOException e){
// do nothing for ignoring exception.
} catch (IOException e){
LoggingHelper.throwing(getClass(), "visit", e);
}
}

Expand Down
10 changes: 8 additions & 2 deletions src/main/java/com/github/ninerules/utils/ExceptionHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public static <V, R, E extends Exception> Optional<R> perform(V argumentToFuncti
try{
return optionalOf(function.apply(argumentToFunction));
} catch(Exception e){
return Optional.empty();
return loggingAndReturnEmpty(e);
}
}

Expand All @@ -20,10 +20,16 @@ public static <V1, V2, R, E extends Exception> Optional<R> perform(V1 argumentTo
try{
return optionalOf(function.apply(argumentToFunction1, argumentToFunction2));
} catch(Exception e){
return Optional.empty();
return loggingAndReturnEmpty(e);
}
}

private static <R> Optional<R> loggingAndReturnEmpty(Throwable throwable){
LoggingHelper.throwing(
ExceptionHandler.class, "perform", throwable);
return Optional.empty();
}

private static <R> Optional<R> optionalOf(R returnValue){
return Optional.of(returnValue);
}
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/com/github/ninerules/utils/LoggingHelper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.github.ninerules.utils;

import java.util.logging.Logger;

public class LoggingHelper {
private LoggingHelper(){
}

public static <T> void throwing(Class<T> clazz, String method, Throwable throwable){
String name = clazz.getName();
Logger logger = Logger.getLogger(name);
logger.throwing(name, method, throwable);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@ public void testBasic(){
assertThat(results.contains(
new FileName(path.resolve("sample/hello/HelloWorld.java")),
new Violation(new ViolationType(NoAccessorValidator.SETTER, NullParameter.parameter()),
new LineCountsBuilder().of(10).build())
LineCountsBuilder.builder().of(10).build())
), is(true));
assertThat(results.contains(
new FileName(path.resolve("sample/hello/HelloWorld.java")),
new Violation(new ViolationType(NoAccessorValidator.GETTER, NullParameter.parameter()),
new LineCountsBuilder().of(14).build())
LineCountsBuilder.builder().of(14).build())
), is(true));
}
}
6 changes: 3 additions & 3 deletions src/test/java/com/github/ninerules/ReporterTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import static org.junit.Assert.assertThat;

import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;

import org.junit.Before;
Expand Down Expand Up @@ -33,8 +33,8 @@ public void setUp() throws IOException{
results = new Results(
new FileName("test.java"),
Arrays.asList(
new Violation(new ViolationType(type, parameter), new LineCountsBuilder().of(10).build()),
new Violation(new ViolationType(type, parameter), new LineCountsBuilder().of(15, 16).build())
new Violation(new ViolationType(type, parameter), LineCountsBuilder.builder().of(10).build()),
new Violation(new ViolationType(type, parameter), LineCountsBuilder.builder().of(15, 16).build())
)
);
reporter.report(results);
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/com/github/ninerules/SourceParserTest.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.ninerules;

import static org.junit.Assert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;

import java.nio.file.Paths;

Expand Down
2 changes: 1 addition & 1 deletion src/test/java/com/github/ninerules/StrictLevelTest.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.ninerules;

import static org.junit.Assert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;

import org.junit.Test;

Expand Down
2 changes: 1 addition & 1 deletion src/test/java/com/github/ninerules/cli/ArgumentsTest.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.ninerules.cli;

import static org.junit.Assert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;

import java.util.stream.Stream;

Expand Down
2 changes: 1 addition & 1 deletion src/test/java/com/github/ninerules/cli/OptionsTest.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.ninerules.cli;

import static org.junit.Assert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;

import java.util.stream.Stream;

Expand Down

0 comments on commit d8ad439

Please sign in to comment.