+
+
+
+ package
+
+
+ com.example;
+
+
+
+
+
+
+
+
+ import
+
+
+ java.io.IOException;
+
+
+
+
+
+
+ import
+
+
+ java.io.OutputStream;
+
+
+
+
+
+
+ import
+
+
+ java.net.InetSocketAddress;
+
+
+
+
+
+
+
+
+ import
+
+
+ com.sun.net.httpserver.HttpExchange;
+
+
+
+
+
+
+ import
+
+
+ com.sun.net.httpserver.HttpHandler;
+
+
+
+
+
+
+ import
+
+
+ com.sun.net.httpserver.HttpServer;
+
+
+
+
+
+
+
+
+ public
+
+
+
+
+
+ class
+
+
+
+
+
+ Test
+
+
+
+
+
+ {
+
+
+
+
+
+
+
+
+ public
+
+
+
+
+
+ static
+
+
+
+
+
+ void
+
+
+
+
+
+ main
+
+
+ (String[] args)
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+ {
+
+
+
+ HttpServer server = HttpServer.create(
+
+
+ new
+
+
+ InetSocketAddress(
+
+
+ 8000
+
+
+ ),
+
+
+ 0
+
+
+ );
+
+
+
+ server.createContext(
+
+
+ "/test"
+
+
+ ,
+
+
+ new
+
+
+ MyHandler());
+
+
+
+ server.setExecutor(
+
+
+ null
+
+
+ );
+
+
+ // creates a default executor
+
+
+
+
+
+ server.start();
+
+ }
+
+
+
+
+
+
+
+ static
+
+
+
+
+
+ class
+
+
+
+
+
+ MyHandler
+
+
+
+
+
+ implements
+
+
+
+
+
+ HttpHandler
+
+
+
+
+
+ {
+
+
+
+
+
+
+ @Override
+
+
+
+
+
+
+
+
+
+ public
+
+
+
+
+
+ void
+
+
+
+
+
+ handle
+
+
+ (HttpExchange t)
+
+
+
+
+
+ throws
+
+
+ IOException
+
+
+ {
+
+
+
+ String response =
+
+
+ "This is the response"
+
+
+ ;
+
+
+
+ t.sendResponseHeaders(
+
+
+ 200
+
+
+ , response.length());
+
+
+ OutputStream os = t.getResponseBody();
+
+ os.write(response.getBytes());
+
+ os.close();
+
+ }
+
+ }
+
+
+
+ }
+
+
+
diff --git a/scm-ui/ui-plugins/package.json b/scm-ui/ui-plugins/package.json
index d95c16d511..93b7836c88 100644
--- a/scm-ui/ui-plugins/package.json
+++ b/scm-ui/ui-plugins/package.json
@@ -1,12 +1,12 @@
{
"name": "@scm-manager/ui-plugins",
- "version": "2.3.0-SNAPSHOT",
+ "version": "2.3.0",
"license": "MIT",
"bin": {
"ui-plugins": "./bin/ui-plugins.js"
},
"dependencies": {
- "@scm-manager/ui-components": "^2.3.0-SNAPSHOT",
+ "@scm-manager/ui-components": "^2.3.0",
"@scm-manager/ui-extensions": "^2.1.0",
"classnames": "^2.2.6",
"query-string": "^5.0.1",
@@ -25,7 +25,7 @@
"@scm-manager/tsconfig": "^2.1.0",
"@scm-manager/ui-scripts": "^2.1.0",
"@scm-manager/ui-tests": "^2.1.0",
- "@scm-manager/ui-types": "^2.1.0",
+ "@scm-manager/ui-types": "^2.3.0",
"@types/classnames": "^2.2.9",
"@types/enzyme": "^3.10.3",
"@types/fetch-mock": "^7.3.1",
diff --git a/scm-ui/ui-styles/package.json b/scm-ui/ui-styles/package.json
index 49256f8a26..8efa51cd75 100644
--- a/scm-ui/ui-styles/package.json
+++ b/scm-ui/ui-styles/package.json
@@ -10,7 +10,7 @@
},
"dependencies": {
"@fortawesome/fontawesome-free": "^5.11.2",
- "bulma": "^0.8.0",
+ "bulma": "^0.9.0",
"bulma-popover": "^1.0.0",
"bulma-tooltip": "^3.0.0",
"react-diff-view": "^2.4.1"
diff --git a/scm-ui/ui-types/package.json b/scm-ui/ui-types/package.json
index 96d9a14a97..c021045369 100644
--- a/scm-ui/ui-types/package.json
+++ b/scm-ui/ui-types/package.json
@@ -1,6 +1,6 @@
{
"name": "@scm-manager/ui-types",
- "version": "2.1.0",
+ "version": "2.3.0",
"description": "Flow types for SCM-Manager related Objects",
"main": "src/index.ts",
"files": [
diff --git a/scm-ui/ui-types/src/Plugin.ts b/scm-ui/ui-types/src/Plugin.ts
index 66cb8b994f..635f277f9f 100644
--- a/scm-ui/ui-types/src/Plugin.ts
+++ b/scm-ui/ui-types/src/Plugin.ts
@@ -36,6 +36,7 @@ export type Plugin = {
pending: boolean;
markedForUninstall?: boolean;
dependencies: string[];
+ optionalDependencies: string[];
_links: Links;
};
diff --git a/scm-ui/ui-webapp/package.json b/scm-ui/ui-webapp/package.json
index 002f765ce8..1cc39be1bc 100644
--- a/scm-ui/ui-webapp/package.json
+++ b/scm-ui/ui-webapp/package.json
@@ -1,13 +1,13 @@
{
"name": "@scm-manager/ui-webapp",
- "version": "2.3.0-SNAPSHOT",
+ "version": "2.3.0",
"private": true,
"dependencies": {
- "@scm-manager/ui-components": "^2.3.0-SNAPSHOT",
+ "@scm-manager/ui-components": "^2.3.0",
"@scm-manager/ui-extensions": "^2.1.0",
"classnames": "^2.2.5",
"history": "^4.10.1",
- "i18next": "^17.3.0",
+ "i18next": "^19.6.0",
"i18next-browser-languagedetector": "^4.0.0",
"i18next-fetch-backend": "^2.2.0",
"memoize-one": "^5.0.4",
diff --git a/scm-ui/ui-webapp/public/locales/de/admin.json b/scm-ui/ui-webapp/public/locales/de/admin.json
index db096832eb..620228df0b 100644
--- a/scm-ui/ui-webapp/public/locales/de/admin.json
+++ b/scm-ui/ui-webapp/public/locales/de/admin.json
@@ -62,6 +62,7 @@
"currentVersion": "Installierte Version",
"newVersion": "Neue Version",
"dependencyNotification": "Mit diesem Plugin werden folgende Abhängigkeiten mit installiert bzw. aktualisiert, wenn sie noch nicht in der aktuellen Version vorhanden sind!",
+ "optionalDependencyNotification": "Mit diesem Plugin werden folgende optionale Abhängigkeiten mit aktualisiert, falls sie installiert sind!",
"dependencies": "Abhängigkeiten",
"installedNotification": "Das Plugin wurde erfolgreich installiert. Um Änderungen an der UI zu sehen, muss die Seite neu geladen werden:",
"updatedNotification": "Das Plugin wurde erfolgreich aktualisiert. Um Änderungen an der UI zu sehen, muss die Seite neu geladen werden:",
diff --git a/scm-ui/ui-webapp/public/locales/en/admin.json b/scm-ui/ui-webapp/public/locales/en/admin.json
index 829aecf3d4..eae79e3a9c 100644
--- a/scm-ui/ui-webapp/public/locales/en/admin.json
+++ b/scm-ui/ui-webapp/public/locales/en/admin.json
@@ -62,6 +62,7 @@
"currentVersion": "Installed version",
"newVersion": "New version",
"dependencyNotification": "With this plugin, the following dependencies will be installed/updated if their latest versions are not installed yet!",
+ "optionalDependencyNotification": "With this plugin, the following optional dependencies will be updated if they are installed!",
"dependencies": "Dependencies",
"installedNotification": "Successfully installed plugin. You have to reload the page, to see ui changes:",
"updatedNotification": "Successfully updated plugin. You have to reload the page, to see ui changes:",
diff --git a/scm-ui/ui-webapp/src/admin/plugins/components/PluginModal.tsx b/scm-ui/ui-webapp/src/admin/plugins/components/PluginModal.tsx
index 05ddf1f848..8a76a0d7e3 100644
--- a/scm-ui/ui-webapp/src/admin/plugins/components/PluginModal.tsx
+++ b/scm-ui/ui-webapp/src/admin/plugins/components/PluginModal.tsx
@@ -183,6 +183,27 @@ class PluginModal extends React.Component