[java-idp-jetty-base] 01/04: IDP-2285 Start looking at Windows Installer for Jetty12

Rod Widdowson rdw at steadingsoftware.com
Sun Jun 23 14:50:04 UTC 2024


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch dev/IDP-2285
in repository java-idp-jetty-base.

View the commit online:
http://git.shibboleth.net/view/?p=java-idp-jetty-base.git;a=commit;h=b12fb7156b4a94d8d8736e11f3bbe00e9648c952

commit b12fb7156b4a94d8d8736e11f3bbe00e9648c952
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sun Jun 23 11:28:17 2024 +0100

    IDP-2285 Start looking at Windows Installer for Jetty12
    
    https://shibboleth.atlassian.net/issues/IDP-2285
    
    Manually merge forward the changes to the pom file from the IDP-2147 branch
    (which build the MSI only)
---
 pom.xml | 311 ++++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 205 insertions(+), 106 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2bb09bc..22b100a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,18 +7,33 @@
     <parent>
         <groupId>net.shibboleth</groupId>
         <artifactId>parent</artifactId>
-        <version>17.1.3-SNAPSHOT</version>
+        <version>17.1.2</version>
     </parent>
 
-    <name>idp-jetty-base</name>
+    <name>Jetty base and Windows Installer</name>
+    <description>
+        All the files needed for a jetty base to work with the IdP on
+        Windows plus the work needed to emit an MSI
+    </description>
     <groupId>net.shibboleth.idp</groupId>
-    <artifactId>idp-jetty-base</artifactId>
+    <artifactId>idp-jetty-base-windows</artifactId>
     <packaging>pom</packaging>
-    <version>12.0.0-SNAPSHOT</version>
+    <version>12.0.9.0-SNAPSHOT</version>
 
     <properties>
         <assemblyDirectory>${project.build.directory}/idp-jetty-base</assemblyDirectory>
+        <!-- dependencies for the shipped jetty-base -->
         <logback.version>1.5.3</logback.version>
+        <slf4j.version>2.0.12</slf4j.version>
+        <!-- The things we will combine into the MSI -->
+        <procrun.groupId>commons-daemon</procrun.groupId>
+        <procrun.artifactId>commons-daemon</procrun.artifactId>
+        <procrun.version>1.3.4</procrun.version>
+        <procrun.classifier>bin-windows</procrun.classifier>
+        <jetty.version>12.0.9</jetty.version>
+	<!-- Control for building the MSI -->
+        <jetty.revision>5</jetty.revision>
+        <supress.validation>false</supress.validation>
     </properties>
 
     <dependencies>
@@ -33,107 +48,191 @@
         <!-- Managed Dependencies -->
     </dependencies>
 
-    <build>
-        <plugins>
-            <!-- Copy src/main/resources to assembly directory. -->
-            <plugin>
-                <artifactId>maven-resources-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>copy-resources</id>
-                        <phase>prepare-package</phase>
-                        <goals>
-                            <goal>copy-resources</goal>
-                        </goals>
-                        <configuration>
-                            <includeEmptyDirs>true</includeEmptyDirs>
-                            <outputDirectory>${assemblyDirectory}</outputDirectory>
-                            <resources>
-                                <resource>
-                                    <directory>${basedir}/src/main/resources</directory>
-                                    <excludes>
-                                        <exclude>**/.gitkeep</exclude>
-                                    </excludes>
-                                    <filtering>false</filtering>
-                                </resource>
-                            </resources>
-                        </configuration>
-                    </execution>
-                    <!-- Copy src/test/resources to assembly-testbed directory. -->
-                    <!-- Don't build the testbed this way, yet ...
-                    <execution>
-                        <id>copy-testbed-resources</id>
-                        <phase>prepare-package</phase>
-                        <goals>
-                            <goal>copy-resources</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${assemblyDirectory}-testbed</outputDirectory>
-                            <resources>
-                                <resource>
-                                    <directory>${basedir}/src/test/resources</directory>
-                                    <excludes>
-                                        <exclude>**/.gitkeep</exclude>
-                                    </excludes>
-                                </resource>
-                            </resources>
-                        </configuration>
-                    </execution>
-                     -->
-                </executions>
-            </plugin>
-            <plugin>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <executions>
-                    <!-- Copy Logback logging dependencies to jetty-base/lib/logging directory. -->
-                    <execution>
-                        <id>copy-jetty-logging-logback</id>
-                        <phase>prepare-package</phase>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                        <configuration>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>ch.qos.logback</groupId>
-                                    <artifactId>logback-classic</artifactId>
-                                    <version>${logback.version}</version>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>ch.qos.logback</groupId>
-                                    <artifactId>logback-core</artifactId>
-                                    <version>${logback.version}</version>
-                                </artifactItem>
-                            </artifactItems>
-                            <outputDirectory>${assemblyDirectory}/jetty-base/lib/logging/</outputDirectory>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <!-- Assemble the artifacts. -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <appendAssemblyId>false</appendAssemblyId>
-                    <descriptors>
-                        <descriptor>src/main/assembly/tgz.xml</descriptor>
-                        <descriptor>src/main/assembly/zip.xml</descriptor>
-                        <!--  <descriptor>src/main/assembly/testbed.xml</descriptor> -->
-                    </descriptors>
-                    <tarLongFileMode>gnu</tarLongFileMode>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>make-assembly</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>build-msi</id>
+            <activation>
+                <activeByDefault>false</activeByDefault>
+                <os>
+                    <family>windows</family>
+                </os>
+            </activation>
 
