Skip to content

Commit

Permalink
fix NPE
Browse files Browse the repository at this point in the history
  • Loading branch information
mmoayyed committed Feb 15, 2022
1 parent e8af96d commit 78b2b01
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 27 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.apereo.cas.initializr.contrib;

import org.apereo.cas.initializr.web.OverlayProjectDescription;
import org.apereo.cas.initializr.web.VersionUtils;
import org.apereo.cas.overlay.bootadminserver.buildsystem.CasSpringBootAdminServerOverlayBuildSystem;
import org.apereo.cas.overlay.casmgmt.buildsystem.CasManagementOverlayBuildSystem;
import org.apereo.cas.overlay.casserver.buildsystem.CasOverlayBuildSystem;
Expand All @@ -11,7 +12,6 @@
import com.github.mustachejava.DefaultMustacheFactory;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.contributor.ProjectContributor;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.InitializrMetadataProvider;
import lombok.AllArgsConstructor;
import lombok.Getter;
Expand Down Expand Up @@ -75,7 +75,18 @@ private static void handleApplicationServerType(final ProjectDescription project

protected static void createTemplateFile(final Path output, final String template) throws IOException {
FileCopyUtils.copy(new BufferedInputStream(new ByteArrayInputStream(template.getBytes(StandardCharsets.UTF_8))),
Files.newOutputStream(output, StandardOpenOption.APPEND));
Files.newOutputStream(output, StandardOpenOption.APPEND));
}

protected static List<CasDependency> handleProjectRequestedDependencies(final ProjectDescription project) {
var dependencies = project.getRequestedDependencies()
.values()
.stream()
.filter(dep -> !CasOverlayGradleBuild.WEBAPP_ARTIFACTS.contains(dep.getArtifactId()))
.map(dep -> new CasDependency(dep.getGroupId(), dep.getArtifactId()))
.collect(Collectors.toList());
log.debug("Requested overlay dependencies: {}", dependencies);
return dependencies;
}

@Override
Expand Down Expand Up @@ -116,7 +127,7 @@ protected Map<String, Object> prepareProjectTemplateVariables(final OverlayProje
var templateVariables = new HashMap<>(provider.get().defaults());
var configuration = provider.get().getConfiguration();
var boms = configuration.getEnv().getBoms();

templateVariables.put("casMgmtVersion", boms.get("cas-mgmt-bom").getVersion());

var casVersion = project.resolveCasVersion(boms.get("cas-bom"));
Expand Down Expand Up @@ -160,26 +171,15 @@ protected Map<String, Object> prepareProjectTemplateVariables(final OverlayProje
templateVariables.put("appName", "casdiscoveryserver");
}

var bomCapableVersion = Version.safeParse("6.5.0");
var currentCasProject = Version.safeParse(project.getCasVersion());

var bomCapableVersion = VersionUtils.parse("6.5.0");
var currentCasProject = VersionUtils.parse(project.getCasVersion());
templateVariables.put("springDependencyMgmt", currentCasProject.compareTo(bomCapableVersion) < 0);

templateVariables.putAll(getVariables());
templateVariables.put("dependencies", handleProjectRequestedDependencies(project));
return templateVariables;
}

protected static List<CasDependency> handleProjectRequestedDependencies(final ProjectDescription project) {
var dependencies = project.getRequestedDependencies()
.values()
.stream()
.filter(dep -> !CasOverlayGradleBuild.WEBAPP_ARTIFACTS.contains(dep.getArtifactId()))
.map(dep -> new CasDependency(dep.getGroupId(), dep.getArtifactId()))
.collect(Collectors.toList());
log.debug("Requested overlay dependencies: {}", dependencies);
return dependencies;
}

protected Object contributeInternal(final ProjectDescription project) {
return new HashMap<>();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,20 +149,12 @@ private void validatePlatformVersion(final OverlayProjectRequest request, final

private Version getCasPlatformVersion(final OverlayProjectRequest request, final InitializrMetadata metadata) {
var versionText = determineCasVersion(request, metadata);
if (versionText.matches("\\d.\\d.\\d.\\d")) {
versionText = versionText.substring(0, versionText.lastIndexOf('.'));
}
var version = Version.safeParse(versionText);
return this.platformVersionTransformer.transform(version, metadata);
return this.platformVersionTransformer.transform(VersionUtils.parse(versionText), metadata);
}

private Version getSpringBootPlatformVersion(final OverlayProjectRequest request, final InitializrMetadata metadata) {
var versionText = request.getBootVersion() != null ? request.getBootVersion()
: metadata.getBootVersions().getDefault().getId();
if (versionText.matches("\\d.\\d.\\d.\\d")) {
versionText = versionText.substring(0, versionText.lastIndexOf('.'));
}
var version = Version.parse(versionText);
return this.platformVersionTransformer.transform(version, metadata);
return this.platformVersionTransformer.transform(VersionUtils.parse(versionText), metadata);
}
}
21 changes: 21 additions & 0 deletions app/src/main/java/org/apereo/cas/initializr/web/VersionUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.apereo.cas.initializr.web;

import io.spring.initializr.generator.version.Version;
import lombok.experimental.UtilityClass;

/**
* This is {@link VersionUtils}.
*
* @author Misagh Moayyed
* @since 6.5.0
*/
@UtilityClass
public class VersionUtils {

public static Version parse(final String versionText) {
if (versionText.matches("\\d.\\d.\\d.\\d")) {
Version.parse(versionText.substring(0, versionText.lastIndexOf('.')));
}
return Version.parse(versionText);
}
}

0 comments on commit 78b2b01

Please sign in to comment.