This is an automated email from the ASF dual-hosted git repository.
NSAmelchev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new d142c0fcfd4 IGNITE-28672 Refactor REST welcome page and resource
loading (#13132)
d142c0fcfd4 is described below
commit d142c0fcfd45bd9c8f0ce262579fedb5340cf14a
Author: Nikita Amelchev <[email protected]>
AuthorDate: Mon May 18 09:30:08 2026 +0300
IGNITE-28672 Refactor REST welcome page and resource loading (#13132)
---
.../processors/rest/GridRestProcessor.java | 13 --
.../protocols/http/jetty/GridJettyRestHandler.java | 147 ++-------------------
.../http/jetty/GridJettyRestProtocol.java | 17 ++-
.../rest/protocols/http/jetty/WelcomeHandler.java | 92 +++++++++++++
.../processors/rest/protocols/http/jetty/rest.html | 79 -----------
.../ignite-rest-http}/favicon.ico | Bin
.../src/main/resources/ignite-rest-http/logo.svg | 1 +
.../src/main/resources/ignite-rest-http/rest.html | 122 +++++++++++++++++
parent/pom.xml | 1 +
9 files changed, 236 insertions(+), 236 deletions(-)
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
index f26b3af040e..99e665aaa9b 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
@@ -122,9 +122,6 @@ public class GridRestProcessor extends GridProcessorAdapter
implements IgniteRes
/** The default interval used to invalidate sessions, in seconds. */
public static final int DFLT_SES_TOKEN_INVALIDATE_INTERVAL = 5 * 60;
- /** Index of task name wrapped by VisorGatewayTask */
- private static final int WRAPPED_TASK_IDX = 1;
-
/** Protocols. */
private final Collection<GridRestProtocol> protos = new ArrayList<>();
@@ -1104,16 +1101,6 @@ public class GridRestProcessor extends
GridProcessorAdapter implements IgniteRes
return new Session(clientId, UUID.randomUUID());
}
- /**
- * Static constructor.
- *
- * @param sesTokId Session token ID.
- * @return New session instance with random client ID and given
session ID.
- */
- static Session fromSessionToken(UUID sesTokId) {
- return new Session(UUID.randomUUID(), sesTokId);
- }
-
/**
* Checks expiration of session and if expired then sets TIMEDOUT_FLAG.
*
diff --git
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
index efb4aff121c..333af0f9518 100644
---
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
+++
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
@@ -17,15 +17,9 @@
package org.apache.ignite.internal.processors.rest.protocols.http.jetty;
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
-import java.nio.charset.StandardCharsets;
import java.security.cert.X509Certificate;
import java.sql.Date;
import java.sql.Time;
@@ -100,8 +94,8 @@ import static
org.apache.ignite.internal.processors.rest.GridRestResponse.STATUS
* Jetty REST handler. The following URL format is supported: {@code
/ignite?cmd=cmdName¶m1=abc¶m2=123}
*/
public class GridJettyRestHandler extends AbstractHandler {
- /** Used to sent request charset. */
- private static final String CHARSET = StandardCharsets.UTF_8.name();
+ /** */
+ private static final String IGNITE_CMD_PATH = "/ignite";
/** */
private static final String FAILED_TO_PARSE_FORMAT = "Failed to parse
parameter of %s type [%s=%s]";
@@ -148,12 +142,6 @@ public class GridJettyRestHandler extends AbstractHandler {
/** Request handlers. */
private GridRestProtocolHandler hnd;
- /** Default page. */
- private volatile String dfltPage;
-
- /** Favicon. */
- private volatile byte[] favicon;
-
/** Mapper from Java object to JSON. */
private final ObjectMapper jsonMapper;
@@ -175,27 +163,6 @@ public class GridJettyRestHandler extends AbstractHandler {
this.authChecker = authChecker;
this.log = ctx.log(getClass());
this.jsonMapper = new IgniteObjectMapper(ctx);
-
- // Init default page and favicon.
- try {
- initDefaultPage();
-
- if (log.isDebugEnabled())
- log.debug("Initialized default page.");
- }
- catch (IOException e) {
- U.warn(log, "Failed to initialize default page: " +
e.getMessage());
- }
-
- try {
- initFavicon();
-
- if (log.isDebugEnabled())
- log.debug(favicon != null ? "Initialized favicon, size: " +
favicon.length : "Favicon is null.");
- }
- catch (IOException e) {
- U.warn(log, "Failed to initialize favicon: " + e.getMessage());
- }
}
/**
@@ -302,115 +269,17 @@ public class GridJettyRestHandler extends
AbstractHandler {
}
}
- /**
- * @throws IOException If failed.
- */
- private void initDefaultPage() throws IOException {
- assert dfltPage == null;
-
- InputStream in = getClass().getResourceAsStream("rest.html");
-
- if (in != null) {
- LineNumberReader rdr = new LineNumberReader(new
InputStreamReader(in, CHARSET));
-
- try {
- StringBuilder buf = new StringBuilder(2048);
-
- for (String line = rdr.readLine(); line != null; line =
rdr.readLine()) {
- buf.append(line);
-
- if (!line.endsWith(" "))
- buf.append(' ');
- }
-
- dfltPage = buf.toString();
- }
- finally {
- U.closeQuiet(rdr);
- }
- }
- }
-
- /**
- * @throws IOException If failed.
- */
- private void initFavicon() throws IOException {
- assert favicon == null;
-
- InputStream in = getClass().getResourceAsStream("favicon.ico");
-
- if (in != null) {
- BufferedInputStream bis = new BufferedInputStream(in);
-
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
- try {
- byte[] buf = new byte[2048];
-
- while (true) {
- int n = bis.read(buf);
-
- if (n == -1)
- break;
-
- bos.write(buf, 0, n);
- }
-
- favicon = bos.toByteArray();
- }
- finally {
- U.closeQuiet(bis);
- }
- }
- }
-
/** {@inheritDoc} */
- @Override public void handle(String target, Request req,
HttpServletRequest srvReq, HttpServletResponse res)
- throws IOException {
+ @Override public void handle(String target, Request req,
HttpServletRequest srvReq, HttpServletResponse res) {
if (log.isDebugEnabled())
log.debug("Handling request [target=" + target + ", req=" + req +
", srvReq=" + srvReq + ']');
- if (target.startsWith("/ignite")) {
- processRequest(target, srvReq, res);
-
- req.setHandled(true);
- }
- else if (target.startsWith("/favicon.ico")) {
- if (favicon == null) {
- res.setStatus(HttpServletResponse.SC_NOT_FOUND);
-
- req.setHandled(true);
-
- return;
- }
-
- res.setStatus(HttpServletResponse.SC_OK);
-
- res.setContentType("image/x-icon");
-
- res.getOutputStream().write(favicon);
- res.getOutputStream().flush();
-
- req.setHandled(true);
- }
- else {
- if (dfltPage == null) {
- res.setStatus(HttpServletResponse.SC_NOT_FOUND);
-
- req.setHandled(true);
-
- return;
- }
-
- res.setStatus(HttpServletResponse.SC_OK);
-
- res.setContentType("text/html");
+ if (!target.startsWith(IGNITE_CMD_PATH))
+ return;
- res.getWriter().write(dfltPage);
- res.getWriter().flush();
+ processRequest(target, srvReq, res);
- req.setHandled(true);
- }
+ req.setHandled(true);
}
/**
@@ -514,7 +383,7 @@ public class GridJettyRestHandler extends AbstractHandler {
* @return REST request.
* @throws IgniteCheckedException If creation failed.
*/
- @Nullable private GridRestRequest createRequest(
+ private GridRestRequest createRequest(
GridRestCommand cmd,
Map<String, String> params,
HttpServletRequest req
diff --git
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestProtocol.java
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestProtocol.java
index c1d0319d883..39a47c83a71 100644
---
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestProtocol.java
+++
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestProtocol.java
@@ -42,6 +42,8 @@ import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.NetworkConnector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.SslConnectionFactory;
+import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.util.MultiException;
import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
@@ -59,9 +61,6 @@ import static org.apache.ignite.spi.IgnitePortProtocol.TCP;
* Jetty REST protocol implementation.
*/
public class GridJettyRestProtocol extends GridRestProtocolAdapter {
- /**
- *
- */
static {
if (!IgniteSystemProperties.getBoolean(IGNITE_JETTY_LOG_NO_OVERRIDE)) {
// See also
https://www.eclipse.org/jetty/documentation/jetty-9/index.html#configuring-jetty-logging
@@ -155,9 +154,15 @@ public class GridJettyRestProtocol extends
GridRestProtocolAdapter {
connector.setPort(port);
if (startJetty()) {
- if (log.isInfoEnabled())
+ if (log.isInfoEnabled()) {
log.info(startInfo());
+ boolean isSsl =
connector.getConnectionFactory(SslConnectionFactory.class) != null;
+ String proto = isSsl ? "https" : "http";
+
+ log.info("HTTP REST protocol address: " + proto + "://" +
host + ":" + port + "/");
+ }
+
return;
}
}
@@ -312,7 +317,9 @@ public class GridJettyRestProtocol extends
GridRestProtocolAdapter {
assert httpSrv != null;
- httpSrv.setHandler(jettyHnd);
+ WelcomeHandler welcomeHnd = new WelcomeHandler(log);
+
+ httpSrv.setHandler(new HandlerList(jettyHnd, welcomeHnd));
override(getJettyConnector());
}
diff --git
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/WelcomeHandler.java
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/WelcomeHandler.java
new file mode 100644
index 00000000000..72b162b467a
--- /dev/null
+++
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/WelcomeHandler.java
@@ -0,0 +1,92 @@
+/*
+ * 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.
+ */
+
+package org.apache.ignite.internal.processors.rest.protocols.http.jetty;
+
+import java.io.IOException;
+import java.io.InputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.apache.ignite.IgniteLogger;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+
+/**
+ * Handles welcome page.
+ */
+public class WelcomeHandler extends AbstractHandler {
+ /** Default page. */
+ private final byte[] dfltPage;
+
+ /** Favicon. */
+ private final byte[] favicon;
+
+ /** Logo. */
+ private final byte[] logo;
+
+ /** */
+ private final IgniteLogger log;
+
+ /** */
+ public WelcomeHandler(IgniteLogger log) {
+ this.log = log;
+
+ favicon = loadResource("ignite-rest-http/favicon.ico");
+ dfltPage = loadResource("ignite-rest-http/rest.html");
+ logo = loadResource("ignite-rest-http/logo.svg");
+ }
+
+ /** {@inheritDoc} */
+ @Override public void handle(String target, Request req,
HttpServletRequest srvReq, HttpServletResponse res) throws IOException {
+ if (dfltPage == null || favicon == null || logo == null) {
+ res.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ req.setHandled(true);
+
+ return;
+ }
+
+ if (target.startsWith("/favicon.ico")) {
+ res.setContentType("image/x-icon");
+ res.getOutputStream().write(favicon);
+ }
+ else if (target.startsWith("/logo.svg")) {
+ res.setContentType("image/svg+xml");
+ res.getOutputStream().write(logo);
+ }
+ else {
+ res.setContentType("text/html; charset=utf-8");
+ res.getOutputStream().write(dfltPage);
+ }
+
+ res.getOutputStream().flush();
+
+ res.setStatus(HttpServletResponse.SC_OK);
+ req.setHandled(true);
+ }
+
+ /** */
+ private byte[] loadResource(String path) {
+ try (InputStream in =
getClass().getClassLoader().getResourceAsStream(path)) {
+ return in != null ? in.readAllBytes() : null;
+ }
+ catch (IOException e) {
+ log.error("Failed to load REST resource [path=" + path + ']', e);
+
+ return null;
+ }
+ }
+}
diff --git
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/rest.html
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/rest.html
deleted file mode 100644
index 10c5fc1ab6f..00000000000
---
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/rest.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--
- 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.
--->
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
- <meta http-equiv="Expires" content="-1">
- <meta http-equiv="Pragma" content="no-cache">
- <meta http-equiv="Cache-Control" content="no-cache">
- <meta http-equiv="Content-language" content="en-US">
- <meta http-equiv="Content-Type" content="text/html; CHARSET=UTF-8">
- <meta http-equiv="Author" content="Apache Software Foundation">
- <title>Apache Ignite - In-Memory Database and Caching Platform</title>
- <style type="text/css">
- body {
- font-family: helvetica, verdana, arial, sans-serif;
- font-size: 14px;
- line-height: 1.5em;
- color: #333;
- margin: 10px;
- }
- a, a:visited, a:active, a:hover {
- color: #333;
- text-decoration: none;
- border-bottom: 1px dotted;
- }
-
- a.img_link, a.img_link:visited, a.img_link:active, a.img_link:hover {
- text-decoration: none;
- border-bottom: 0;
- }
-
- img {
- border: none;
- }
- </style>
- <link rel="icon" type="image/x-icon" href="/favicon.ico"/>
-</head>
-<body>
- <br>
- <br>
- <center>
- <a class="img_link" href="https://ignite.apache.org" title="Apache
Software Foundation">
- <img src="http://ignite.apache.org/images/logo3.png" alt="Ignite -
In-Memory Database and Caching Platform">
- </a>
- <p>
- <div style="width: 650px; text-align: justify; padding-top: 20px">
- <h2>REST API</h2>
- Ignite REST API supports
- external connectivity to Ignite via REST over HTTP. It comes in
handy whenever Ignite Java API is not
- available directly, but it is still needed to execute Ignite tasks
or retrieve cached data. For example,
- you can conveniently use Ignite REST API over HTTP from other
non-JVM languages, such as Ruby, PHP or Python,
- or any other language, whenever local instance of Ignite is not
available.
- <p>
- Note that PHP REST example is included with Ignite distribution.
- <p>
- All REST HTTP commands have the following format:
<code>http://1.2.3.4:8080/ignite?cmd=CMD&...</code>, where
- <code>'cmd'</code> is the name of the command followed by other
command parameters. Every command may have
- different parameters, some of which may be mandatory and some
optional. The commands parameters may be
- passed either via HTTP GET or POST, whichever one is preferred.
- </div>
- </center>
-</body>
-</html>
diff --git
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/favicon.ico
b/modules/rest-http/src/main/resources/ignite-rest-http/favicon.ico
similarity index 100%
rename from
modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/favicon.ico
rename to modules/rest-http/src/main/resources/ignite-rest-http/favicon.ico
diff --git a/modules/rest-http/src/main/resources/ignite-rest-http/logo.svg
b/modules/rest-http/src/main/resources/ignite-rest-http/logo.svg
new file mode 100644
index 00000000000..ab96d1dc99e
--- /dev/null
+++ b/modules/rest-http/src/main/resources/ignite-rest-http/logo.svg
@@ -0,0 +1 @@
+<svg width="115" height="48" fill="none"
xmlns="http://www.w3.org/2000/svg"><path d="M52.546 37.95v-1.34c-.934
1.46-2.202 2.393-3.806 2.752a7.862 7.862 0 0
1-4.74-.383c-1.58-.622-2.92-1.795-4.045-3.493-1.125-1.7-1.7-3.925-1.7-6.7
0-3.255.742-5.863 2.226-7.897 1.484-2.01 3.878-3.015 7.182-3.015 2.513 0
4.835.67 6.99 2.034 2.154 1.364 3.207 3.877 3.207 7.538V38.5c0 3.66-1.077
6.149-3.207 7.489-2.155 1.34-4.477 2.01-6.99 2.01-4.812
0-7.804-2.25-8.953-6.748h5.721c.407.742 1.053 1.292 1.915 1 [...]
diff --git a/modules/rest-http/src/main/resources/ignite-rest-http/rest.html
b/modules/rest-http/src/main/resources/ignite-rest-http/rest.html
new file mode 100644
index 00000000000..99db51ad0ae
--- /dev/null
+++ b/modules/rest-http/src/main/resources/ignite-rest-http/rest.html
@@ -0,0 +1,122 @@
+<!--
+ 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.
+-->
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta http-equiv="Expires" content="-1">
+ <meta http-equiv="Pragma" content="no-cache">
+ <meta http-equiv="Cache-Control" content="no-cache">
+ <meta http-equiv="Author" content="Apache Software Foundation">
+
+ <title>Apache Ignite - REST API</title>
+
+ <link rel="icon" href="/favicon.ico" type="image/x-icon">
+
+ <style type="text/css">
+ body {
+ font-family: Helvetica, Verdana, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.5em;
+ color: #333;
+ margin: 20px 10px;
+ }
+ a, a:visited, a:active, a:hover {
+ color: #333;
+ text-decoration: none;
+ border-bottom: 1px dotted;
+ }
+ a.img_link, a.img_link:visited, a.img_link:active, a.img_link:hover {
+ text-decoration: none;
+ border-bottom: 0;
+ }
+ img {
+ border: none;
+ max-width: 100%;
+ }
+
+ .container {
+ max-width: 650px;
+ margin: 0 auto;
+ text-align: justify;
+ }
+
+ .logo {
+ text-align: center;
+ padding: 20px 0;
+ }
+
+ h2 {
+ color: #333;
+ margin-top: 30px;
+ }
+
+ code {
+ background: #f5f5f5;
+ padding: 2px 5px;
+ border-radius: 3px;
+ }
+ </style>
+</head>
+<body>
+<div class="container">
+ <div class="logo">
+ <a class="img_link" href="https://ignite.apache.org" title="Apache
Ignite">
+ <img src="/logo.svg" alt="Apache Ignite - In-Memory Database and
Caching Platform">
+ </a>
+ </div>
+
+ <h2>REST API</h2>
+
+ <p>
+ Ignite REST API supports external connectivity to Ignite via REST over
HTTP.
+ It comes in handy whenever Ignite Java API is not available directly,
but it
+ is still needed to execute Ignite tasks or retrieve cached data.
+ </p>
+
+ <p>
+ For example, you can conveniently use Ignite REST API over HTTP from
other
+ non-JVM languages, such as Ruby, PHP, Python, or any other language,
+ whenever a local instance of Ignite is not available.
+ </p>
+
+ <p>
+ You can find more detailed information about all available REST API
commands,
+ parameters, and examples in the official documentation:
+ <a href="https://ignite.apache.org/docs/ignite2/latest/restapi"
target="_blank" rel="noopener">
+ Apache Ignite — REST API
+ </a>.
+ </p>
+
+ <p>Note that PHP REST example is included with Ignite distribution.</p>
+
+ <p>
+ All REST HTTP commands have the following format:
+ <code>http://1.2.3.4:8080/ignite?cmd=CMD&...</code>, where
+ <code>cmd</code> is the name of the command followed by other command
parameters.
+ </p>
+
+ <p>
+ Every command may have different parameters, some of which may be
mandatory
+ and some optional. The command parameters may be passed either via
HTTP GET or POST.
+ </p>
+</div>
+</body>
+</html>
diff --git a/parent/pom.xml b/parent/pom.xml
index bba4e3ac078..5cd61890ab5 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -790,6 +790,7 @@
<inputExclude>**/*.iml</inputExclude><!--IDEA files-->
<inputExclude>**/*.csv</inputExclude><!--CSV files-->
<inputExclude>**/*.jks</inputExclude><!--bin-files-->
+
<inputExclude>**/*.svg</inputExclude><!--SVG-files-->
<inputExclude>**/pom-installed.xml</inputExclude><!--tmp-files-->
<inputExclude>**/keystore</inputExclude><!--bin-files-->
<inputExclude>**/keystore/*.jks</inputExclude><!--bin-files-->