+            <build>
+                <plugins>
+                    <!-- Copy src/main/resources to assembly directory. -->
+                    <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>copy-resources</id>
+                                <phase>process-sources</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                    <includeEmptyDirs>true</includeEmptyDirs>
+                                    <outputDirectory>${assemblyDirectory}</outputDirectory>
+                                    <resources>
+                                        <resource>
+                                            <directory>${basedir}/src/main/resources</directory>
+                                            <filtering>false</filtering>
+                                        </resource>
+                                    </resources>
+                                </configuration>
+                            </execution>
+                            <!-- Copy src/test/resources to assembly-testbed directory. -->
+                            <!-- Don't build the testbed this way, yet ...
+                            <execution>
+                                <id>copy-testbed-resources</id>
+                                <phase>prepare-package</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                    <outputDirectory>${assemblyDirectory}-testbed</outputDirectory>
+                                    <resources>
+                                        <resource>
+                                            <directory>${basedir}/src/test/resources</directory>
+                                            <excludes>
+                                                <exclude>**/.gitkeep</exclude>
+                                            </excludes>
+                                        </resource>
+                                    </resources>
+                                </configuration>
+                            </execution>
+                             -->
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-dependency-plugin</artifactId>
+                        <executions>
+                            <!-- Copy Logback logging dependencies to jetty-base/lib/logging directory. -->
+                            <execution>
+                                <id>copy-jetty-logging-logback</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>copy</goal>
+                                </goals>
+                                <configuration>
+                                    <artifactItems>
+                                        <artifactItem>
+                                            <groupId>ch.qos.logback</groupId>
+                                            <artifactId>logback-classic</artifactId>
+                                            <version>${logback.version}</version>
+                                        </artifactItem>
+                                        <artifactItem>
+                                            <groupId>ch.qos.logback</groupId>
+                                            <artifactId>logback-core</artifactId>
+                                            <version>${logback.version}</version>
+                                        </artifactItem>
+                                    </artifactItems>
+                                    <outputDirectory>${assemblyDirectory}/jetty-base/lib/logging/</outputDirectory>
+                                </configuration>
+                            </execution>
+                            <!-- Unpack procrun -->
+                            <execution>
+                                <id>unpack-procrun</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>unpack</goal>
+                                </goals>
+                                <configuration>
+                                    <artifactItems>
+                                        <artifactItem>
+                                            <groupId>${procrun.groupId}</groupId>
+                                            <artifactId>${procrun.artifactId}</artifactId>
+                                            <version>${procrun.version}</version>
+                                            <classifier>${procrun.classifier}</classifier>
+                                            <type>zip</type>
+                                            <outputDirectory>${project.build.directory}/procrun/</outputDirectory>
+                                        </artifactItem>
+                                    </artifactItems>
+                                </configuration>
+                            </execution>
+                            <!-- Unpack Jetty -->
+                            <execution>
+                                <id>unpack-jetty</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>unpack</goal>
+                                </goals>
+                                <configuration>
+                                    <artifactItems>
+                                        <artifactItem>
+                                            <groupId>${jetty.groupId}</groupId>
+                                            <artifactId>jetty-home</artifactId>
+                                            <version>${jetty.version}</version>
+                                            <type>zip</type>
+                                            <outputDirectory>${project.build.directory}/</outputDirectory>
+                                        </artifactItem>
+                                    </artifactItems>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!-- WIX -->
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>exec-maven-plugin</artifactId>
+                        <version>${maven-exec-plugin.version}</version>
+                        <executions>
+                            <!-- clean -->
+                            <execution>
+                                <id>clean</id>
+                                <phase>clean</phase>
+                                <goals>
+                                    <goal>exec</goal>
+                                </goals>
+                                <configuration>
+                                    <executable>msbuild</executable>
+                                    <executable>dotnet</executable>
+                                    <arguments>
+                                        <argument>clean</argument>
+                                        <argument>src/main/wix/wix.vcxproj</argument>
+                                    </arguments>
+                                </configuration>
+                            </execution>
+                            <!--Build -->
+                            <execution>
+                                <id>compile</id>
+                                <phase>compile</phase>
+                                <goals>
+                                    <goal>exec</goal>
+                                </goals>
+                                <configuration>
+                                    <executable>dotnet</executable>
+                                    <arguments>
+                                        <argument>build</argument>
+                                        <argument>src/main/wix/wix.vcxproj</argument>
+                                        <argument>/p:JettyVersion=${jetty.version},SuppressValidation=${supress.validation},JettyRevision=${jetty.revision}</argument>
+                                    </arguments>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!-- copy built output to final location, giving the MSI an appropriate name -->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-antrun-plugin</artifactId>
+                        <version>1.8</version>
+                        <executions>
+                            <execution>
+                                <id>move-msi-to-target</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                                <configuration>
+                                    <target>
+                                        <copy file="src/main/wix/obj/Debug/wix.msi" tofile="${project.build.directory}/shibboleth-jetty-base-x64-${project.version}.msi"/>
+                                    </target>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list