Skip to content

Commit 583c538

Browse files
committed
[MASSEMBLY-791] - overrideUmask option to ensure permissions in packaged archive match expected ones.
1 parent d607c75 commit 583c538

File tree

4 files changed

+29
-0
lines changed

4 files changed

+29
-0
lines changed

src/main/java/org/apache/maven/plugins/assembly/AssemblerConfigurationSource.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,4 +223,12 @@ public interface AssemblerConfigurationSource {
223223
* @return Override group name.
224224
*/
225225
String getOverrideGroupName();
226+
227+
/**
228+
* @return Mask which is applied to permissions of files/directories before they are put into assembly.
229+
* If {@code null} then the mask is not explicitly configured and remains implementation-specific.
230+
*/
231+
default Integer getOverrideUmask() {
232+
return null;
233+
}
226234
}

src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,10 @@ protected Archiver createArchiver(
347347
if (StringUtils.isNotBlank(configSource.getOverrideGroupName())) {
348348
archiver.setOverrideGroupName(StringUtils.trim(configSource.getOverrideGroupName()));
349349
}
350+
final Integer overrideUmask = configSource.getOverrideUmask();
351+
if (overrideUmask != null) {
352+
archiver.setUmask(overrideUmask);
353+
}
350354

351355
return archiver;
352356
}

src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,13 @@ public abstract class AbstractAssemblyMojo extends AbstractMojo implements Assem
430430
@Parameter
431431
private String overrideGroupName;
432432

433+
/**
434+
* Override of mask which is applied to permissions of files/directories before they are put into assembly.
435+
* If {@code null} then the mask is not explicitly configured and remains implementation-specific.
436+
*/
437+
@Parameter
438+
private Integer overrideUmask;
439+
433440
public static FixedStringSearchInterpolator mainProjectInterpolator(MavenProject mainProject) {
434441
if (mainProject != null) {
435442
// 5
@@ -879,4 +886,9 @@ public Integer getOverrideGid() {
879886
public String getOverrideGroupName() {
880887
return this.overrideGroupName;
881888
}
889+
890+
@Override
891+
public Integer getOverrideUmask() {
892+
return this.overrideUmask;
893+
}
882894
}

src/test/java/org/apache/maven/plugins/assembly/testutils/PojoConfigSource.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,4 +451,9 @@ public Integer getOverrideGid() {
451451
public String getOverrideGroupName() {
452452
return "root";
453453
}
454+
455+
@Override
456+
public Integer getOverrideUmask() {
457+
return null;
458+
}
454459
}

0 commit comments

Comments
 (0)