Promote version infrastructure to dedicated package

This commit moves `Version` and related support classes to a dedicated
package

Closes gh-811
This commit is contained in:
Stephane Nicoll 2019-02-07 12:08:25 +01:00
parent e281480426
commit 6ccfb69692
31 changed files with 83 additions and 65 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -19,10 +19,10 @@ package io.spring.initializr.actuate.info;
import java.util.LinkedHashMap;
import java.util.Map;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionRange;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.InitializrMetadataProvider;
import io.spring.initializr.util.Version;
import io.spring.initializr.util.VersionRange;
import org.springframework.boot.actuate.info.Info;
import org.springframework.boot.actuate.info.InfoContributor;

View File

@ -21,8 +21,8 @@ import java.util.Collections;
import java.util.List;
import java.util.StringJoiner;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.util.Agent;
import io.spring.initializr.util.Version;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;

View File

@ -24,9 +24,9 @@ import io.spring.initializr.actuate.stat.ProjectRequestDocument.ClientInformatio
import io.spring.initializr.actuate.stat.ProjectRequestDocument.DependencyInformation;
import io.spring.initializr.actuate.stat.ProjectRequestDocument.ErrorStateInformation;
import io.spring.initializr.actuate.stat.ProjectRequestDocument.VersionInformation;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.util.Agent;
import io.spring.initializr.util.Version;
import io.spring.initializr.web.project.ProjectFailedEvent;
import io.spring.initializr.web.project.ProjectRequest;
import io.spring.initializr.web.project.ProjectRequestEvent;

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2015 the original author or authors.
* Copyright 2012-2019 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.
@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.spring.initializr.util;
package io.spring.initializr.generator.version;
/**
* Thrown if a input represents an invalid version.

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.spring.initializr.util;
package io.spring.initializr.generator.version;
import java.io.Serializable;
import java.util.Arrays;

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.spring.initializr.util;
package io.spring.initializr.generator.version;
import java.util.Collections;
import java.util.List;
@ -22,7 +22,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import io.spring.initializr.util.Version.Qualifier;
import io.spring.initializr.generator.version.Version.Qualifier;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;

View File

@ -14,11 +14,12 @@
* limitations under the License.
*/
package io.spring.initializr.util;
package io.spring.initializr.generator.version;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import org.springframework.util.StringUtils;
@ -119,15 +120,13 @@ public final class VersionProperty implements Serializable, Comparable<VersionPr
if (o == null || getClass() != o.getClass()) {
return false;
}
VersionProperty that = (VersionProperty) o;
return this.property.equals(that.property);
return this.internal == that.internal && this.property.equals(that.property);
}
@Override
public int hashCode() {
return this.property.hashCode();
return Objects.hash(this.property, this.internal);
}
@Override

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.spring.initializr.util;
package io.spring.initializr.generator.version;
import org.springframework.util.Assert;

View File

