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

Remove guava and use java8 constructs (#1082) #2086

Closed
wants to merge 1 commit 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.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ target
.settings
.classpath
.project
.factorypath
.apt_generated
.DS_Store
build/
.gradle/
Expand All @@ -16,3 +18,4 @@ generated-src
.env
out/
*.hprof
bin/
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ apply plugin: 'springfox-multi-release'

ext {
apiKey = System.getenv('GIT_HUB_API_KEY')
jdkVersion = 1.6
jdkVersion = 1.8
}

allprojects {
Expand Down
4 changes: 2 additions & 2 deletions circle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ general:

machine:
java:
version: oraclejdk7
version: oraclejdk8
environment:
TERM: dumb
CI_NAME: Circle-CI
CI_BRANCH: $CIRCLE_BRANCH
CI_BUILD_NUMBER: $CIRCLE_BUILD_NUM
CI_BUILD_URL: $CIRCLE_COMPARE_URL
_JAVA_OPTIONS: "-Xmx1024M -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512M"
_JAVA_OPTIONS: "-Xmx1024M -XX:ReservedCodeCacheSize=512M"
GRADLE_OPTS: '-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx3840m -XX:+HeapDumpOnOutOfMemoryError"'

checkout:
Expand Down
17 changes: 8 additions & 9 deletions docs/asciidoc/current-documentation.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,14 @@ to this is the ability to provide an expressive predicate based for api selectio

```java
import static springfox.documentation.builders.PathSelectors.*;
import static com.google.common.base.Predicates.*;

@Bean
public Docket swaggerSpringMvcPlugin() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("business-api")
.select()
//Ignores controllers annotated with @CustomIgnore
.apis(not(withClassAnnotation(CustomIgnore.class)) //Selection by RequestHandler
.apis(withClassAnnotation(CustomIgnore.class).negate()) //Selection by RequestHandler
.paths(paths()) // and by paths
.build()
.apiInfo(apiInfo())
Expand All @@ -36,13 +35,13 @@ to this is the ability to provide an expressive predicate based for api selectio

//Here is an example where we select any api that matches one of these paths
private Predicate<String> paths() {
return or(
regex("/business.*"),
regex("/some.*"),
regex("/contacts.*"),
regex("/pet.*"),
regex("/springsRestController.*"),
regex("/test.*"));
return
regex("/business.*")
.or(regex("/some.*"))
.or(regex("/contacts.*"))
.or(regex("/pet.*"))
.or(regex("/springsRestController.*"))
.or(regex("/test.*")));
}

```
Expand Down
13 changes: 0 additions & 13 deletions docs/asciidoc/getting_started.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -99,19 +99,6 @@ include::../../springfox-spring-config/src/main/java/springfox/springconfig/Swag
----

=== Configuration explained
IMPORTANT: This library extensively uses https://github.com/google/guava[googles guava library]. For e.g. when you
see `newArrayList(...)` its actually the guava equivalent of creating an normal array list and adding item(s) to it.

[source,groovy]
[subs="verbatim,attributes"]
----
//This guava code snippet
List<Something> guavaList = newArrayList(new Something);

//... is equivalent to
List<Something> list = new ArrayList<Something>();
list.add(new Something());
----

<1> Enables Springfox swagger 2
<2> Instructs spring where to scan for API controllers
Expand Down
17 changes: 8 additions & 9 deletions docs/transitioning-to-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,14 @@ to provide an expressive predicate based for api selection.

```java
import static springfox.documentation.builders.PathSelectors.regex;
import static com.google.common.base.Predicates.or;

@Bean
public Docket swaggerSpringMvcPlugin() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("business-api")
.select()
//Ignores controllers annotated with @CustomIgnore
.apis(not(withClassAnnotation(CustomIgnore.class)) //Selection by RequestHandler
.apis(withClassAnnotation(CustomIgnore.class).negate()) //Selection by RequestHandler
.paths(paths()) // and by paths
.build()
.apiInfo(apiInfo())
Expand All @@ -103,13 +102,13 @@ to provide an expressive predicate based for api selection.

//Here is an example where we select any api that matches one of these paths
private Predicate<String> paths() {
return or(
regex("/business.*"),
regex("/some.*"),
regex("/contacts.*"),
regex("/pet.*"),
regex("/springsRestController.*"),
regex("/test.*"));
return
regex("/business.*"))
.or(regex("/some.*"))
.or(regex("/contacts.*"))
.or(regex("/pet.*"))
.or(regex("/springsRestController.*"))
.or(regex("/test.*")));
}

```
Expand Down
3 changes: 0 additions & 3 deletions gradle/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@ ext {
cglib = "3.2.5"
classmate = "1.3.3"
groovy = "2.4.8"
guava = "20.0"
jackson = '2.8.7'
joda = "2.9.9"
jsonPath = "2.3.0"
jsonAssert = "1.5.0"
mapstruct = "1.1.0.Final"
mockito = "1.10.19"
objenesis = "2.5.1"
reflections = "0.9.11"
servlet = "3.1.0"
slf4j = "1.7.24"
snakeyaml = '1.18'
Expand Down Expand Up @@ -64,7 +62,6 @@ ext {
"joda-time:joda-time:$joda"
],
core : [
"com.google.guava:guava:${guava}",
"com.fasterxml:classmate:${classmate}",
"org.slf4j:slf4j-api:${slf4j}",
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@

package springfox.bean.validators.plugins;

import com.google.common.base.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import springfox.documentation.service.AllowableRangeValues;
import java.util.Optional;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Size;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import springfox.documentation.service.AllowableRangeValues;

public class RangeAnnotations {
private static final Logger LOG = LoggerFactory.getLogger(RangeAnnotations.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,22 @@
*/
package springfox.bean.validators.plugins;

import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;
import com.google.common.base.Optional;
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Optional;

import org.springframework.core.Ordered;
import org.springframework.core.annotation.AnnotationUtils;

import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;

import springfox.documentation.service.ResolvedMethodParameter;
import springfox.documentation.spi.schema.contexts.ModelPropertyContext;
import springfox.documentation.spi.service.contexts.ParameterContext;
import springfox.documentation.spi.service.contexts.ParameterExpansionContext;

import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import springfox.documentation.util.Predicates;

/**
* Utility methods for Validators
Expand All @@ -45,20 +48,20 @@ private Validators() {
public static <T extends Annotation> Optional<T> extractAnnotation(
ModelPropertyContext context,
Class<T> annotationType) {
return annotationFromBean(context, annotationType)
.or(annotationFromField(context, annotationType));
return Predicates.or(annotationFromBean(context, annotationType),
annotationFromField(context, annotationType));
}

public static <T extends Annotation> Optional<T> annotationFromBean(
ModelPropertyContext context,
Class<T> annotationType) {

Optional<BeanPropertyDefinition> propertyDefinition = context.getBeanPropertyDefinition();
Optional<T> notNull = Optional.absent();
Optional<T> notNull = Optional.empty();
if (propertyDefinition.isPresent()) {
Optional<Method> getter = extractGetterFromPropertyDefinition(propertyDefinition.get());
Optional<Field> field = extractFieldFromPropertyDefinition(propertyDefinition.get());
notNull = findAnnotation(getter, annotationType).or(findAnnotation(field, annotationType));
notNull = Predicates.or(findAnnotation(getter, annotationType), findAnnotation(field, annotationType));
}

return notNull;
Expand All @@ -83,30 +86,30 @@ public static <T extends Annotation> Optional<T> validatorFromExpandedParameter(
Class<T> annotationType) {

Field field = context.getField().getRawMember();
return Optional.fromNullable(field.getAnnotation(annotationType));
return Optional.ofNullable(field.getAnnotation(annotationType));
}

private static Optional<Field> extractFieldFromPropertyDefinition(BeanPropertyDefinition propertyDefinition) {
if (propertyDefinition.getField() != null) {
return Optional.fromNullable(propertyDefinition.getField().getAnnotated());
return Optional.ofNullable(propertyDefinition.getField().getAnnotated());
}
return Optional.absent();
return Optional.empty();
}

private static Optional<Method> extractGetterFromPropertyDefinition(BeanPropertyDefinition propertyDefinition) {
if (propertyDefinition.getGetter() != null) {
return Optional.fromNullable(propertyDefinition.getGetter().getMember());
return Optional.ofNullable(propertyDefinition.getGetter().getMember());
}
return Optional.absent();
return Optional.empty();
}

private static <T extends Annotation> Optional<T> findAnnotation(
Optional<? extends AnnotatedElement> annotatedElement,
Class<T> annotationType) {
if (annotatedElement.isPresent()) {
return Optional.fromNullable(AnnotationUtils.findAnnotation(annotatedElement.get(), annotationType));
return Optional.ofNullable(AnnotationUtils.findAnnotation(annotatedElement.get(), annotationType));
} else {
return Optional.absent();
return Optional.empty();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,25 @@
*/
package springfox.bean.validators.plugins.parameter;

import com.google.common.base.Optional;
import static springfox.bean.validators.plugins.RangeAnnotations.allowableRange;
import static springfox.bean.validators.plugins.Validators.validatorFromExpandedParameter;

import java.util.Optional;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import springfox.bean.validators.plugins.Validators;
import springfox.documentation.service.AllowableRangeValues;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.ExpandedParameterBuilderPlugin;
import springfox.documentation.spi.service.contexts.ParameterExpansionContext;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;

import static springfox.bean.validators.plugins.RangeAnnotations.*;
import static springfox.bean.validators.plugins.Validators.*;

@Component
@Order(Validators.BEAN_VALIDATOR_PLUGIN_ORDER)
public class ExpandedParameterMinMaxAnnotationPlugin implements ExpandedParameterBuilderPlugin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,22 @@
*/
package springfox.bean.validators.plugins.parameter;

import com.google.common.base.Optional;
import static springfox.bean.validators.plugins.Validators.validatorFromExpandedParameter;

import java.util.Optional;

import javax.validation.constraints.NotNull;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import springfox.bean.validators.plugins.Validators;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.ExpandedParameterBuilderPlugin;
import springfox.documentation.spi.service.contexts.ParameterExpansionContext;

import javax.validation.constraints.NotNull;

import static springfox.bean.validators.plugins.Validators.*;

@Component
@Order(Validators.BEAN_VALIDATOR_PLUGIN_ORDER)
public class ExpandedParameterNotNullAnnotationPlugin implements ExpandedParameterBuilderPlugin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,22 @@
*/
package springfox.bean.validators.plugins.parameter;

import com.google.common.base.Optional;
import static springfox.bean.validators.plugins.Validators.validatorFromExpandedParameter;

import java.util.Optional;

import javax.validation.constraints.Pattern;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import springfox.bean.validators.plugins.Validators;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.ExpandedParameterBuilderPlugin;
import springfox.documentation.spi.service.contexts.ParameterExpansionContext;

import javax.validation.constraints.Pattern;

import static springfox.bean.validators.plugins.Validators.*;

@Component
@Order(Validators.BEAN_VALIDATOR_PLUGIN_ORDER)
public class ExpandedParameterPatternAnnotationPlugin implements ExpandedParameterBuilderPlugin {
Expand Down