package com.justrelease.config;
import com.github.zafarkhaja.semver.Version;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import java.io.InputStream;
public class MavenProjectConfig extends AbstractProjectConfig {
public MavenProjectConfig(InputStream projectConfigurationIS, InputStream justreleaseConfigIS, ReleaseConfig releaseConfig) throws Exception {
super(projectConfigurationIS, justreleaseConfigIS, releaseConfig);
}
@Override
protected void readCurrentVersion() {
MavenXpp3Reader reader = new MavenXpp3Reader();
Model result = null;
try {
result = reader.read(projectConfigurationIS);
} catch (Exception e) {
e.printStackTrace();
}
this.currentVersion = result.getVersion();
}
@Override
protected void setNextVersion() {
String snapshotVersion = this.releaseConfig.getSnapshotVersion();
String releaseType = this.releaseConfig.getReleaseType();
if (snapshotVersion != null) {
this.nextVersion = snapshotVersion;
} else {
if (releaseType.equals("patch")) {
Version.Builder builder = new Version.Builder(getCurrentVersion());
this.releaseVersion = builder.build().getNormalVersion();
this.nextVersion = builder.build().incrementPatchVersion().getNormalVersion() + "-SNAPSHOT";
} else {
Version.Builder builder = new Version.Builder(this.releaseVersion);
this.nextVersion = builder.build().incrementPatchVersion().getNormalVersion() + "-SNAPSHOT";
}
}
}
}