[
https://issues.apache.org/jira/browse/KARAF-5909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16718409#comment-16718409
]
ASF GitHub Bot commented on KARAF-5909:
---------------------------------------
jbonofre closed pull request #695: [KARAF-5909] Add support of karaf.log and
java 11 in wrapper
URL: https://github.com/apache/karaf/pull/695
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/shell/core/pom.xml b/shell/core/pom.xml
index 577c3bb051..8411f0c92a 100644
--- a/shell/core/pom.xml
+++ b/shell/core/pom.xml
@@ -121,6 +121,18 @@
</resource>
</resources>
<plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
diff --git
a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/standalone/Main.java
b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/standalone/Main.java
index ee29c8283e..322b986aea 100644
---
a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/standalone/Main.java
+++
b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/standalone/Main.java
@@ -52,6 +52,10 @@
private String user = "karaf";
public static void main(String args[]) throws Exception {
+ Package p =
Package.getPackage("org.apache.karaf.shell.impl.console.standalone");
+ if (p != null && p.getImplementationVersion() != null) {
+ System.setProperty("karaf.version", p.getImplementationVersion());
+ }
Main main = new Main();
main.run(args);
}
diff --git
a/wrapper/src/main/java/org/apache/karaf/wrapper/internal/WrapperServiceImpl.java
b/wrapper/src/main/java/org/apache/karaf/wrapper/internal/WrapperServiceImpl.java
index 8bb764046a..dcb58b5160 100644
---
a/wrapper/src/main/java/org/apache/karaf/wrapper/internal/WrapperServiceImpl.java
+++
b/wrapper/src/main/java/org/apache/karaf/wrapper/internal/WrapperServiceImpl.java
@@ -61,6 +61,8 @@ public void install() throws Exception {
props.put("${karaf.base}", base.getPath());
props.put("${karaf.data}", System.getProperty("karaf.data"));
props.put("${karaf.etc}", System.getProperty("karaf.etc"));
+ props.put("${karaf.log}", System.getProperty("karaf.log"));
+ props.put("${karaf.version}", System.getProperty("karaf.version"));
props.put("${name}", name);
props.put("${displayName}", displayName);
props.put("${description}", description);
@@ -80,7 +82,14 @@ public void install() throws Exception {
serviceFile = new File(bin, name + "-service.bat");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf,
"windows64/karaf-wrapper.conf", props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"windows64/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"windows64/karaf-wrapper-java8.conf", props, envs, includes);
+ }
+
copyFilteredResourceTo(serviceFile,
"windows64/karaf-service.bat", props, envs, includes);
mkdir(lib);
@@ -93,7 +102,14 @@ public void install() throws Exception {
serviceFile = new File(bin, name + "-service.bat");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf,
"windows/karaf-wrapper.conf", props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"windows/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"windows/karaf-wrapper-java8.conf", props, envs, includes);
+ }
+
copyFilteredResourceTo(serviceFile,
"windows/karaf-service.bat", props, envs, includes);
mkdir(lib);
@@ -111,7 +127,14 @@ public void install() throws Exception {
chmod(serviceFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
File plistConf = new File(bin, "org.apache.karaf."+ name +
".plist");
copyFilteredResourceTo(plistConf,
"macosx/org.apache.karaf.KARAF.plist", props, envs, includes);
@@ -137,7 +160,13 @@ public void install() throws Exception {
chmod(systemdFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
mkdir(lib);
copyResourceTo(new File(lib, "libwrapper.so"),
"linux64/libwrapper.so", false);
@@ -157,7 +186,13 @@ public void install() throws Exception {
chmod(systemdFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
mkdir(lib);
copyResourceTo(new File(lib, "libwrapper.so"),
"linux/libwrapper.so", false);
@@ -176,7 +211,13 @@ public void install() throws Exception {
chmod(serviceFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
mkdir(lib);
copyResourceTo(new File(lib, "libwrapper.a"),
"aix/ppc64/libwrapper.a", false);
@@ -192,7 +233,13 @@ public void install() throws Exception {
chmod(serviceFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
mkdir(lib);
copyResourceTo(new File(lib, "libwrapper.a"),
"aix/ppc32/libwrapper.a", false);
@@ -211,7 +258,13 @@ public void install() throws Exception {
chmod(serviceFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
mkdir(lib);
copyResourceTo(new File(lib, "libwrapper.so"),
"solaris/sparc64/libwrapper.so", false);
@@ -227,7 +280,13 @@ public void install() throws Exception {
chmod(serviceFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
mkdir(lib);
copyResourceTo(new File(lib, "libwrapper.so"),
"solaris/x86/libwrapper.so", false);
@@ -243,7 +302,13 @@ public void install() throws Exception {
chmod(serviceFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
mkdir(lib);
copyResourceTo(new File(lib, "libwrapper.so"),
"solaris/x86_64/libwrapper.so", false);
@@ -259,7 +324,13 @@ public void install() throws Exception {
chmod(serviceFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
mkdir(lib);
copyResourceTo(new File(lib, "libwrapper.so"),
"solaris/sparc32/libwrapper.so", false);
@@ -276,7 +347,13 @@ public void install() throws Exception {
chmod(serviceFile, "a+x");
wrapperConf = new File(etc, name + "-wrapper.conf");
- copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf",
props, envs, includes);
+ if (!System.getProperty("java.version").startsWith("1.")) {
+ // we are on Java > 8 (Java 9, 10, 11, ...)
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java11.conf", props, envs, includes);
+ } else {
+ // we are on Java 8
+ copyFilteredResourceTo(wrapperConf,
"unix/karaf-wrapper-java8.conf", props, envs, includes);
+ }
mkdir(lib);
copyResourceTo(new File(lib, "libwrapper.sl"),
"hpux/parisc64/libwrapper.sl", false);
diff --git
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper-java11.conf
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper-java11.conf
new file mode 100644
index 0000000000..aa49cc5c25
--- /dev/null
+++
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper-java11.conf
@@ -0,0 +1,138 @@
+# ------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ------------------------------------------------------------------------
+
+#********************************************************************
+# Wrapper Properties
+#********************************************************************
+set.default.JAVA_HOME=${java.home}
+set.default.KARAF_HOME=${karaf.home}
+set.default.KARAF_BASE=${karaf.base}
+set.default.KARAF_DATA=${karaf.data}
+set.default.KARAF_ETC=${karaf.etc}
+set.default.KARAF_LOG=${karaf.log}
+set.default.KARAF_VERSION=${karaf.version}
+
+set.JDK_JAVA_OPTIONS=--add-reads=java.xml=java.logging
--add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED
--patch-module
java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
--patch-module
java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-%KARAF_VERSION%.jar
--add-opens java.base/java.security=ALL-UNNAMED --add-opens
java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED --add-opens
java.naming/javax.naming.spi=ALL-UNNAMED --add-opens
java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED
--add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED
--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
+
+# Java Application
+wrapper.working.dir=%KARAF_BASE%
+wrapper.java.command=%JAVA_HOME%/bin/java
+wrapper.java.mainclass=org.apache.karaf.wrapper.internal.service.Main
+wrapper.java.classpath.1=%KARAF_BASE%/lib/boot/*.jar
+wrapper.java.classpath.2=%KARAF_BASE%/lib/jdk9plus/*.jar
+wrapper.java.classpath.3=%KARAF_BASE%/lib/wrapper/*.jar
+wrapper.java.library.path.1=%KARAF_BASE%/lib/wrapper/
+
+# Application Parameters. Add parameters as needed starting from 1
+#wrapper.app.parameter.1=
+
+# JVM Parameters
+# note that n is the parameter number starting from 1.
+wrapper.java.additional.1=-Dkaraf.instances=%KARAF_HOME%/instances
+wrapper.java.additional.2=-Dkaraf.home=%KARAF_HOME%
+wrapper.java.additional.3=-Dkaraf.base=%KARAF_BASE%
+wrapper.java.additional.4=-Dkaraf.data=%KARAF_DATA%
+wrapper.java.additional.5=-Dkaraf.etc=%KARAF_ETC%
+wrapper.java.additional.6=-Dkaraf.log=%KARAF_LOG%
+wrapper.java.additional.7=-Dkaraf.restart.jvm.supported=true
+wrapper.java.additional.8=-Djava.io.tmpdir=%KARAF_DATA%/tmp
+wrapper.java.additional.9=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties
+wrapper.java.additional.10=-Dcom.sun.management.jmxremote
+wrapper.java.additional.11=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.12=-Dkaraf.startRemoteShell=true
+
+# Uncomment to enable jmx
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
+
+# Uncomment to enable YourKit profiling
+#wrapper.java.additional.n=-Xrunyjpagent
+
+# Uncomment to enable remote debugging
+#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE
+#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
+
+# Initial Java Heap Size (in MB)
+#wrapper.java.initmemory=3
+
+# Maximum Java Heap Size (in MB)
+wrapper.java.maxmemory=512
+
+
+#********************************************************************
+# Wrapper Logging Properties
+#********************************************************************
+# Format of output for the console. (See docs for formats)
+wrapper.console.format=PM
+
+# Log Level for console output. (See docs for log levels)
+wrapper.console.loglevel=INFO
+
+# Log file to use for wrapper output logging.
+wrapper.logfile=%KARAF_LOG%/wrapper.log
+
+# Format of output for the log file. (See docs for formats)
+wrapper.logfile.format=LPTM
+
+# Log Level for log file output. (See docs for log levels)
+wrapper.logfile.loglevel=INFO
+
+# Maximum size that the log file will be allowed to grow to before
+# the log is rolled. Size is specified in bytes. The default value
+# of 0, disables log rolling. May abbreviate with the 'k' (kb) or
+# 'm' (mb) suffix. For example: 10m = 10 megabytes.
+wrapper.logfile.maxsize=10m
+
+# Maximum number of rolled log files which will be allowed before old
+# files are deleted. The default value of 0 implies no limit.
+wrapper.logfile.maxfiles=5
+
+# Log Level for sys/event log output. (See docs for log levels)
+wrapper.syslog.loglevel=NONE
+
+#********************************************************************
+# Wrapper Windows Properties
+#********************************************************************
+# Title to use when running as a console
+wrapper.console.title=${name}
+
+#********************************************************************
+# Wrapper Windows NT/2000/XP Service Properties
+#********************************************************************
+# WARNING - Do not modify any of these properties when an application
+# using this configuration file has been installed as a service.
+# Please uninstall the service before modifying this section. The
+# service can then be reinstalled.
+
+# Name of the service
+wrapper.ntservice.name=${name}
+
+# Display name of the service
+wrapper.ntservice.displayname=${displayName}
+
+# Description of the service
+wrapper.ntservice.description=${description}
+
+# Service dependencies. Add dependencies as needed starting from 1
+wrapper.ntservice.dependency.1=
+
+# Mode in which the service is installed. AUTO_START or DEMAND_START
+wrapper.ntservice.starttype=${startType}
+
+# Allow the service to interact with the desktop.
+wrapper.ntservice.interactive=false
diff --git
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper-java8.conf
similarity index 90%
rename from
wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
rename to
wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper-java8.conf
index aea1487546..b14f848800 100644
---
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
+++
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper-java8.conf
@@ -23,6 +23,7 @@ set.default.KARAF_HOME=${karaf.home}
set.default.KARAF_BASE=${karaf.base}
set.default.KARAF_DATA=${karaf.data}
set.default.KARAF_ETC=${karaf.etc}
+set.default.KARAF_LOG=${karaf.log}
# Java Application
wrapper.working.dir=%KARAF_BASE%
@@ -44,12 +45,13 @@ wrapper.java.additional.4=-Dkaraf.home=%KARAF_HOME%
wrapper.java.additional.5=-Dkaraf.base=%KARAF_BASE%
wrapper.java.additional.6=-Dkaraf.data=%KARAF_DATA%
wrapper.java.additional.7=-Dkaraf.etc=%KARAF_ETC%
-wrapper.java.additional.8=-Dkaraf.restart.jvm.supported=true
-wrapper.java.additional.9=-Djava.io.tmpdir=%KARAF_DATA%/tmp
-wrapper.java.additional.10=-Djava.util.logging.config.file=%KARAF_BASE%/etc/java.util.logging.properties
-wrapper.java.additional.11=-Dcom.sun.management.jmxremote
-wrapper.java.additional.12=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.13=-Dkaraf.startRemoteShell=true
+wrapper.java.additional.8=-Dkaraf.log=%KARAF_LOG%
+wrapper.java.additional.9=-Dkaraf.restart.jvm.supported=true
+wrapper.java.additional.10=-Djava.io.tmpdir=%KARAF_DATA%/tmp
+wrapper.java.additional.11=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties
+wrapper.java.additional.12=-Dcom.sun.management.jmxremote
+wrapper.java.additional.13=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.14=-Dkaraf.startRemoteShell=true
# Uncomment to enable jmx
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
@@ -80,7 +82,7 @@ wrapper.console.format=PM
wrapper.console.loglevel=INFO
# Log file to use for wrapper output logging.
-wrapper.logfile=%KARAF_DATA%/log/wrapper.log
+wrapper.logfile=%KARAF_LOG%/wrapper.log
# Format of output for the log file. (See docs for formats)
wrapper.logfile.format=LPTM
diff --git
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper-java11.conf
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper-java11.conf
new file mode 100644
index 0000000000..35d6fd5536
--- /dev/null
+++
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper-java11.conf
@@ -0,0 +1,138 @@
+# ------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ------------------------------------------------------------------------
+
+#********************************************************************
+# Wrapper Properties
+#********************************************************************
+set.default.JAVA_HOME=${java.home}
+set.default.KARAF_HOME=${karaf.home}
+set.default.KARAF_BASE=${karaf.base}
+set.default.KARAF_DATA=${karaf.data}
+set.default.KARAF_ETC=${karaf.etc}
+set.default.KARAF_LOG=${karaf.log}
+set.default.KARAF_VERSION=${karaf.version}
+
+set.JDK_JAVA_OPTIONS=--add-reads=java.xml=java.logging
--add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED
--patch-module
java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
--patch-module
java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-%KARAF_VERSION%.jar
--add-opens java.base/java.security=ALL-UNNAMED --add-opens
java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED --add-opens
java.naming/javax.naming.spi=ALL-UNNAMED --add-opens
java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED
--add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED
--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
+
+# Java Application
+wrapper.working.dir=%KARAF_BASE%
+wrapper.java.command=%JAVA_HOME%/bin/java
+wrapper.java.mainclass=org.apache.karaf.wrapper.internal.service.Main
+wrapper.java.classpath.1=%KARAF_BASE%/lib/boot/*.jar
+wrapper.java.classpath.2=%KARAF_BASE%/lib/jdk9plus/*.jar
+wrapper.java.classpath.3=%KARAF_BASE%/lib/wrapper/*.jar
+wrapper.java.library.path.1=%KARAF_BASE%/lib/wrapper/
+
+# Application Parameters. Add parameters as needed starting from 1
+#wrapper.app.parameter.1=
+
+# JVM Parameters
+# note that n is the parameter number starting from 1.
+wrapper.java.additional.1=-Dkaraf.instances=%KARAF_HOME%/instances
+wrapper.java.additional.2=-Dkaraf.home=%KARAF_HOME%
+wrapper.java.additional.3=-Dkaraf.base=%KARAF_BASE%
+wrapper.java.additional.4=-Dkaraf.data=%KARAF_DATA%
+wrapper.java.additional.5=-Dkaraf.etc=%KARAF_ETC%
+wrapper.java.additional.6=-Dkaraf.log=%KARAF_LOG%
+wrapper.java.additional.7=-Dkaraf.restart.jvm.supported=true
+wrapper.java.additional.8=-Djava.io.tmpdir=%KARAF_DATA%/tmp
+wrapper.java.additional.9=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties
+wrapper.java.additional.10=-Dcom.sun.management.jmxremote
+wrapper.java.additional.11=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.12=-Dkaraf.startRemoteShell=true
+
+# Uncomment to enable jmx
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
+
+# Uncomment to enable YourKit profiling
+#wrapper.java.additional.n=-Xrunyjpagent
+
+# Uncomment to enable remote debugging
+#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE
+#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
+
+# Initial Java Heap Size (in MB)
+#wrapper.java.initmemory=3
+
+# Maximum Java Heap Size (in MB)
+wrapper.java.maxmemory=512
+
+
+#********************************************************************
+# Wrapper Logging Properties
+#********************************************************************
+# Format of output for the console. (See docs for formats)
+wrapper.console.format=PM
+
+# Log Level for console output. (See docs for log levels)
+wrapper.console.loglevel=INFO
+
+# Log file to use for wrapper output logging.
+wrapper.logfile=%KARAF_LOG%/wrapper.log
+
+# Format of output for the log file. (See docs for formats)
+wrapper.logfile.format=LPTM
+
+# Log Level for log file output. (See docs for log levels)
+wrapper.logfile.loglevel=INFO
+
+# Maximum size that the log file will be allowed to grow to before
+# the log is rolled. Size is specified in bytes. The default value
+# of 0, disables log rolling. May abbreviate with the 'k' (kb) or
+# 'm' (mb) suffix. For example: 10m = 10 megabytes.
+wrapper.logfile.maxsize=10m
+
+# Maximum number of rolled log files which will be allowed before old
+# files are deleted. The default value of 0 implies no limit.
+wrapper.logfile.maxfiles=5
+
+# Log Level for sys/event log output. (See docs for log levels)
+wrapper.syslog.loglevel=NONE
+
+#********************************************************************
+# Wrapper Windows Properties
+#********************************************************************
+# Title to use when running as a console
+wrapper.console.title=${name}
+
+#********************************************************************
+# Wrapper Windows NT/2000/XP Service Properties
+#********************************************************************
+# WARNING - Do not modify any of these properties when an application
+# using this configuration file has been installed as a service.
+# Please uninstall the service before modifying this section. The
+# service can then be reinstalled.
+
+# Name of the service
+wrapper.ntservice.name=${name}
+
+# Display name of the service
+wrapper.ntservice.displayname=${displayName}
+
+# Description of the service
+wrapper.ntservice.description=${description}
+
+# Service dependencies. Add dependencies as needed starting from 1
+wrapper.ntservice.dependency.1=
+
+# Mode in which the service is installed. AUTO_START or DEMAND_START
+wrapper.ntservice.starttype=${startType}
+
+# Allow the service to interact with the desktop.
+wrapper.ntservice.interactive=false
diff --git
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper-java8.conf
similarity index 90%
rename from
wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
rename to
wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper-java8.conf
index c8cdc3e5d9..77dfd52109 100644
---
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
+++
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper-java8.conf
@@ -23,6 +23,7 @@ set.default.KARAF_HOME=${karaf.home}
set.default.KARAF_BASE=${karaf.base}
set.default.KARAF_DATA=${karaf.data}
set.default.KARAF_ETC=${karaf.etc}
+set.default.KARAF_LOG=${karaf.log}
# Java Application
wrapper.working.dir=%KARAF_BASE%
@@ -44,12 +45,13 @@ wrapper.java.additional.4=-Dkaraf.home="%KARAF_HOME%"
wrapper.java.additional.5=-Dkaraf.base="%KARAF_BASE%"
wrapper.java.additional.6=-Dkaraf.data="%KARAF_DATA%"
wrapper.java.additional.7=-Dkaraf.etc="%KARAF_ETC%"
-wrapper.java.additional.8=-Dkaraf.restart.jvm.supported=true
-wrapper.java.additional.9=-Djava.io.tmpdir="%KARAF_DATA%/tmp"
-wrapper.java.additional.10=-Djava.util.logging.config.file=%KARAF_BASE%/etc/java.util.logging.properties
-wrapper.java.additional.11=-Dcom.sun.management.jmxremote
-wrapper.java.additional.12=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.13=-Dkaraf.startRemoteShell=true
+wrapper.java.additional.8=-Dkaraf.log="%KARAF_LOG%"
+wrapper.java.additional.9=-Dkaraf.restart.jvm.supported=true
+wrapper.java.additional.10=-Djava.io.tmpdir="%KARAF_DATA%/tmp"
+wrapper.java.additional.11=-Djava.util.logging.config.file="%KARAF_ETC%/java.util.logging.properties"
+wrapper.java.additional.12=-Dcom.sun.management.jmxremote
+wrapper.java.additional.13=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.14=-Dkaraf.startRemoteShell=true
# Uncomment to enable jmx
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
@@ -80,7 +82,7 @@ wrapper.console.format=PM
wrapper.console.loglevel=INFO
# Log file to use for wrapper output logging.
-wrapper.logfile=%KARAF_DATA%/log/wrapper.log
+wrapper.logfile=%KARAF_LOG%/wrapper.log
# Format of output for the log file. (See docs for formats)
wrapper.logfile.format=LPTM
diff --git
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper-java11.conf
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper-java11.conf
new file mode 100644
index 0000000000..9fa8f554aa
--- /dev/null
+++
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper-java11.conf
@@ -0,0 +1,138 @@
+# ------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ------------------------------------------------------------------------
+
+#********************************************************************
+# Wrapper Properties
+#********************************************************************
+set.default.JAVA_HOME=${java.home}
+set.default.KARAF_HOME=${karaf.home}
+set.default.KARAF_BASE=${karaf.base}
+set.default.KARAF_DATA=${karaf.data}
+set.default.KARAF_ETC=${karaf.etc}
+set.default.KARAF_LOG=${karaf.log}
+set.default.KARAF_VERSION=${karaf.version}
+
+set.JDK_JAVA_OPTIONS=--add-reads=java.xml=java.logging
--add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED
--patch-module
java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
--patch-module
java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-%KARAF_VERSION%.jar
--add-opens java.base/java.security=ALL-UNNAMED --add-opens
java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED --add-opens
java.naming/javax.naming.spi=ALL-UNNAMED --add-opens
java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED
--add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED
--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
+
+# Java Application
+wrapper.working.dir=%KARAF_BASE%
+wrapper.java.command=%JAVA_HOME%/bin/java
+wrapper.java.mainclass=org.apache.karaf.wrapper.internal.service.Main
+wrapper.java.classpath.1=%KARAF_BASE%/lib/boot/*.jar
+wrapper.java.classpath.2=%KARAF_BASE%/lib/jdk9plus/*.jar
+wrapper.java.classpath.3=%KARAF_BASE%/lib/wrapper/*.jar
+wrapper.java.library.path.1=%KARAF_BASE%/lib/wrapper/
+
+# Application Parameters. Add parameters as needed starting from 1
+#wrapper.app.parameter.1=
+
+# JVM Parameters
+# note that n is the parameter number starting from 1.
+wrapper.java.additional.1=-Dkaraf.instances=%KARAF_HOME%/instances
+wrapper.java.additional.2=-Dkaraf.home=%KARAF_HOME%
+wrapper.java.additional.3=-Dkaraf.base=%KARAF_BASE%
+wrapper.java.additional.4=-Dkaraf.data=%KARAF_DATA%
+wrapper.java.additional.5=-Dkaraf.etc=%KARAF_ETC%
+wrapper.java.additional.6=-Dkaraf.log=%KARAF_LOG%
+wrapper.java.additional.7=-Dkaraf.restart.jvm.supported=true
+wrapper.java.additional.8=-Djava.io.tmpdir=%KARAF_DATA%/tmp
+wrapper.java.additional.9=-Djava.util.logging.config.file=%KARAF_BASE%/etc/java.util.logging.properties
+wrapper.java.additional.10=-Dcom.sun.management.jmxremote
+wrapper.java.additional.11=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.12=-Dkaraf.startRemoteShell=true
+
+# Uncomment to enable jmx
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
+
+# Uncomment to enable YourKit profiling
+#wrapper.java.additional.n=-Xrunyjpagent
+
+# Uncomment to enable remote debugging
+#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE
+#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
+
+# Initial Java Heap Size (in MB)
+#wrapper.java.initmemory=3
+
+# Maximum Java Heap Size (in MB)
+wrapper.java.maxmemory=512
+
+
+#********************************************************************
+# Wrapper Logging Properties
+#********************************************************************
+# Format of output for the console. (See docs for formats)
+wrapper.console.format=PM
+
+# Log Level for console output. (See docs for log levels)
+wrapper.console.loglevel=INFO
+
+# Log file to use for wrapper output logging.
+wrapper.logfile=%KARAF_LOG%/wrapper.log
+
+# Format of output for the log file. (See docs for formats)
+wrapper.logfile.format=LPTM
+
+# Log Level for log file output. (See docs for log levels)
+wrapper.logfile.loglevel=INFO
+
+# Maximum size that the log file will be allowed to grow to before
+# the log is rolled. Size is specified in bytes. The default value
+# of 0, disables log rolling. May abbreviate with the 'k' (kb) or
+# 'm' (mb) suffix. For example: 10m = 10 megabytes.
+wrapper.logfile.maxsize=10m
+
+# Maximum number of rolled log files which will be allowed before old
+# files are deleted. The default value of 0 implies no limit.
+wrapper.logfile.maxfiles=5
+
+# Log Level for sys/event log output. (See docs for log levels)
+wrapper.syslog.loglevel=NONE
+
+#********************************************************************
+# Wrapper Windows Properties
+#********************************************************************
+# Title to use when running as a console
+wrapper.console.title=${name}
+
+#********************************************************************
+# Wrapper Windows NT/2000/XP Service Properties
+#********************************************************************
+# WARNING - Do not modify any of these properties when an application
+# using this configuration file has been installed as a service.
+# Please uninstall the service before modifying this section. The
+# service can then be reinstalled.
+
+# Name of the service
+wrapper.ntservice.name=${name}
+
+# Display name of the service
+wrapper.ntservice.displayname=${displayName}
+
+# Description of the service
+wrapper.ntservice.description=${description}
+
+# Service dependencies. Add dependencies as needed starting from 1
+wrapper.ntservice.dependency.1=
+
+# Mode in which the service is installed. AUTO_START or DEMAND_START
+wrapper.ntservice.starttype=${startType}
+
+# Allow the service to interact with the desktop.
+wrapper.ntservice.interactive=false
diff --git
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper-java8.conf
similarity index 90%
rename from
wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
rename to
wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper-java8.conf
index f0630bb789..b0c8bdb84c 100644
---
a/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
+++
b/wrapper/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper-java8.conf
@@ -23,6 +23,7 @@ set.default.KARAF_HOME=${karaf.home}
set.default.KARAF_BASE=${karaf.base}
set.default.KARAF_DATA=${karaf.data}
set.default.KARAF_ETC=${karaf.etc}
+set.default.KARAF_LOG=${karaf.log}
# Java Application
wrapper.working.dir=%KARAF_BASE%
@@ -44,12 +45,13 @@ wrapper.java.additional.4=-Dkaraf.home="%KARAF_HOME%"
wrapper.java.additional.5=-Dkaraf.base="%KARAF_BASE%"
wrapper.java.additional.6=-Dkaraf.data="%KARAF_DATA%"
wrapper.java.additional.7=-Dkaraf.etc="%KARAF_ETC%"
-wrapper.java.additional.8=-Dkaraf.restart.jvm.supported=true
-wrapper.java.additional.9=-Djava.io.tmpdir="%KARAF_DATA%/tmp"
-wrapper.java.additional.10=-Djava.util.logging.config.file="%KARAF_BASE%/etc/java.util.logging.properties"
-wrapper.java.additional.11=-Dcom.sun.management.jmxremote
-wrapper.java.additional.12=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.13=-Dkaraf.startRemoteShell=true
+wrapper.java.additional.8=-Dkaraf.log="%KARAF_LOG%"
+wrapper.java.additional.9=-Dkaraf.restart.jvm.supported=true
+wrapper.java.additional.10=-Djava.io.tmpdir="%KARAF_DATA%/tmp"
+wrapper.java.additional.11=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties
+wrapper.java.additional.12=-Dcom.sun.management.jmxremote
+wrapper.java.additional.13=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.14=-Dkaraf.startRemoteShell=true
# Uncomment to enable jmx
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
@@ -80,7 +82,7 @@ wrapper.console.format=PM
wrapper.console.loglevel=INFO
# Log file to use for wrapper output logging.
-wrapper.logfile=%KARAF_DATA%/log/wrapper.log
+wrapper.logfile=%KARAF_LOG%/wrapper.log
# Format of output for the log file. (See docs for formats)
wrapper.logfile.format=LPTM
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Starting Karaf 4.2.1 won't start as Windows service
> ---------------------------------------------------
>
> Key: KARAF-5909
> URL: https://issues.apache.org/jira/browse/KARAF-5909
> Project: Karaf
> Issue Type: Bug
> Components: karaf
> Affects Versions: 4.2.1
> Reporter: Scott Leschke
> Assignee: Jean-Baptiste Onofré
> Priority: Major
> Fix For: 4.2.2
>
>
> Karaf 4.2.1 won't start as a service (Windows) with Java 10 (and 9 I assume)
> because the JVM won't start. Runs fine when started with karaf.bat
> STATUS | wrapper | 2018/09/12 14:20:55 | --> Wrapper Started as Service
> STATUS | wrapper | 2018/09/12 14:20:55 | Launching a JVM...
> INFO | jvm 1 | 2018/09/12 14:20:55 | -Djava.endorsed.dirs=C:\Program is not
> supported. Endorsed standards and standalone APIs
> INFO | jvm 1 | 2018/09/12 14:20:55 | in modular form will be supported via
> the concept of upgradeable modules.
> INFO | jvm 1 | 2018/09/12 14:20:55 | Error: Could not create the Java Virtual
> Machine.
> INFO | jvm 1 | 2018/09/12 14:20:55 | Error: A fatal exception has occurred.
> Program will exit.
> ERROR | wrapper | 2018/09/12 14:20:55 | JVM exited while loading the
> application.
> STATUS | wrapper | 2018/09/12 14:21:00 | Launching a JVM...
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)