diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/CBApplicationAdapter.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/GQLApplicationAdapter.java similarity index 87% rename from server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/CBApplicationAdapter.java rename to server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/GQLApplicationAdapter.java index 35abc5adc9..1fa2fe33fa 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/CBApplicationAdapter.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/GQLApplicationAdapter.java @@ -25,7 +25,7 @@ //FIXME: this interface should not exist, // the logic of platforms and applications should be separated from each other -public interface CBApplicationAdapter extends WebApplication { +public interface GQLApplicationAdapter extends WebApplication { AppWebSessionManager getSessionManager(); WebDriverRegistry getDriverRegistry(); @@ -34,4 +34,10 @@ public interface CBApplicationAdapter extends WebApplication { Map getProductConfiguration(); List getLocalInetAddresses(); + + Map getInitActions(); + + boolean isLicenseValid(); + + String getLicenseStatus(); } diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBApplication.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBApplication.java index e85cc73354..923aee84d5 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBApplication.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBApplication.java @@ -19,7 +19,7 @@ import io.cloudbeaver.WebServiceUtils; import io.cloudbeaver.auth.NoAuthCredentialsProvider; import io.cloudbeaver.model.app.BaseWebApplication; -import io.cloudbeaver.model.app.CBApplicationAdapter; +import io.cloudbeaver.model.app.GQLApplicationAdapter; import io.cloudbeaver.model.app.WebAuthApplication; import io.cloudbeaver.model.app.WebAuthConfiguration; import io.cloudbeaver.registry.WebDriverRegistry; @@ -76,7 +76,7 @@ * This class controls all aspects of the application's execution */ public abstract class CBApplication extends - BaseWebApplication implements WebAuthApplication, CBApplicationAdapter { + BaseWebApplication implements WebAuthApplication, GQLApplicationAdapter { private static final Log log = Log.getLog(CBApplication.class); diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBPlatform.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBPlatform.java index d12f02814d..58cfac3274 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBPlatform.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBPlatform.java @@ -19,7 +19,7 @@ import io.cloudbeaver.auth.NoAuthCredentialsProvider; import io.cloudbeaver.model.app.AppWebSessionManager; -import io.cloudbeaver.model.app.CBApplicationAdapter; +import io.cloudbeaver.model.app.GQLApplicationAdapter; import io.cloudbeaver.server.jobs.SessionStateJob; import io.cloudbeaver.server.jobs.WebDataSourceMonitorJob; import io.cloudbeaver.server.jobs.WebSessionMonitorJob; @@ -60,7 +60,7 @@ public class CBPlatform extends BaseWebPlatform { @Nullable - private static CBApplicationAdapter application = null; + private static GQLApplicationAdapter application = null; private CBPreferenceStore preferenceStore; protected final List applicableDrivers = new ArrayList<>(); @@ -72,7 +72,7 @@ public static CBPlatform getInstance() { protected CBPlatform() { } - public static void setApplication(@NotNull CBApplicationAdapter application) { + public static void setApplication(@NotNull GQLApplicationAdapter application) { CBPlatform.application = application; } @@ -128,7 +128,7 @@ public synchronized void dispose() { @NotNull @Override - public CBApplicationAdapter getApplication() { + public GQLApplicationAdapter getApplication() { return application; } diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/graphql/GraphQLEndpoint.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/graphql/GraphQLEndpoint.java index a0ee694bae..ef3a2694bd 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/graphql/GraphQLEndpoint.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/graphql/GraphQLEndpoint.java @@ -31,10 +31,12 @@ import io.cloudbeaver.model.session.WebSession; import io.cloudbeaver.registry.WebServiceRegistry; import io.cloudbeaver.server.CBApplication; +import io.cloudbeaver.server.CBPlatform; import io.cloudbeaver.server.HttpConstants; import io.cloudbeaver.service.DBWBindingContext; import io.cloudbeaver.service.DBWServiceBindingGraphQL; import io.cloudbeaver.service.WebServiceBindingBase; +import io.cloudbeaver.utils.WebAppUtils; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; @@ -122,7 +124,7 @@ protected void doOptions(HttpServletRequest request, HttpServletResponse respons } private void setDevelHeaders(HttpServletRequest request, HttpServletResponse response) { - if (CBApplication.getInstance().isDevelMode()) { + if (WebAppUtils.getWebApplication().getServerConfiguration().isDevelMode()) { // response.setHeader(HEADER_ACCESS_CONTROL_ALLOW_ORIGIN, "*"); // response.setHeader(HEADER_ACCESS_CONTROL_ALLOW_HEADERS, "*"); // response.setHeader(HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS, "*"); @@ -209,7 +211,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t if (path == null) { path = request.getServletPath(); } - boolean develMode = CBApplication.getInstance().isDevelMode(); + boolean develMode = WebAppUtils.getWebApplication().getServerConfiguration().isDevelMode(); if (path.contentEquals("/schema.json") && develMode) { executeQuery(request, response, GraphQLConstants.SCHEMA_READ_QUERY, null, null); diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/servlets/CBStatusServlet.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/servlets/CBStatusServlet.java index ceb4fdf748..0a2ba7a4a6 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/servlets/CBStatusServlet.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/servlets/CBStatusServlet.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonWriter; import io.cloudbeaver.server.CBApplication; import io.cloudbeaver.server.CBConstants; +import io.cloudbeaver.server.CBPlatform; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServletRequest; @@ -46,7 +47,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t infoMap.put("health", "ok"); infoMap.put("product.name", GeneralUtils.getProductName()); infoMap.put("product.version", GeneralUtils.getProductVersion().toString()); - CBApplication.getInstance().getStatusInfo(infoMap); + CBPlatform.getInstance().getApplication().getStatusInfo(infoMap); try (JsonWriter writer = new JsonWriter(response.getWriter())) { JSONUtils.serializeMap(writer, infoMap); } diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/WebServiceBindingBase.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/WebServiceBindingBase.java index 7a85a39e97..faea6732e0 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/WebServiceBindingBase.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/WebServiceBindingBase.java @@ -27,6 +27,7 @@ import io.cloudbeaver.server.CBPlatform; import io.cloudbeaver.server.graphql.GraphQLEndpoint; import io.cloudbeaver.service.security.SMUtils; +import io.cloudbeaver.utils.WebAppUtils; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.jkiss.code.NotNull; @@ -250,7 +251,7 @@ private void checkServicePermissions(Method method, WebActionSet actionSet) thro } private void checkActionPermissions(@NotNull Method method, @NotNull WebAction webAction) throws DBWebException { - CBApplication application = CBApplication.getInstance(); + var application = CBPlatform.getInstance().getApplication(); if (application.isInitializationMode() && webAction.initializationRequired()) { String message = "Server initialization in progress: " + String.join(",", application.getInitActions().values()) + ".\nDo not restart the server.";