Skip to content

Commit ffd5c5c

Browse files
committed
U info.plist additional entries support
1 parent 4b16949 commit ffd5c5c

File tree

7 files changed

+55
-4
lines changed

7 files changed

+55
-4
lines changed

build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ dependencies {
5555
implementation 'org.vafer:jdeb:1.9'
5656
implementation 'net.jsign:jsign-core:3.1'
5757
implementation 'org.redline-rpm:redline:1.2.10'
58-
58+
implementation 'commons-configuration:commons-configuration:1.10'
59+
implementation 'commons-beanutils:commons-beanutils:1.9.4'
60+
5961
testImplementation 'junit:junit:4.12'
6062

6163
compileOnly 'org.apache.maven.plugin-tools:maven-plugin-annotations:3.6.0'

src/main/java/io/github/fvarrui/javapackager/maven/PackageMojo.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,7 @@ public class PackageMojo extends AbstractMojo {
308308
*/
309309
@Parameter(property = "scripts", required = false)
310310
private Scripts scripts;
311-
312-
311+
313312
public void execute() throws MojoExecutionException {
314313

315314
Context.setContext(
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.fvarrui.javapackager.model;
2+
3+
public class InfoPlist {
4+
5+
private String additionalEntries = "";
6+
7+
public String getAdditionalEntries() {
8+
return additionalEntries;
9+
}
10+
11+
public void setAdditionalEntries(String additionalEntries) {
12+
this.additionalEntries = additionalEntries;
13+
}
14+
15+
@Override
16+
public String toString() {
17+
return "InfoPlist [additionalEntries=" + additionalEntries + "]";
18+
}
19+
20+
}

src/main/java/io/github/fvarrui/javapackager/model/MacConfig.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public class MacConfig implements Serializable {
3434
private String developerId = "-";
3535
private File entitlements;
3636
private boolean codesignApp = true;
37+
private InfoPlist infoPlist = new InfoPlist();
3738

3839
public File getIcnsFile() {
3940
return icnsFile;
@@ -203,6 +204,14 @@ public void setCodesignApp(boolean codesignApp) {
203204
this.codesignApp = codesignApp;
204205
}
205206

207+
public InfoPlist getInfoPlist() {
208+
return infoPlist;
209+
}
210+
211+
public void setInfoPlist(InfoPlist infoPlist) {
212+
this.infoPlist = infoPlist;
213+
}
214+
206215
@Override
207216
public String toString() {
208217
return "MacConfig [icnsFile=" + icnsFile + ", backgroundImage=" + backgroundImage + ", windowWidth="
@@ -211,7 +220,7 @@ public String toString() {
211220
+ ", appsLinkIconX=" + appsLinkIconX + ", appsLinkIconY=" + appsLinkIconY + ", volumeIcon=" + volumeIcon
212221
+ ", volumeName=" + volumeName + ", generateDmg=" + generateDmg + ", generatePkg=" + generatePkg
213222
+ ", relocateJar=" + relocateJar + ", appId=" + appId + ", developerId=" + developerId
214-
+ ", entitlements=" + entitlements + ", codesignApp=" + codesignApp + "]";
223+
+ ", entitlements=" + entitlements + ", codesignApp=" + codesignApp + ", infoPlist=" + infoPlist + "]";
215224
}
216225

217226
/**

src/main/java/io/github/fvarrui/javapackager/packagers/MacPackager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
import java.util.List;
88
import java.util.stream.Collectors;
99

10+
import org.apache.commons.configuration.ConfigurationException;
1011
import org.apache.commons.lang3.StringUtils;
1112
import org.codehaus.plexus.util.cli.CommandLineException;
1213

1314
import io.github.fvarrui.javapackager.model.Platform;
1415
import io.github.fvarrui.javapackager.utils.CommandUtils;
1516
import io.github.fvarrui.javapackager.utils.FileUtils;
17+
import io.github.fvarrui.javapackager.utils.InfoPlistUtils;
1618
import io.github.fvarrui.javapackager.utils.Logger;
1719
import io.github.fvarrui.javapackager.utils.VelocityUtils;
1820

@@ -130,6 +132,7 @@ public File doCreateApp() throws Exception {
130132
// creates and write the Info.plist file
131133
File infoPlistFile = new File(contentsFolder, "Info.plist");
132134
VelocityUtils.render("mac/Info.plist.vtl", infoPlistFile, this);
135+
InfoPlistUtils.prettifyInfoPlist(infoPlistFile);
133136
Logger.info("Info.plist file created in " + infoPlistFile.getAbsolutePath());
134137

135138
// codesigns app folder
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package io.github.fvarrui.javapackager.utils;
2+
3+
import java.io.File;
4+
5+
import org.apache.commons.configuration.ConfigurationException;
6+
import org.apache.commons.configuration.plist.XMLPropertyListConfiguration;
7+
8+
public class InfoPlistUtils {
9+
10+
public static void prettifyInfoPlist(File infoPlistFile) throws ConfigurationException {
11+
XMLPropertyListConfiguration config = new XMLPropertyListConfiguration(infoPlistFile);
12+
config.save();
13+
}
14+
15+
}

src/main/resources/mac/Info.plist.vtl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,5 +133,8 @@
133133
<string>There was an error while launching the application. Please
134134
click OK to display a dialog with more information or cancel and view
135135
the syslog for details.</string>
136+
#if($info.macConfig.infoPlist && $info.macConfig.infoPlist.additionalEntries)
137+
${info.macConfig.infoPlist.additionalEntries}
138+
#end
136139
</dict>
137140
</plist>

0 commit comments

Comments
 (0)