@ -0,0 +1,20 @@
/*
* Copyright 2012-2019 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Version support classes.
*/
package io.spring.initializr.generator.version;

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -22,11 +22,11 @@ import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.spring.initializr.util.InvalidVersionException;
import io.spring.initializr.util.Version;
import io.spring.initializr.util.VersionParser;
import io.spring.initializr.util.VersionProperty;
import io.spring.initializr.util.VersionRange;
import io.spring.initializr.generator.version.InvalidVersionException;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionParser;
import io.spring.initializr.generator.version.VersionProperty;
import io.spring.initializr.generator.version.VersionRange;
/**
* Define a Bill Of Materials to be represented in the generated project if a dependency

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -25,7 +25,7 @@ import java.util.Map;
import java.util.stream.Collectors;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.spring.initializr.util.VersionParser;
import io.spring.initializr.generator.version.VersionParser;
/**
* A {@link ServiceCapability} listing the available dependencies defined as a

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -24,10 +24,10 @@ import java.util.StringTokenizer;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.spring.initializr.util.InvalidVersionException;
import io.spring.initializr.util.Version;
import io.spring.initializr.util.VersionParser;
import io.spring.initializr.util.VersionRange;
import io.spring.initializr.generator.version.InvalidVersionException;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionParser;
import io.spring.initializr.generator.version.VersionRange;
import org.springframework.util.StringUtils;

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -18,7 +18,7 @@ package io.spring.initializr.metadata;
import java.util.Map;
import io.spring.initializr.util.Version;
import io.spring.initializr.generator.version.Version;
/**
* Dependency metadata for a given spring boot {@link Version}.

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -16,7 +16,7 @@
package io.spring.initializr.metadata;
import io.spring.initializr.util.Version;
import io.spring.initializr.generator.version.Version;
/**
* Provide the {@link DependencyMetadata} for a given spring boot version.

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -26,10 +26,10 @@ import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.spring.initializr.util.InvalidVersionException;
import io.spring.initializr.util.Version;
import io.spring.initializr.util.VersionParser;
import io.spring.initializr.util.VersionRange;
import io.spring.initializr.generator.version.InvalidVersionException;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionParser;
import io.spring.initializr.generator.version.VersionRange;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
import org.springframework.util.StringUtils;

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -21,9 +21,9 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import io.spring.initializr.util.Version;
import io.spring.initializr.util.VersionParser;
import io.spring.initializr.util.VersionProperty;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionParser;
import io.spring.initializr.generator.version.VersionProperty;
/**
* Meta-data used to generate a project.

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.spring.initializr.util;
package io.spring.initializr.generator.version;
import java.util.Arrays;
import java.util.Collections;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.spring.initializr.util;
package io.spring.initializr.generator.version;
import org.junit.jupiter.api.Test;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.spring.initializr.util;
package io.spring.initializr.generator.version;
import java.util.Arrays;
import java.util.Collections;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.spring.initializr.util;
package io.spring.initializr.generator.version;
import java.util.Collections;

View File

@ -18,9 +18,9 @@ package io.spring.initializr.metadata;
import java.util.Arrays;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionParser;
import io.spring.initializr.metadata.BillOfMaterials.Mapping;
import io.spring.initializr.util.Version;
import io.spring.initializr.util.VersionParser;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -18,8 +18,8 @@ package io.spring.initializr.metadata;
import java.util.Arrays;
import io.spring.initializr.util.Version;
import io.spring.initializr.util.VersionParser;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionParser;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -16,8 +16,8 @@
package io.spring.initializr.metadata;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.InitializrConfiguration.Env.Kotlin;
import io.spring.initializr.util.Version;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -21,10 +21,10 @@ import java.net.URL;
import java.util.Arrays;
import java.util.List;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.BillOfMaterials.Mapping;
import io.spring.initializr.metadata.InitializrConfiguration.Env.Kotlin;
import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven.ParentPom;
import io.spring.initializr.util.Version;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -22,7 +22,7 @@ import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import io.spring.initializr.util.VersionProperty;
import io.spring.initializr.generator.version.VersionProperty;
/**
* A {@link SimpleModule} that registers custom serializers.

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -28,6 +28,7 @@ import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
import com.samskivert.mustache.Mustache;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.DependencyMetadata;
import io.spring.initializr.metadata.DependencyMetadataProvider;
import io.spring.initializr.metadata.InitializrMetadata;
@ -35,7 +36,6 @@ import io.spring.initializr.metadata.InitializrMetadataProvider;
import io.spring.initializr.util.Agent;
import io.spring.initializr.util.Agent.AgentId;
import io.spring.initializr.util.TemplateRenderer;
import io.spring.initializr.util.Version;
import io.spring.initializr.web.mapper.DependencyMetadataV21JsonMapper;
import io.spring.initializr.web.mapper.InitializrMetadataJsonMapper;
import io.spring.initializr.web.mapper.InitializrMetadataV21JsonMapper;

View File

@ -26,11 +26,11 @@ import io.spring.initializr.generator.language.Language;
import io.spring.initializr.generator.packaging.Packaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.spring.build.MetadataBuildItemMapper;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.DefaultMetadataElement;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.metadata.Type;
import io.spring.initializr.util.Version;
import io.spring.initializr.web.InvalidProjectRequestException;
import org.springframework.util.StringUtils;
@ -60,8 +60,7 @@ public class ProjectRequestToDescriptionConverter {
description.setPackageName(getPackageName(request, metadata));
description.setPackaging(Packaging.forId(request.getPackaging()));
String springBootVersion = getSpringBootVersion(request, metadata);
description
.setPlatformVersion(MetadataBuildItemMapper.toVersion(springBootVersion));
description.setPlatformVersion(Version.parse(springBootVersion));
getResolvedDependencies(request, springBootVersion, metadata)
.forEach((dependency) -> description.addDependency(dependency.getId(),
MetadataBuildItemMapper.toDependency(dependency)));

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -19,13 +19,13 @@ package io.spring.initializr.web.support;
import java.util.LinkedHashMap;
import java.util.Map;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.BillOfMaterials;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.DependencyMetadata;
import io.spring.initializr.metadata.DependencyMetadataProvider;
import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.metadata.Repository;
import io.spring.initializr.util.Version;
import org.springframework.cache.annotation.Cacheable;

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@ -23,10 +23,10 @@ import java.util.List;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.DependencyGroup;
import io.spring.initializr.metadata.InitializrMetadataProvider;
import io.spring.initializr.util.Version;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;

View File

@ -19,11 +19,11 @@ package io.spring.initializr.web.mapper;
import java.net.URL;
import java.util.Collections;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.BillOfMaterials;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.DependencyMetadata;
import io.spring.initializr.metadata.Repository;
import io.spring.initializr.util.Version;
import org.json.JSONObject;
import org.junit.jupiter.api.Test;

View File

@ -16,13 +16,13 @@
package io.spring.initializr.web.support;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.BillOfMaterials;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.DependencyMetadata;
import io.spring.initializr.metadata.DependencyMetadataProvider;
import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder;
import io.spring.initializr.util.Version;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;