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

Allow property overwrites for version fields, outfile and jar analogous to the ANT task #49

Merged
merged 2 commits into from
Dec 19, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 106 additions & 59 deletions src/main/java/com/akathist/maven/plugins/launch4j/Launch4jMojo.java
Original file line number Diff line number Diff line change
Expand Up @@ -292,9 +292,6 @@ private File getJar() {

@Override
public void execute() throws MojoExecutionException {
if (getLog().isDebugEnabled()) {
printState();
}

final File workDir = setupBuildEnvironment();
if (infile != null) {
Expand All @@ -303,7 +300,50 @@ public void execute() throws MojoExecutionException {
if (getLog().isDebugEnabled()) {
getLog().debug("Trying to load Launch4j native configuration using file=" + infile.getAbsolutePath());
}
// load launch4j configfile from <infile>
ConfigPersister.getInstance().load(infile);

// overwrite several properties analogous to the ANT task
// https://sourceforge.net/p/launch4j/git/ci/master/tree/src/net/sf/launch4j/ant/Launch4jTask.java#l84

// retreive the loaded configuration for manipulation
Config c = ConfigPersister.getInstance().getConfig();

String jarDefaultValue = project.getBuild().getDirectory() + "/" + project.getBuild().getFinalName() + ".jar";
if (jar != null && !jar.equals(jarDefaultValue)) {
getLog().debug("Overwriting config file property 'jar' (='"+c.getJar().getAbsolutePath()+"') with local value '"+getJar().getAbsolutePath()+"'");
// only overwrite when != defaultValue (should be != null anytime because of the default value)
c.setJar(getJar());
}

File outFileDefaultValue = new File(project.getBuild().getDirectory() + "/" + project.getArtifactId() + ".exe");
if (outfile != null && !outfile.getAbsolutePath().equals(outFileDefaultValue.getAbsolutePath())) {
// only overwrite when != defaultValue (should be != null anytime because of the default value)
getLog().debug("Overwriting config file property 'outfile' (='"+c.getOutfile().getAbsolutePath()+"') with local value '"+outfile.getAbsolutePath()+"'");
c.setOutfile(outfile);
}

if (versionInfo != null) {
if (versionInfo.fileVersion != null) {
getLog().debug("Overwriting config file property 'versionInfo.fileVersion' (='"+c.getVersionInfo().getFileVersion()+"') with local value '"+versionInfo.fileVersion+"'");
c.getVersionInfo().setFileVersion(versionInfo.fileVersion);
}
if (versionInfo.txtFileVersion != null) {
getLog().debug("Overwriting config file property 'versionInfo.txtFileVersion' (='"+c.getVersionInfo().getTxtFileVersion()+"') with local value '"+versionInfo.txtFileVersion+"'");
c.getVersionInfo().setTxtFileVersion(versionInfo.txtFileVersion);
}
if (versionInfo.productVersion != null) {
getLog().debug("Overwriting config file property 'versionInfo.productVersion' (='"+c.getVersionInfo().getProductVersion()+"') with local value '"+versionInfo.productVersion+"'");
c.getVersionInfo().setProductVersion(versionInfo.productVersion);
}
if (versionInfo.txtProductVersion != null) {
getLog().debug("Overwriting config file property 'versionInfo.txtProductVersion' (='"+c.getVersionInfo().getTxtProductVersion()+"') with local value '"+versionInfo.txtProductVersion+"'");
c.getVersionInfo().setTxtProductVersion(versionInfo.txtProductVersion);
}
}

ConfigPersister.getInstance().setAntConfig(c, infile.getParentFile());

} catch (ConfigPersisterException e) {
getLog().error(e);
throw new MojoExecutionException("Could not load Launch4j native configuration file", e);
Expand Down Expand Up @@ -353,6 +393,10 @@ public void execute() throws MojoExecutionException {
ConfigPersister.getInstance().setAntConfig(c, getBaseDir());
}

if (getLog().isDebugEnabled()) {
printState();
}

final Builder builder = new Builder(new MavenLog(getLog()), workDir);
try {
builder.build();
Expand Down Expand Up @@ -563,82 +607,85 @@ private File getBaseDir() {
*/
private void printState() {
Log log = getLog();

log.debug("headerType = " + headerType);
log.debug("outfile = " + outfile);
log.debug("jar = " + jar);
log.debug("dontWrapJar = " + dontWrapJar);
log.debug("errTitle = " + errTitle);
log.debug("downloadUrl = " + downloadUrl);
log.debug("supportUrl = " + supportUrl);
log.debug("cmdLine = " + cmdLine);
log.debug("chdir = " + chdir);
log.debug("priority = " + priority);
log.debug("stayAlive = " + stayAlive);
log.debug("restartOnCrash = " + restartOnCrash);
log.debug("icon = " + icon);
log.debug("objs = " + objs);
log.debug("libs = " + libs);
log.debug("vars = " + vars);
if (singleInstance != null) {
log.debug("singleInstance.mutexName = " + singleInstance.mutexName);
log.debug("singleInstance.windowTitle = " + singleInstance.windowTitle);
Config c = ConfigPersister.getInstance().getConfig();

log.debug("headerType = " + c.getHeaderType());
log.debug("outfile = " + c.getOutfile());
log.debug("jar = " + c.getJar());
log.debug("dontWrapJar = " + c.isDontWrapJar());
log.debug("errTitle = " + c.getErrTitle());
log.debug("downloadUrl = " + c.getDownloadUrl());
log.debug("supportUrl = " + c.getSupportUrl());
log.debug("cmdLine = " + c.getCmdLine());
log.debug("chdir = " + c.getChdir());
log.debug("priority = " + c.getPriority());
log.debug("stayAlive = " + c.isStayAlive());
log.debug("restartOnCrash = " + c.isRestartOnCrash());
log.debug("icon = " + c.getIcon());
log.debug("objs = " + c.getHeaderObjects());
log.debug("libs = " + c.getLibs());
log.debug("vars = " + c.getVariables());
if (c.getSingleInstance() != null) {
log.debug("singleInstance.mutexName = " + c.getSingleInstance().getMutexName());
log.debug("singleInstance.windowTitle = " + c.getSingleInstance().getWindowTitle());
} else {
log.debug("singleInstance = null");
}
if (jre != null) {
log.debug("jre.path = " + jre.path);
log.debug("jre.minVersion = " + jre.minVersion);
log.debug("jre.maxVersion = " + jre.maxVersion);
log.debug("jre.jdkPreference = " + jre.jdkPreference);
log.debug("jre.initialHeapSize = " + jre.initialHeapSize);
log.debug("jre.initialHeapPercent = " + jre.initialHeapPercent);
log.debug("jre.maxHeapSize = " + jre.maxHeapSize);
log.debug("jre.maxHeapPercent = " + jre.maxHeapPercent);
log.debug("jre.opts = " + jre.opts);
if (c.getJre() != null) {
log.debug("jre.path = " + c.getJre().getPath());
log.debug("jre.minVersion = " + c.getJre().getMinVersion());
log.debug("jre.maxVersion = " + c.getJre().getMaxVersion());
log.debug("jre.jdkPreference = " + c.getJre().getJdkPreference());
log.debug("jre.initialHeapSize = " + c.getJre().getInitialHeapSize());
log.debug("jre.initialHeapPercent = " + c.getJre().getInitialHeapPercent());
log.debug("jre.maxHeapSize = " + c.getJre().getMaxHeapSize());
log.debug("jre.maxHeapPercent = " + c.getJre().getMaxHeapPercent());
log.debug("jre.opts = " + c.getJre().getOptions());
} else {
log.debug("jre = null");
}
if (c.getClassPath() != null) {
log.debug("classPath.mainClass = " + c.getClassPath().getMainClass());
}
if (classPath != null) {
log.debug("classPath.mainClass = " + classPath.mainClass);
log.debug("classPath.addDependencies = " + classPath.addDependencies);
log.debug("classPath.jarLocation = " + classPath.jarLocation);
log.debug("classPath.preCp = " + classPath.preCp);
log.debug("classPath.postCp = " + classPath.postCp);
} else {
log.info("classpath = null");
}
if (splash != null) {
log.debug("splash.file = " + splash.file);
log.debug("splash.waitForWindow = " + splash.waitForWindow);
log.debug("splash.timeout = " + splash.timeout);
log.debug("splash.timoutErr = " + splash.timeoutErr);
if (c.getSplash() != null) {
log.debug("splash.file = " + c.getSplash().getFile());
log.debug("splash.waitForWindow = " + c.getSplash().getWaitForWindow());
log.debug("splash.timeout = " + c.getSplash().getTimeout());
log.debug("splash.timoutErr = " + c.getSplash().isTimeoutErr());
} else {
log.debug("splash = null");
}
if (versionInfo != null) {
log.debug("versionInfo.fileVersion = " + versionInfo.fileVersion);
log.debug("versionInfo.txtFileVersion = " + versionInfo.txtFileVersion);
log.debug("versionInfo.fileDescription = " + versionInfo.fileDescription);
log.debug("versionInfo.copyright = " + versionInfo.copyright);
log.debug("versionInfo.productVersion = " + versionInfo.productVersion);
log.debug("versionInfo.txtProductVersion = " + versionInfo.txtProductVersion);
log.debug("versionInfo.productName = " + versionInfo.productName);
log.debug("versionInfo.companyName = " + versionInfo.companyName);
log.debug("versionInfo.internalName = " + versionInfo.internalName);
log.debug("versionInfo.originalFilename = " + versionInfo.originalFilename);
log.debug("versionInfo.language = " + versionInfo.language);
log.debug("versionInfo.languageIndex = " + versionInfo.languageIndex);
log.debug("versionInfo.trademarks = " + versionInfo.trademarks);
if (c.getVersionInfo() != null) {
log.debug("versionInfo.fileVersion = " + c.getVersionInfo().getFileVersion());
log.debug("versionInfo.txtFileVersion = " + c.getVersionInfo().getTxtFileVersion());
log.debug("versionInfo.fileDescription = " + c.getVersionInfo().getFileDescription());
log.debug("versionInfo.copyright = " + c.getVersionInfo().getCopyright());
log.debug("versionInfo.productVersion = " + c.getVersionInfo().getProductVersion());
log.debug("versionInfo.txtProductVersion = " + c.getVersionInfo().getTxtProductVersion());
log.debug("versionInfo.productName = " + c.getVersionInfo().getProductName());
log.debug("versionInfo.companyName = " + c.getVersionInfo().getCompanyName());
log.debug("versionInfo.internalName = " + c.getVersionInfo().getInternalName());
log.debug("versionInfo.originalFilename = " + c.getVersionInfo().getOriginalFilename());
log.debug("versionInfo.language = " + c.getVersionInfo().getLanguage());
log.debug("versionInfo.languageIndex = " + c.getVersionInfo().getLanguageIndex());
log.debug("versionInfo.trademarks = " + c.getVersionInfo().getTrademarks());
} else {
log.debug("versionInfo = null");
}
if (messages != null) {
log.debug("messages.startupErr = " + messages.startupErr);
log.debug("messages.bundledJreErr = " + messages.bundledJreErr);
log.debug("messages.jreVersionErr = " + messages.jreVersionErr);
log.debug("messages.launcherErr = " + messages.launcherErr);
log.debug("messages.instanceAlreadyExistsMsg = " + messages.instanceAlreadyExistsMsg);
if (c.getMessages() != null) {
log.debug("messages.startupErr = " + c.getMessages().getStartupErr());
log.debug("messages.bundledJreErr = " + c.getMessages().getBundledJreErr());
log.debug("messages.jreVersionErr = " + c.getMessages().getJreVersionErr());
log.debug("messages.launcherErr = " + c.getMessages().getLauncherErr());
log.debug("messages.instanceAlreadyExistsMsg = " + c.getMessages().getInstanceAlreadyExistsMsg());
} else {
log.debug("messages = null");
}
Expand Down