From a216c89f1f49321a376b3f8321dfe2848c891250 Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 15:07:32 -0300 Subject: [PATCH 01/38] Update Java server SDK setup docs --- .../web/getting-started-spring-boot-jersey.md | 203 +++--------------- docs/web/install-server-sdk.md | 95 ++++---- .../web/getting-started-spring-boot-jersey.md | 203 +++--------------- .../current/web/install-server-sdk.md | 95 ++++---- 4 files changed, 144 insertions(+), 452 deletions(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index c700072b..9308d491 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -53,6 +53,8 @@ Version 2.x is not supported since Reveal 1.7.x ## Step 2 - Add Reveal SDK +The Java SDK requires Java 17 or higher. Because the Java SDK now wraps native .NET components, some rare platforms that cannot run those components, such as AIX, are not supported. If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. + 1 - Update the **pom.xml** file. First, add the Reveal Maven repository. @@ -70,199 +72,58 @@ Next, add the Reveal SDK as a dependency. ```xml title="pom.xml" - com.infragistics.reveal.sdk - reveal-sdk + io.revealbi + reveal-sdk-servlet [var:sdkVersion] ``` -2 - Create a Jersey Config class and initialize the Reveal SDK by calling the `RevealEngineInitializer.initialize` method. In order for the Reveal SDK to function properly with Jersey, we need to register all of the Reveal SDK classes with Jersey. To register the Reveal SDK classes, loop through the classes returned by the `RevealEngineInitializer.getClassesToRegister` method, and register them with the Jersey Config. - -```java title="RevealJerseyConfig.java" -import org.glassfish.jersey.server.ResourceConfig; -import org.springframework.stereotype.Component; - -import com.infragistics.reveal.engine.init.InitializeParameterBuilder; -import com.infragistics.reveal.engine.init.RevealEngineInitializer; - -import javax.ws.rs.ApplicationPath; - -@Component -@ApplicationPath("/") -public class RevealJerseyConfig extends ResourceConfig -{ - public RevealJerseyConfig() - { - RevealEngineInitializer.initialize(); - - //register all Reveal classes in JAX-RS context - for (Class clazz : RevealEngineInitializer.getClassesToRegister()) { - register(clazz); - } - } -} -``` - -## Step 3 - Create Dashboard Provider - -1 - In Visual Studio Code, select the **resources** folder and then click the New Folder button in the Explorer. Name the new folder **dashboards**. +2 - Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes with Jersey. The `RevealEngineServlet` constructor also receives the request and creates the `RVUserContext`, replacing the previous container-aware user context provider setup. -![](images/getting-started-spring-boot-jersey-dashboards-folder.jpg) +```java title="Application.java" +@SpringBootApplication +public class Application { -2 - Next, create a dashboard provider that will load the Reveal dashboards from the newly created **dashboards** folder. - -```java title="RevealDashboardProvider.java" -import com.infragistics.reveal.sdk.api.IRVUserContext; - -import java.io.IOException; -import java.io.InputStream; - -import com.infragistics.reveal.sdk.api.IRVDashboardProvider; - -public class RevealDashboardProvider implements IRVDashboardProvider { - - @Override - public InputStream getDashboard(IRVUserContext userContext, String dashboardId) throws IOException { - InputStream dashboardStream = getClass().getResourceAsStream("/dashboards/" + dashboardId + ".rdash"); - return dashboardStream; + public static void main(String[] args) { + SpringApplication.run(Application.class, args); } - @Override - public void saveDashboard(IRVUserContext arg0, String arg1, InputStream arg2) throws IOException { - - } -} -``` + @Bean + ServletRegistrationBean revealServlet() { + RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setDashboardProvider(new RVDashboardProvider("src/main/resources/dashboards")) + .addSettings(settings -> { + // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); + }) + .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); -3 - Finally, register the Dashboard Provider with the `RevealEngineInitializer` in the `RevealJerseyConfig` class. - -```java title="RevealJerseyConfig.java" -@Component -@ApplicationPath("/") -public class RevealJerseyConfig extends ResourceConfig -{ - public RevealJerseyConfig() - { - RevealEngineInitializer.initialize(new InitializeParameterBuilder() - // highlight-next-line - .setDashboardProvider(new RevealDashboardProvider()) - .build()); - - //register all Reveal classes in JAX-RS context - for (Class clazz : RevealEngineInitializer.getClassesToRegister()) { - register(clazz); - } + return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } } ``` -## Step 4 - Setup CORs Policy (Debugging) +## Step 3 - Create Dashboards Folder -While developing and debugging your application, it is common to host the server and client app on different URLs. For example; your Server my be running on `https://localhost:24519`, while your Angular app may be running on `https://localhost:4200`. If you were to try and load a dashboard from the client application, it would fail because of a Cross-Origin Resource Sharing (CORS) policy. To enable this scenario, you must create a CORS policy and enable it in the server project. - -1 - Create a CorsFilter +1 - In Visual Studio Code, select the **resources** folder and then click the New Folder button in the Explorer. Name the new folder **dashboards**. -```java title="CorsFilter.java" -import java.io.IOException; +![](images/getting-started-spring-boot-jersey-dashboards-folder.jpg) -import jakarta.ws.rs.container.ContainerRequestContext; -import jakarta.ws.rs.container.ContainerRequestFilter; -import jakarta.ws.rs.container.ContainerResponseContext; -import jakarta.ws.rs.container.ContainerResponseFilter; -import jakarta.ws.rs.container.PreMatching; -import jakarta.ws.rs.core.Response; +2 - Configure `RVDashboardProvider` with the folder that contains your dashboards. -@PreMatching -public class CorsFilter implements ContainerRequestFilter, ContainerResponseFilter { +```java title="Application.java" +new RevealServerBuilder() + .setDashboardProvider(new RVDashboardProvider("src/main/resources/dashboards")) + .build(); +``` - /** - * Method for ContainerRequestFilter. - */ - @Override - public void filter(ContainerRequestContext request) throws IOException { +## Step 4 - Packaging and Deployment - // If it's a preflight request, we abort the request with - // a 200 status, and the CORS headers are added in the - // response filter method below. - if (isPreflightRequest(request)) { - request.abortWith(Response.ok().build()); - return; - } - } +Reveal SDK includes native components built for specific platform and architecture combinations. When you package an application, Maven selects the native component for the current machine. If the deployment platform or architecture is different from the packaging machine, use the Maven profile parameter `-P os_arch` to select the target platform and architecture. - /** - * A preflight request is an OPTIONS request - * with an Origin header. - */ - private static boolean isPreflightRequest(ContainerRequestContext request) { - return request.getHeaderString("Origin") != null - && request.getMethod().equalsIgnoreCase("OPTIONS"); - } - - /** - * Method for ContainerResponseFilter. - */ - @Override - public void filter(ContainerRequestContext request, ContainerResponseContext response) - throws IOException { - - // if there is no Origin header, then it is not a - // cross origin request. We don't do anything. - if (request.getHeaderString("Origin") == null) { - return; - } - - - // If it is a preflight request, then we add all - // the CORS headers here. - if (isPreflightRequest(request)) { - response.getHeaders().add("Access-Control-Allow-Credentials", "true"); - response.getHeaders().add("Access-Control-Allow-Methods", - "GET, POST, PUT, DELETE, OPTIONS, HEAD"); - response.getHeaders().add("Access-Control-Allow-Headers", - // Whatever other non-standard/safe headers (see list above) - // you want the client to be able to send to the server, - // put it in this list. And remove the ones you don't want. - "X-Requested-With, Authorization, " + - "Accept-Version, Content-MD5, CSRF-Token, Content-Type"); - } - - // Cross origin requests can be either simple requests - // or preflight request. We need to add this header - // to both type of requests. Only preflight requests - // need the previously added headers. - response.getHeaders().add("Access-Control-Allow-Origin", "*"); - } -} -``` - -2 - Register the `CorsFilter` in the `RevealJerseyConfig` class. - -```java title="RevealJerseyConfig.java" -@Component -@ApplicationPath("/") -public class RevealJerseyConfig extends ResourceConfig -{ - public RevealJerseyConfig() - { - RevealEngineInitializer.initialize(new InitializeParameterBuilder() - .setDashboardProvider(new RevealDashboardProvider()) - .build()); - - //register all Reveal classes in JAX-RS context - for (Class clazz : RevealEngineInitializer.getClassesToRegister()) { - register(clazz); - } - - //register the cors filter for debugging - // highlight-next-line - register(CorsFilter.class); - } -} -``` +The native .NET binary is included as a resource in the platform-specific artifacts and is extracted to the temporary directory at runtime. The extracted folder uses the `platform-arch-version` format, such as `linux-aarch64-3`. :::info Get the Code The source code to this sample can be found on [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/01-GettingStarted/server/spring-boot-jersey). -::: \ No newline at end of file +::: diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index af26fd8a..85530aba 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -61,6 +61,8 @@ By default, the Reveal SDK uses a convention that will load all dashboards from The steps below describe how to install the Reveal SDK into an existing Java application. +The Java SDK requires Java 17 or higher. Because the Java SDK now wraps native .NET components, some rare platforms that cannot run those components, such as AIX, are not supported. If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. + 1 - Update the **pom.xml** file, and add the Reveal Maven repository. ```xml title="pom.xml" @@ -76,81 +78,64 @@ The steps below describe how to install the Reveal SDK into an existing Java app ```xml title="pom.xml" - com.infragistics.reveal.sdk - reveal-sdk + io.revealbi + reveal-sdk-servlet [var:sdkVersion] ``` ### Spring Boot - Jersey -Create a Jersey Config class and initialize the Reveal SDK by calling the `RevealEngineInitializer.initialize` method. In order for the Reveal SDK to function properly with Jersey, we need to register all of the Reveal SDK classes with Jersey. To register the Reveal SDK classes, loop through the classes returned by the `RevealEngineInitializer.getClassesToRegister` method, and register them with the Jersey Config. +Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes with Jersey. -```java title="RevealJerseyConfig.java" -import org.glassfish.jersey.server.ResourceConfig; -import org.springframework.stereotype.Component; +```java title="Application.java" +@SpringBootApplication +public class Application { -import com.infragistics.reveal.engine.init.RevealEngineInitializer; + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } -import javax.ws.rs.ApplicationPath; + @Bean + ServletRegistrationBean revealServlet() { + RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .addSettings(settings -> { + // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); + }) + .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); -@Component -@ApplicationPath("/") -public class RevealJerseyConfig extends ResourceConfig -{ - public RevealJerseyConfig() - { - RevealEngineInitializer.initialize(); - - //register all Reveal classes in JAX-RS context - for (Class clazz : RevealEngineInitializer.getClassesToRegister()) { - register(clazz); - } + return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } } ``` ### Tomcat -1 - Add a dependency to a Jakarta RESTful Web Services (JAX-RS) implementation. You can choose between multiple options like Jersey, RESTeasy, Apache CXF, etc. Please follow the steps described by the provider of your preference. - -As an example, here the dependencies you need to add for Jersey: - -```xml - - org.glassfish.jersey.containers - jersey-container-servlet - 2.32 - - - org.glassfish.jersey.inject - jersey-cdi2-se - 2.32 - -``` - -2 - Create a ServletContextListener class and initialize the Reveal SDK by calling the `RevealEngineInitializer.initialize` method. +Create a `ServletContextListener` class and register `RevealEngineServlet`. ```java -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; - -import com.infragistics.reveal.engine.init.RevealEngineInitializer; - @WebListener -public class RevealServletContextListener implements ServletContextListener { - - @Override - public void contextDestroyed(ServletContextEvent ctx) { - - } +public class AppInitializer implements ServletContextListener { @Override - public void contextInitialized(ServletContextEvent ctx) { - - //initialize Reveal - RevealEngineInitializer.initialize(); + public void contextInitialized(ServletContextEvent sce) { + RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .addSettings(settings -> { + // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); + }) + .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); + + ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("revealServlet", revealEngineServlet); + reg.setAsyncSupported(true); + reg.addMapping("/reveal-api/*"); } } -``` \ No newline at end of file +``` + +### Packaging and Deployment + +Reveal SDK includes native components built for specific platform and architecture combinations. When you package an application, Maven selects the native component for the current machine. If the deployment platform or architecture is different from the packaging machine, use the Maven profile parameter `-P os_arch` to select the target platform and architecture. + +The native .NET binary is included as a resource in the platform-specific artifacts and is extracted to the temporary directory at runtime. The extracted folder uses the `platform-arch-version` format, such as `linux-aarch64-3`. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md index 698e79d6..4106bff2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md @@ -55,6 +55,8 @@ Visual Studio Code と Java の使用を開始する方法の詳細について ## 手順 2 - Reveal SDK の追加 +Java SDK には Java 17 以降が必要です。Java SDK は現在、ネイティブ .NET コンポーネントをラップしているため、AIX など、それらのコンポーネントを実行できない一部のまれなプラットフォームはサポートされていません。Jetty をサーバーとして使用する場合、そのバージョンが Reveal SDK で内部的に使用される Jetty バージョン (現在は 12.0.12) と競合する可能性があります。 + 1 - **pom.xml** ファイルを更新します。 まず、Reveal Maven リポジトリを追加します。 @@ -72,199 +74,58 @@ Visual Studio Code と Java の使用を開始する方法の詳細について ```xml title="pom.xml" - com.infragistics.reveal.sdk - reveal-sdk + io.revealbi + reveal-sdk-servlet [var:sdkVersion] ``` -2 - Jersey Config クラスを作成し、`RevealEngineInitializer.initialize` メソッドを呼び出して Reveal SDK を初期化します。Reveal SDK が Jersey で適切に機能するには、すべての Reveal SDK クラスを Jersey に登録する必要があります。Reveal SDK クラスを登録するには、`RevealEngineInitializer.getClassesToRegister` メソッドによって返されたクラスをループして、Jersey Config に登録します。 - -```java title="RevealJerseyConfig.java" -import org.glassfish.jersey.server.ResourceConfig; -import org.springframework.stereotype.Component; - -import com.infragistics.reveal.engine.init.InitializeParameterBuilder; -import com.infragistics.reveal.engine.init.RevealEngineInitializer; - -import javax.ws.rs.ApplicationPath; - -@Component -@ApplicationPath("/") -public class RevealJerseyConfig extends ResourceConfig -{ - public RevealJerseyConfig() - { - RevealEngineInitializer.initialize(); - - //register all Reveal classes in JAX-RS context - for (Class clazz : RevealEngineInitializer.getClassesToRegister()) { - register(clazz); - } - } -} -``` - -## 手順 3 - ダッシュボード プロバイダーの作成 - -1 - Visual Studio Code で **resources** フォルダーを選択し、エクスプローラーで [新しいフォルダー] ボタンをクリックします。新しいフォルダーに **dashboards** という名前を付けます。 +2 - `RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを Jersey に登録する必要はありません。`RevealEngineServlet` コンストラクターはリクエストを受け取り、`RVUserContext` を作成します。これは以前のコンテナー対応ユーザー コンテキスト プロバイダー設定の代替です。 -![](images/getting-started-spring-boot-jersey-dashboards-folder.jpg) +```java title="Application.java" +@SpringBootApplication +public class Application { -2 - 次に、新しく作成された **dashboards** フォルダーから Reveal ダッシュボードを読み込むダッシュボード プロバイダーを作成します。 - -```java title="RevealDashboardProvider.java" -import com.infragistics.reveal.sdk.api.IRVUserContext; - -import java.io.IOException; -import java.io.InputStream; - -import com.infragistics.reveal.sdk.api.IRVDashboardProvider; - -public class RevealDashboardProvider implements IRVDashboardProvider { - - @Override - public InputStream getDashboard(IRVUserContext userContext, String dashboardId) throws IOException { - InputStream dashboardStream = getClass().getResourceAsStream("/dashboards/" + dashboardId + ".rdash"); - return dashboardStream; + public static void main(String[] args) { + SpringApplication.run(Application.class, args); } - @Override - public void saveDashboard(IRVUserContext arg0, String arg1, InputStream arg2) throws IOException { - - } -} -``` + @Bean + ServletRegistrationBean revealServlet() { + RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setDashboardProvider(new RVDashboardProvider("src/main/resources/dashboards")) + .addSettings(settings -> { + // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); + }) + .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); -3 - 最後に、`RevealJerseyConfig` クラスの `RevealEngineInitializer` を使用してダッシュボード プロバイダーを登録します。 - -```java title="RevealJerseyConfig.java" -@Component -@ApplicationPath("/") -public class RevealJerseyConfig extends ResourceConfig -{ - public RevealJerseyConfig() - { - RevealEngineInitializer.initialize(new InitializeParameterBuilder() - // highlight-next-line - .setDashboardProvider(new RevealDashboardProvider()) - .build()); - - //register all Reveal classes in JAX-RS context - for (Class clazz : RevealEngineInitializer.getClassesToRegister()) { - register(clazz); - } + return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } } ``` -## 手順 4 - CORs ポリシー (デバッグ) の設定 +## 手順 3 - dashboards フォルダーの作成 -アプリケーションの開発とデバッグでは、サーバーとクライアント アプリを異なる URL でホストするのが一般的です。例えば、サーバーは `https://localhost:24519` で実行されている可能性がありますが、Angular アプリは `https://localhost:4200` で実行されている可能性があります。クライアント アプリケーションからダッシュボードを読み込もうとすると、Cross-Origin Resource Sharing (CORS) ポリシーが原因で失敗します。このシナリオを有効にするには、CORS ポリシーを作成し、サーバー プロジェクトで有効にする必要があります。 - -1 - CorsFilter を作成します。 +1 - Visual Studio Code で **resources** フォルダーを選択し、エクスプローラーで [新しいフォルダー] ボタンをクリックします。新しいフォルダーに **dashboards** という名前を付けます。 -```java title="CorsFilter.java" -import java.io.IOException; +![](images/getting-started-spring-boot-jersey-dashboards-folder.jpg) -import jakarta.ws.rs.container.ContainerRequestContext; -import jakarta.ws.rs.container.ContainerRequestFilter; -import jakarta.ws.rs.container.ContainerResponseContext; -import jakarta.ws.rs.container.ContainerResponseFilter; -import jakarta.ws.rs.container.PreMatching; -import jakarta.ws.rs.core.Response; +2 - ダッシュボードを含むフォルダーを使用するように `RVDashboardProvider` を構成します。 -@PreMatching -public class CorsFilter implements ContainerRequestFilter, ContainerResponseFilter { +```java title="Application.java" +new RevealServerBuilder() + .setDashboardProvider(new RVDashboardProvider("src/main/resources/dashboards")) + .build(); +``` - /** - * Method for ContainerRequestFilter. - */ - @Override - public void filter(ContainerRequestContext request) throws IOException { +## 手順 4 - パッケージ化と配置 - // If it's a preflight request, we abort the request with - // a 200 status, and the CORS headers are added in the - // response filter method below. - if (isPreflightRequest(request)) { - request.abortWith(Response.ok().build()); - return; - } - } +Reveal SDK には、特定のプラットフォームとアーキテクチャの組み合わせ向けにビルドされたネイティブ コンポーネントが含まれています。アプリケーションをパッケージ化すると、Maven は現在のマシン用のネイティブ コンポーネントを選択します。配置先のプラットフォームまたはアーキテクチャがパッケージ化に使用したマシンと異なる場合は、Maven プロファイル パラメーター `-P os_arch` を使用して、対象のプラットフォームとアーキテクチャを選択します。 - /** - * A preflight request is an OPTIONS request - * with an Origin header. - */ - private static boolean isPreflightRequest(ContainerRequestContext request) { - return request.getHeaderString("Origin") != null - && request.getMethod().equalsIgnoreCase("OPTIONS"); - } - - /** - * Method for ContainerResponseFilter. - */ - @Override - public void filter(ContainerRequestContext request, ContainerResponseContext response) - throws IOException { - - // if there is no Origin header, then it is not a - // cross origin request. We don't do anything. - if (request.getHeaderString("Origin") == null) { - return; - } - - - // If it is a preflight request, then we add all - // the CORS headers here. - if (isPreflightRequest(request)) { - response.getHeaders().add("Access-Control-Allow-Credentials", "true"); - response.getHeaders().add("Access-Control-Allow-Methods", - "GET, POST, PUT, DELETE, OPTIONS, HEAD"); - response.getHeaders().add("Access-Control-Allow-Headers", - // Whatever other non-standard/safe headers (see list above) - // you want the client to be able to send to the server, - // put it in this list. And remove the ones you don't want. - "X-Requested-With, Authorization, " + - "Accept-Version, Content-MD5, CSRF-Token, Content-Type"); - } - - // Cross origin requests can be either simple requests - // or preflight request. We need to add this header - // to both type of requests. Only preflight requests - // need the previously added headers. - response.getHeaders().add("Access-Control-Allow-Origin", "*"); - } -} -``` - -2 - `RevealJerseyConfig` クラスに `CorsFilter` を登録します。 - -```java title="RevealJerseyConfig.java" -@Component -@ApplicationPath("/") -public class RevealJerseyConfig extends ResourceConfig -{ - public RevealJerseyConfig() - { - RevealEngineInitializer.initialize(new InitializeParameterBuilder() - .setDashboardProvider(new RevealDashboardProvider()) - .build()); - - //register all Reveal classes in JAX-RS context - for (Class clazz : RevealEngineInitializer.getClassesToRegister()) { - register(clazz); - } - - //register the cors filter for debugging - // highlight-next-line - register(CorsFilter.class); - } -} -``` +ネイティブ .NET バイナリは、プラットフォーム固有の成果物にリソースとして含まれ、実行時に一時ディレクトリへ展開されます。展開されたフォルダーは、`linux-aarch64-3` のような `platform-arch-version` 形式を使用します。 :::info コードの取得 このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/01-GettingStarted/server/spring-boot-jersey) にあります。 -::: \ No newline at end of file +::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md index 83de7bea..d4c7411d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md @@ -61,6 +61,8 @@ app.listen(8080, () => { 以下の手順では、Reveal SDK を既存の Java アプリケーションにインストールする方法について説明します。 +Java SDK には Java 17 以降が必要です。Java SDK は現在、ネイティブ .NET コンポーネントをラップしているため、AIX など、それらのコンポーネントを実行できない一部のまれなプラットフォームはサポートされていません。Jetty をサーバーとして使用する場合、そのバージョンが Reveal SDK で内部的に使用される Jetty バージョン (現在は 12.0.12) と競合する可能性があります。 + 1 - **pom.xml** ファイルを更新します。Reveal Maven リポジトリを追加します。 ```xml title="pom.xml" @@ -76,81 +78,64 @@ app.listen(8080, () => { ```xml title="pom.xml" - com.infragistics.reveal.sdk - reveal-sdk + io.revealbi + reveal-sdk-servlet [var:sdkVersion] ``` ### Spring Boot - Jersey -Jersey Config クラスを作成し、`RevealEngineInitializer.initialize` メソッドを呼び出して Reveal SDK を初期化します。Reveal SDK を Jersey で正しく動作させるためには、Reveal SDK の全クラスを Jersey に登録する必要があります。Reveal SDK のクラスを登録するには、`RevealEngineInitializer.getClassesToRegister` メソッドによって返されるクラスをループして、Jersey Config にそれらを登録します。 +`RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを Jersey に登録する必要はありません。 -```java title="RevealJerseyConfig.java" -import org.glassfish.jersey.server.ResourceConfig; -import org.springframework.stereotype.Component; +```java title="Application.java" +@SpringBootApplication +public class Application { -import com.infragistics.reveal.engine.init.RevealEngineInitializer; + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } -import javax.ws.rs.ApplicationPath; + @Bean + ServletRegistrationBean revealServlet() { + RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .addSettings(settings -> { + // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); + }) + .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); -@Component -@ApplicationPath("/") -public class RevealJerseyConfig extends ResourceConfig -{ - public RevealJerseyConfig() - { - RevealEngineInitializer.initialize(); - - //register all Reveal classes in JAX-RS context - for (Class clazz : RevealEngineInitializer.getClassesToRegister()) { - register(clazz); - } + return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } } ``` ### Tomcat -1 - Jakarta RESTful Web Services (JAX-RS) 実装への依存関係を追加します。Jersey、RESTeasy、Apache CXF など複数の選択肢の中から選ぶことができます。お好みのプロバイダー提供元が説明する手順に従ってください。 - -例として Jersey 用に追加する必要がある依存関係を以下に示します: - -```xml - - org.glassfish.jersey.containers - jersey-container-servlet - 2.32 - - - org.glassfish.jersey.inject - jersey-cdi2-se - 2.32 - -``` - -2 - ServletContextListener クラスを作成し `RevealEngineInitializer.initialize` メソッドを呼び出して Reveal SDK を初期化します。 +`ServletContextListener` クラスを作成し、`RevealEngineServlet` を登録します。 ```java -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; - -import com.infragistics.reveal.engine.init.RevealEngineInitializer; - @WebListener -public class RevealServletContextListener implements ServletContextListener { - - @Override - public void contextDestroyed(ServletContextEvent ctx) { - - } +public class AppInitializer implements ServletContextListener { @Override - public void contextInitialized(ServletContextEvent ctx) { - - //initialize Reveal - RevealEngineInitializer.initialize(); + public void contextInitialized(ServletContextEvent sce) { + RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .addSettings(settings -> { + // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); + }) + .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); + + ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("revealServlet", revealEngineServlet); + reg.setAsyncSupported(true); + reg.addMapping("/reveal-api/*"); } } -``` \ No newline at end of file +``` + +### パッケージ化と配置 + +Reveal SDK には、特定のプラットフォームとアーキテクチャの組み合わせ向けにビルドされたネイティブ コンポーネントが含まれています。アプリケーションをパッケージ化すると、Maven は現在のマシン用のネイティブ コンポーネントを選択します。配置先のプラットフォームまたはアーキテクチャがパッケージ化に使用したマシンと異なる場合は、Maven プロファイル パラメーター `-P os_arch` を使用して、対象のプラットフォームとアーキテクチャを選択します。 + +ネイティブ .NET バイナリは、プラットフォーム固有の成果物にリソースとして含まれ、実行時に一時ディレクトリへ展開されます。展開されたフォルダーは、`linux-aarch64-3` のような `platform-arch-version` 形式を使用します。 From b92d68434b94c9a22611da2d73a5e3eebbeb089d Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 15:12:11 -0300 Subject: [PATCH 02/38] Update Java SDK release notes --- docs/web/release-notes.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/web/release-notes.md b/docs/web/release-notes.md index 4def8579..c5d55ebf 100644 --- a/docs/web/release-notes.md +++ b/docs/web/release-notes.md @@ -17,6 +17,14 @@ import TabItem from '@theme/TabItem'; #### Node - The `dateFilter` property on headless export options is deprecated. Use the `filters` array with `RVDateRule` instead. +#### Java + +- The Java SDK now requires Java 17 or higher. +- The Java SDK now uses the `io.revealbi:reveal-sdk-servlet` Maven artifact and a servlet-based setup with `RevealEngineServlet`. +- `InMemoryDataProvider` is not available in the Java SDK. Applications using this API must update their data integration code. +- Some platforms are no longer supported by the Java SDK because they cannot run the native .NET components used by Reveal SDK. For example, AIX is not supported. +- If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. + ### New Features #### All Platforms From 8d20144d7a2db31a34815397f83aba3b3414baf0 Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 15:21:34 -0300 Subject: [PATCH 03/38] Clarify Java InMemoryDataProvider release note --- docs/web/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/release-notes.md b/docs/web/release-notes.md index c5d55ebf..1a8e54b7 100644 --- a/docs/web/release-notes.md +++ b/docs/web/release-notes.md @@ -21,7 +21,7 @@ import TabItem from '@theme/TabItem'; - The Java SDK now requires Java 17 or higher. - The Java SDK now uses the `io.revealbi:reveal-sdk-servlet` Maven artifact and a servlet-based setup with `RevealEngineServlet`. -- `InMemoryDataProvider` is not available in the Java SDK. Applications using this API must update their data integration code. +- `InMemoryDataProvider` remains unavailable in the Java SDK. This API exists in the .NET SDK but has never been implemented in Java. - Some platforms are no longer supported by the Java SDK because they cannot run the native .NET components used by Reveal SDK. For example, AIX is not supported. - If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. From c66dbbe518b1bb7621ea5544703b98f28c636bba Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 15:22:43 -0300 Subject: [PATCH 04/38] Refine Java feature parity release note --- docs/web/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/release-notes.md b/docs/web/release-notes.md index 1a8e54b7..240e07cf 100644 --- a/docs/web/release-notes.md +++ b/docs/web/release-notes.md @@ -21,7 +21,6 @@ import TabItem from '@theme/TabItem'; - The Java SDK now requires Java 17 or higher. - The Java SDK now uses the `io.revealbi:reveal-sdk-servlet` Maven artifact and a servlet-based setup with `RevealEngineServlet`. -- `InMemoryDataProvider` remains unavailable in the Java SDK. This API exists in the .NET SDK but has never been implemented in Java. - Some platforms are no longer supported by the Java SDK because they cannot run the native .NET components used by Reveal SDK. For example, AIX is not supported. - If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. @@ -44,6 +43,7 @@ import TabItem from '@theme/TabItem'; #### Java - The Java SDK now supports Redis caching via `RVRedisOptions`. - `DefaultDashboardTheme` is now supported. +- The Java SDK now has feature parity with the .NET SDK for connectors and extension points, with `InMemoryDataProvider` as a known exception. `InMemoryDataProvider` exists in the .NET SDK but has not been implemented in Java. - Headless export now supports CSV format. ```java From 55d4551be032677c93d2ff9ca5780a00f2ea1764 Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 15:24:33 -0300 Subject: [PATCH 05/38] Update Java feature parity wording --- docs/web/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/release-notes.md b/docs/web/release-notes.md index 240e07cf..ac39db69 100644 --- a/docs/web/release-notes.md +++ b/docs/web/release-notes.md @@ -43,7 +43,7 @@ import TabItem from '@theme/TabItem'; #### Java - The Java SDK now supports Redis caching via `RVRedisOptions`. - `DefaultDashboardTheme` is now supported. -- The Java SDK now has feature parity with the .NET SDK for connectors and extension points, with `InMemoryDataProvider` as a known exception. `InMemoryDataProvider` exists in the .NET SDK but has not been implemented in Java. +- The Java SDK now has feature parity with the .NET SDK for connectors and extension points, with the exception of `InMemoryDataProvider`, which will be ported to Java in a future release. - Headless export now supports CSV format. ```java From f127b7c60b03073ce7f1947a2ddda1d6eb42e0bb Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 15:25:48 -0300 Subject: [PATCH 06/38] Apply suggestion from @dpazos-infragistics --- docs/web/getting-started-spring-boot-jersey.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index 9308d491..efe75739 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -53,7 +53,7 @@ Version 2.x is not supported since Reveal 1.7.x ## Step 2 - Add Reveal SDK -The Java SDK requires Java 17 or higher. Because the Java SDK now wraps native .NET components, some rare platforms that cannot run those components, such as AIX, are not supported. If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher. Because the Java SDK now wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are not supported. If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file. From 4dcaf20e1c83b336dd48be470300ef2f9430d2f7 Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 15:26:23 -0300 Subject: [PATCH 07/38] Apply suggestion from @dpazos-infragistics --- docs/web/getting-started-spring-boot-jersey.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index efe75739..10bcd84e 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -53,7 +53,7 @@ Version 2.x is not supported since Reveal 1.7.x ## Step 2 - Add Reveal SDK -The Java SDK requires Java 17 or higher. Because the Java SDK now wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are not supported. If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher. Because the Java SDK now wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are not supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file. From 2633f10ee6cd369e01bfa4f2943795cbb99b6fca Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 15:28:11 -0300 Subject: [PATCH 08/38] Apply suggestion from @dpazos-infragistics --- docs/web/install-server-sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index 85530aba..7f139444 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -61,7 +61,7 @@ By default, the Reveal SDK uses a convention that will load all dashboards from The steps below describe how to install the Reveal SDK into an existing Java application. -The Java SDK requires Java 17 or higher. Because the Java SDK now wraps native .NET components, some rare platforms that cannot run those components, such as AIX, are not supported. If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher. Because the new Java SDK now wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are no longer supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file, and add the Reveal Maven repository. From c3edede8764f7dcb9fec19e07285b084d1128e15 Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 15:28:49 -0300 Subject: [PATCH 09/38] Apply suggestion from @dpazos-infragistics --- docs/web/getting-started-spring-boot-jersey.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index 10bcd84e..ee25e570 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -53,7 +53,7 @@ Version 2.x is not supported since Reveal 1.7.x ## Step 2 - Add Reveal SDK -The Java SDK requires Java 17 or higher. Because the Java SDK now wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are not supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher. Because the new Java SDK wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are no longer supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file. From 9158c282b1dcc27f3cf84ec3d1630b9f993c4271 Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 10:24:37 -0300 Subject: [PATCH 10/38] Update Java SDK system requirements --- docs/web/system-requirements.md | 1 - .../current/web/system-requirements.md | 1 - 2 files changed, 2 deletions(-) diff --git a/docs/web/system-requirements.md b/docs/web/system-requirements.md index da73bdd8..14782747 100644 --- a/docs/web/system-requirements.md +++ b/docs/web/system-requirements.md @@ -19,7 +19,6 @@ If you use Jetty as your server, its version might conflict with the Jetty versi Some platforms are no longer supported by the Java SDK because they cannot run the native .NET components used by Reveal SDK. For example, AIX is not supported. ::: - ## Node - NodeJS 16.3 and higher diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/system-requirements.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/system-requirements.md index 4e5d8f42..d5dd2637 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/system-requirements.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/system-requirements.md @@ -19,7 +19,6 @@ Jetty をサーバーとして使用する場合、そのバージョンが Reve Reveal SDK で使用されるネイティブ .NET コンポーネントを実行できない一部のプラットフォームは、Java SDK でサポートされなくなりました。たとえば、AIX はサポートされていません。 ::: - ## Node - NodeJS 16.3 およびそれ以降 From 7e7363d2e77025f44685abfe6b4d9aeeeaa1260a Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 10:42:34 -0300 Subject: [PATCH 11/38] Document Java SDK platform support limits --- docs/web/system-requirements.md | 1 + .../current/web/system-requirements.md | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/web/system-requirements.md b/docs/web/system-requirements.md index 14782747..da73bdd8 100644 --- a/docs/web/system-requirements.md +++ b/docs/web/system-requirements.md @@ -19,6 +19,7 @@ If you use Jetty as your server, its version might conflict with the Jetty versi Some platforms are no longer supported by the Java SDK because they cannot run the native .NET components used by Reveal SDK. For example, AIX is not supported. ::: + ## Node - NodeJS 16.3 and higher diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/system-requirements.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/system-requirements.md index d5dd2637..4e5d8f42 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/system-requirements.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/system-requirements.md @@ -19,6 +19,7 @@ Jetty をサーバーとして使用する場合、そのバージョンが Reve Reveal SDK で使用されるネイティブ .NET コンポーネントを実行できない一部のプラットフォームは、Java SDK でサポートされなくなりました。たとえば、AIX はサポートされていません。 ::: + ## Node - NodeJS 16.3 およびそれ以降 From 962a00da2a3710cc1ffd75830b87f4ad981e2117 Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 15:37:41 -0300 Subject: [PATCH 12/38] Remove extraneous release notes changes --- docs/web/release-notes.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/web/release-notes.md b/docs/web/release-notes.md index ac39db69..e385c9b7 100644 --- a/docs/web/release-notes.md +++ b/docs/web/release-notes.md @@ -18,7 +18,6 @@ import TabItem from '@theme/TabItem'; - The `dateFilter` property on headless export options is deprecated. Use the `filters` array with `RVDateRule` instead. #### Java - - The Java SDK now requires Java 17 or higher. - The Java SDK now uses the `io.revealbi:reveal-sdk-servlet` Maven artifact and a servlet-based setup with `RevealEngineServlet`. - Some platforms are no longer supported by the Java SDK because they cannot run the native .NET components used by Reveal SDK. For example, AIX is not supported. @@ -41,9 +40,9 @@ import TabItem from '@theme/TabItem'; - Data agent connection recovery has been improved to handle network interruptions more reliably. #### Java +- The Java SDK now has feature parity with the .NET SDK for connectors and extension points, with the exception of `InMemoryDataProvider`, which will be ported to Java in a future release. - The Java SDK now supports Redis caching via `RVRedisOptions`. - `DefaultDashboardTheme` is now supported. -- The Java SDK now has feature parity with the .NET SDK for connectors and extension points, with the exception of `InMemoryDataProvider`, which will be ported to Java in a future release. - Headless export now supports CSV format. ```java From 12bfcf61c38a7a1863d5a01b474a7046c39e56ac Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 16:20:26 -0300 Subject: [PATCH 13/38] Align Java docs with servlet setup wiki --- .../web/getting-started-spring-boot-jersey.md | 24 +++++++++---------- docs/web/install-server-sdk.md | 18 ++++++++------ .../web/getting-started-spring-boot-jersey.md | 22 ++++++++--------- .../current/web/install-server-sdk.md | 14 +++++++---- .../current/web/toc.yml | 2 +- sidebars.ts | 2 +- 6 files changed, 45 insertions(+), 37 deletions(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index ee25e570..a3c09e6e 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -1,8 +1,8 @@ -# Setting up the Reveal SDK Server with Spring Boot and Jersey +# Setting up the Reveal SDK Server with Spring Boot -## Step 1 - Create a Spring Boot with Jersey Project +## Step 1 - Create a Spring Boot Project -The steps below describe how to create a new Java Spring Boot with Jersey project. If you want to add the Reveal SDK to an existing application, go to Step 2. +The steps below describe how to create a new Java Spring Boot project. If you want to add the Reveal SDK to an existing application, go to Step 2. To develop a Spring Boot application in Visual Studio Code, you need to install the following: - [Development Kit (JDK)](https://www.microsoft.com/openjdk) @@ -43,7 +43,7 @@ Version 2.x is not supported since Reveal 1.7.x ![](images/getting-started-spring-boot-jersey-java-version.jpg) -8 - Choose the **Spring Web** and **Jersey** dependencies. +8 - Choose the **Spring Web** dependency. ![](images/getting-started-spring-boot-jersey-dependencies.jpg) @@ -53,7 +53,7 @@ Version 2.x is not supported since Reveal 1.7.x ## Step 2 - Add Reveal SDK -The Java SDK requires Java 17 or higher. Because the new Java SDK wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are no longer supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Because the new Java SDK wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are no longer supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file. @@ -78,7 +78,7 @@ Next, add the Reveal SDK as a dependency. ``` -2 - Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes with Jersey. The `RevealEngineServlet` constructor also receives the request and creates the `RVUserContext`, replacing the previous container-aware user context provider setup. +2 - Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. The `RevealEngineServlet` constructor also receives the request and creates the `RVUserContext`, replacing the previous container-aware user context provider setup. ```java title="Application.java" @SpringBootApplication @@ -91,11 +91,13 @@ public class Application { @Bean ServletRegistrationBean revealServlet() { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() - .setDashboardProvider(new RVDashboardProvider("src/main/resources/dashboards")) + .setAuthenticationProvider(new MyIRVAuthenticationProvider()) + .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } @@ -104,15 +106,13 @@ public class Application { ## Step 3 - Create Dashboards Folder -1 - In Visual Studio Code, select the **resources** folder and then click the New Folder button in the Explorer. Name the new folder **dashboards**. - -![](images/getting-started-spring-boot-jersey-dashboards-folder.jpg) +1 - Create a folder for your dashboards. 2 - Configure `RVDashboardProvider` with the folder that contains your dashboards. ```java title="Application.java" new RevealServerBuilder() - .setDashboardProvider(new RVDashboardProvider("src/main/resources/dashboards")) + .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) .build(); ``` diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index 7f139444..d26014ef 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -61,7 +61,7 @@ By default, the Reveal SDK uses a convention that will load all dashboards from The steps below describe how to install the Reveal SDK into an existing Java application. -The Java SDK requires Java 17 or higher. Because the new Java SDK now wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are no longer supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Because the new Java SDK now wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are no longer supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file, and add the Reveal Maven repository. @@ -84,9 +84,9 @@ The Java SDK requires Java 17 or higher. Because the new Java SDK now wraps nati ``` -### Spring Boot - Jersey +### Spring Boot -Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes with Jersey. +Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. ```java title="Application.java" @SpringBootApplication @@ -99,11 +99,13 @@ public class Application { @Bean ServletRegistrationBean revealServlet() { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } @@ -112,7 +114,7 @@ public class Application { ### Tomcat -Create a `ServletContextListener` class and register `RevealEngineServlet`. +Use a Jakarta EE 9 compliant servlet container, such as Tomcat 10 or later. Create a `ServletContextListener` class and register `RevealEngineServlet`. ```java @WebListener @@ -121,13 +123,15 @@ public class AppInitializer implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); - ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("revealServlet", revealEngineServlet); + ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("myServlet", revealEngineServlet); reg.setAsyncSupported(true); reg.addMapping("/reveal-api/*"); } diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md index 4106bff2..25fec77b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md @@ -1,8 +1,8 @@ -# Spring Boot と Jersey を使用した Reveal SDK サーバーのセットアップ +# Spring Boot を使用した Reveal SDK サーバーのセットアップ -## 手順 1 - Jersey プロジェクトで Spring Boot を作成する +## 手順 1 - Spring Boot プロジェクトを作成する -以下の手順では、Jersey プロジェクトを使用して新しい Java Spring Boot を作成する方法について説明します。既存のアプリケーションに Reveal SDK を追加する場合は、手順 2 へ移動します。 +以下の手順では、新しい Java Spring Boot プロジェクトを作成する方法について説明します。既存のアプリケーションに Reveal SDK を追加する場合は、手順 2 へ移動します。 Visual Studio Code で Spring Boot アプリケーションを開発するには、以下をインストールする必要があります: - [開発キット (JDK)](https://www.microsoft.com/openjdk) @@ -45,7 +45,7 @@ Visual Studio Code と Java の使用を開始する方法の詳細について ![](images/getting-started-spring-boot-jersey-java-version.jpg) -8 - **Spring Web** と **Jersey** の依存関係を選択します。 +8 - **Spring Web** の依存関係を選択します。 ![](images/getting-started-spring-boot-jersey-dependencies.jpg) @@ -80,7 +80,7 @@ Java SDK には Java 17 以降が必要です。Java SDK は現在、ネイテ ``` -2 - `RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを Jersey に登録する必要はありません。`RevealEngineServlet` コンストラクターはリクエストを受け取り、`RVUserContext` を作成します。これは以前のコンテナー対応ユーザー コンテキスト プロバイダー設定の代替です。 +2 - `RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。`RevealEngineServlet` コンストラクターはリクエストを受け取り、`RVUserContext` を作成します。これは以前のコンテナー対応ユーザー コンテキスト プロバイダー設定の代替です。 ```java title="Application.java" @SpringBootApplication @@ -93,11 +93,13 @@ public class Application { @Bean ServletRegistrationBean revealServlet() { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() - .setDashboardProvider(new RVDashboardProvider("src/main/resources/dashboards")) + .setAuthenticationProvider(new MyIRVAuthenticationProvider()) + .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } @@ -106,15 +108,13 @@ public class Application { ## 手順 3 - dashboards フォルダーの作成 -1 - Visual Studio Code で **resources** フォルダーを選択し、エクスプローラーで [新しいフォルダー] ボタンをクリックします。新しいフォルダーに **dashboards** という名前を付けます。 - -![](images/getting-started-spring-boot-jersey-dashboards-folder.jpg) +1 - ダッシュボード用のフォルダーを作成します。 2 - ダッシュボードを含むフォルダーを使用するように `RVDashboardProvider` を構成します。 ```java title="Application.java" new RevealServerBuilder() - .setDashboardProvider(new RVDashboardProvider("src/main/resources/dashboards")) + .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) .build(); ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md index d4c7411d..f8a8cb81 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md @@ -84,9 +84,9 @@ Java SDK には Java 17 以降が必要です。Java SDK は現在、ネイテ ``` -### Spring Boot - Jersey +### Spring Boot -`RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを Jersey に登録する必要はありません。 +`RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。 ```java title="Application.java" @SpringBootApplication @@ -99,11 +99,13 @@ public class Application { @Bean ServletRegistrationBean revealServlet() { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } @@ -121,13 +123,15 @@ public class AppInitializer implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) + .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - .build(), request -> new RVUserContext("user identifier", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); - ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("revealServlet", revealEngineServlet); + ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("myServlet", revealEngineServlet); reg.setAsyncSupported(true); reg.addMapping("/reveal-api/*"); } diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/toc.yml b/i18n/ja/docusaurus-plugin-content-docs/current/web/toc.yml index 7acfb45d..429d596b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/toc.yml +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/toc.yml @@ -14,7 +14,7 @@ href: getting-started-server-node.md - name: Node.js - TypeScript href: getting-started-server-node-typescript.md - - name: Spring Boot - Jersey + - name: Spring Boot href: getting-started-spring-boot-jersey.md - name: Angular href: getting-started-angular.md diff --git a/sidebars.ts b/sidebars.ts index 9e34c99b..39aa3ad5 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -21,7 +21,7 @@ const sidebars: SidebarsConfig = { { type: "doc", label: "NestJS", id: "web/getting-started-server-nest" }, { type: "doc", label: "Node.js", id: "web/getting-started-server-node" }, { type: "doc", label: "Node.js - TypeScript", id: "web/getting-started-server-node-typescript" }, - { type: "doc", label: "Spring Boot - Jersey", id: "web/getting-started-spring-boot-jersey" }, + { type: "doc", label: "Spring Boot", id: "web/getting-started-spring-boot-jersey" }, ] }, { From 60b0fa77f2c0b1c8813cee0df852026f0b44c830 Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 16:22:12 -0300 Subject: [PATCH 14/38] Mirror Java requirements in Japanese docs --- .../current/web/getting-started-spring-boot-jersey.md | 2 +- .../current/web/install-server-sdk.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md index 25fec77b..27a34c9d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md @@ -55,7 +55,7 @@ Visual Studio Code と Java の使用を開始する方法の詳細について ## 手順 2 - Reveal SDK の追加 -Java SDK には Java 17 以降が必要です。Java SDK は現在、ネイティブ .NET コンポーネントをラップしているため、AIX など、それらのコンポーネントを実行できない一部のまれなプラットフォームはサポートされていません。Jetty をサーバーとして使用する場合、そのバージョンが Reveal SDK で内部的に使用される Jetty バージョン (現在は 12.0.12) と競合する可能性があります。 +Java SDK には Java 17 以降および Jakarta EE 9 準拠サーバーが必要です。Java SDK は現在、ネイティブ .NET コンポーネントをラップしているため、AIX など、それらのコンポーネントを実行できない一部のまれなプラットフォームはサポートされていません。Jetty をサーバーとして使用する場合、そのバージョンが Reveal SDK で内部的に使用される Jetty バージョン (現在は 12.0.12) と競合する可能性があります。 1 - **pom.xml** ファイルを更新します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md index f8a8cb81..add90bbb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md @@ -61,7 +61,7 @@ app.listen(8080, () => { 以下の手順では、Reveal SDK を既存の Java アプリケーションにインストールする方法について説明します。 -Java SDK には Java 17 以降が必要です。Java SDK は現在、ネイティブ .NET コンポーネントをラップしているため、AIX など、それらのコンポーネントを実行できない一部のまれなプラットフォームはサポートされていません。Jetty をサーバーとして使用する場合、そのバージョンが Reveal SDK で内部的に使用される Jetty バージョン (現在は 12.0.12) と競合する可能性があります。 +Java SDK には Java 17 以降および Jakarta EE 9 準拠サーバーが必要です。Java SDK は現在、ネイティブ .NET コンポーネントをラップしているため、AIX など、それらのコンポーネントを実行できない一部のまれなプラットフォームはサポートされていません。Jetty をサーバーとして使用する場合、そのバージョンが Reveal SDK で内部的に使用される Jetty バージョン (現在は 12.0.12) と競合する可能性があります。 1 - **pom.xml** ファイルを更新します。Reveal Maven リポジトリを追加します。 @@ -114,7 +114,7 @@ public class Application { ### Tomcat -`ServletContextListener` クラスを作成し、`RevealEngineServlet` を登録します。 +Tomcat 10 以降などの Jakarta EE 9 準拠サーブレット コンテナーを使用します。`ServletContextListener` クラスを作成し、`RevealEngineServlet` を登録します。 ```java @WebListener From 6eaa4be3d58659995e1ed0c0705cc8ee60fd92b8 Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 16:33:29 -0300 Subject: [PATCH 15/38] Clarify Java SDK sample placeholders --- docs/web/getting-started-spring-boot-jersey.md | 2 +- docs/web/install-server-sdk.md | 4 ++-- .../current/web/getting-started-spring-boot-jersey.md | 2 +- .../current/web/install-server-sdk.md | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index a3c09e6e..b4fe7af2 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -78,7 +78,7 @@ Next, add the Reveal SDK as a dependency. ``` -2 - Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. The `RevealEngineServlet` constructor also receives the request and creates the `RVUserContext`, replacing the previous container-aware user context provider setup. +2 - Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. The `RevealEngineServlet` constructor also receives the request and creates the `RVUserContext`, replacing the previous container-aware user context provider setup. Replace the sample provider classes and the `createPropertiesFrom(request)` helper with your application's implementations. ```java title="Application.java" @SpringBootApplication diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index d26014ef..c5deec58 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -86,7 +86,7 @@ The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Bec ### Spring Boot -Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. +Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. Replace the sample provider classes and the `createPropertiesFrom(request)` helper with your application's implementations. ```java title="Application.java" @SpringBootApplication @@ -114,7 +114,7 @@ public class Application { ### Tomcat -Use a Jakarta EE 9 compliant servlet container, such as Tomcat 10 or later. Create a `ServletContextListener` class and register `RevealEngineServlet`. +Use a Jakarta EE 9 compliant servlet container, such as Tomcat 10 or later. Create a `ServletContextListener` class and register `RevealEngineServlet`. Replace the sample provider classes and the `createPropertiesFrom(request)` helper with your application's implementations. ```java @WebListener diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md index 27a34c9d..9d43c135 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md @@ -80,7 +80,7 @@ Java SDK には Java 17 以降および Jakarta EE 9 準拠サーバーが必要 ``` -2 - `RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。`RevealEngineServlet` コンストラクターはリクエストを受け取り、`RVUserContext` を作成します。これは以前のコンテナー対応ユーザー コンテキスト プロバイダー設定の代替です。 +2 - `RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。`RevealEngineServlet` コンストラクターはリクエストを受け取り、`RVUserContext` を作成します。これは以前のコンテナー対応ユーザー コンテキスト プロバイダー設定の代替です。サンプルのプロバイダー クラスと `createPropertiesFrom(request)` ヘルパーは、アプリケーションの実装に置き換えてください。 ```java title="Application.java" @SpringBootApplication diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md index add90bbb..5f4b0a78 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md @@ -86,7 +86,7 @@ Java SDK には Java 17 以降および Jakarta EE 9 準拠サーバーが必要 ### Spring Boot -`RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。 +`RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。サンプルのプロバイダー クラスと `createPropertiesFrom(request)` ヘルパーは、アプリケーションの実装に置き換えてください。 ```java title="Application.java" @SpringBootApplication @@ -114,7 +114,7 @@ public class Application { ### Tomcat -Tomcat 10 以降などの Jakarta EE 9 準拠サーブレット コンテナーを使用します。`ServletContextListener` クラスを作成し、`RevealEngineServlet` を登録します。 +Tomcat 10 以降などの Jakarta EE 9 準拠サーブレット コンテナーを使用します。`ServletContextListener` クラスを作成し、`RevealEngineServlet` を登録します。サンプルのプロバイダー クラスと `createPropertiesFrom(request)` ヘルパーは、アプリケーションの実装に置き換えてください。 ```java @WebListener From c3672cb24865ccbf1568271526aa9ec5f4bc891a Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 17:07:31 -0300 Subject: [PATCH 16/38] Address Java SDK PR review comments --- docs/web/getting-started-spring-boot-jersey.md | 4 ++-- docs/web/install-server-sdk.md | 4 ++++ .../current/web/getting-started-spring-boot-jersey.md | 4 ++-- .../current/web/install-server-sdk.md | 4 ++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index b4fe7af2..fc35d28b 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -45,8 +45,6 @@ Version 2.x is not supported since Reveal 1.7.x 8 - Choose the **Spring Web** dependency. -![](images/getting-started-spring-boot-jersey-dependencies.jpg) - 9 - Save and open the newly created project. ![](images/getting-started-spring-boot-jersey-explorer.jpg) @@ -91,12 +89,14 @@ public class Application { @Bean ServletRegistrationBean revealServlet() { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + // Replace these sample providers with your application's implementations. .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) + // Implement createPropertiesFrom in your application if you need request properties. .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index c5deec58..31228bae 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -99,12 +99,14 @@ public class Application { @Bean ServletRegistrationBean revealServlet() { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + // Replace these sample providers with your application's implementations. .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) + // Implement createPropertiesFrom in your application if you need request properties. .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); @@ -123,12 +125,14 @@ public class AppInitializer implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + // Replace these sample providers with your application's implementations. .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) + // Implement createPropertiesFrom in your application if you need request properties. .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("myServlet", revealEngineServlet); diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md index 9d43c135..dc4faa7d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md @@ -47,8 +47,6 @@ Visual Studio Code と Java の使用を開始する方法の詳細について 8 - **Spring Web** の依存関係を選択します。 -![](images/getting-started-spring-boot-jersey-dependencies.jpg) - 9 - 新しく作成したプロジェクトを保存して開きます。 ![](images/getting-started-spring-boot-jersey-explorer.jpg) @@ -93,12 +91,14 @@ public class Application { @Bean ServletRegistrationBean revealServlet() { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + // Replace these sample providers with your application's implementations. .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) + // Implement createPropertiesFrom in your application if you need request properties. .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md index 5f4b0a78..2759de4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md @@ -99,12 +99,14 @@ public class Application { @Bean ServletRegistrationBean revealServlet() { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + // Replace these sample providers with your application's implementations. .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) + // Implement createPropertiesFrom in your application if you need request properties. .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); @@ -123,12 +125,14 @@ public class AppInitializer implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() + // Replace these sample providers with your application's implementations. .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) .setDataSourceProvider(new MyIRVDataSourceProvider()) .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) + // Implement createPropertiesFrom in your application if you need request properties. .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("myServlet", revealEngineServlet); From 353624a8959a711e8afebbdaef5a265c28eb4331 Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 17:35:19 -0300 Subject: [PATCH 17/38] Apply suggestion from @dpazos-infragistics --- docs/web/getting-started-spring-boot-jersey.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index fc35d28b..4929e383 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -89,7 +89,6 @@ public class Application { @Bean ServletRegistrationBean revealServlet() { RevealEngineServlet revealEngineServlet = new RevealEngineServlet(() -> new RevealServerBuilder() - // Replace these sample providers with your application's implementations. .setAuthenticationProvider(new MyIRVAuthenticationProvider()) .setDashboardProvider(new RVDashboardProvider("c:\\your-path")) .setDataSourceProvider(new MyIRVDataSourceProvider()) From 90afd280a787b0c11abc3d9718450d8f805161ae Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 17:15:35 -0300 Subject: [PATCH 18/38] Fix undefined createPropertiesFrom placeholder in Java code samples Replace the bare createPropertiesFrom(request) method call (which would cause compile errors) with null and a clarifying comment. Update the surrounding prose to explain that null should be replaced with a Properties object built from the request when needed. Affected files (EN + JA): - docs/web/getting-started-spring-boot-jersey.md - docs/web/install-server-sdk.md Addresses open Copilot review comments on PR #698. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/web/getting-started-spring-boot-jersey.md | 7 +++---- docs/web/install-server-sdk.md | 12 +++++------- .../web/getting-started-spring-boot-jersey.md | 8 ++++---- .../current/web/install-server-sdk.md | 14 +++++++------- 4 files changed, 19 insertions(+), 22 deletions(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index 4929e383..f5ea6dcc 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -1,4 +1,4 @@ -# Setting up the Reveal SDK Server with Spring Boot +# Setting up the Reveal SDK Server with Spring Boot ## Step 1 - Create a Spring Boot Project @@ -76,7 +76,7 @@ Next, add the Reveal SDK as a dependency. ``` -2 - Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. The `RevealEngineServlet` constructor also receives the request and creates the `RVUserContext`, replacing the previous container-aware user context provider setup. Replace the sample provider classes and the `createPropertiesFrom(request)` helper with your application's implementations. +2 - Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. The `RevealEngineServlet` constructor also receives the request and creates the `RVUserContext`, replacing the previous container-aware user context provider setup. Replace the sample provider classes with your application's implementations. If you need to pass request-based properties to the user context, replace `null` with a `Properties` object built from the request. ```java title="Application.java" @SpringBootApplication @@ -95,8 +95,7 @@ public class Application { .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - // Implement createPropertiesFrom in your application if you need request properties. - .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", null /* replace null with a Properties built from the request if needed */)); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index 31228bae..7927e00f 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -1,4 +1,4 @@ -# Installing the Server SDK +# Installing the Server SDK ## ASP.NET @@ -86,7 +86,7 @@ The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Bec ### Spring Boot -Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. Replace the sample provider classes and the `createPropertiesFrom(request)` helper with your application's implementations. +Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. Replace the sample provider classes with your application's implementations. If you need to pass request-based properties to the user context, replace `null` with a `Properties` object built from the request. ```java title="Application.java" @SpringBootApplication @@ -106,8 +106,7 @@ public class Application { .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - // Implement createPropertiesFrom in your application if you need request properties. - .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", null /* replace null with a Properties built from the request if needed */)); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } @@ -116,7 +115,7 @@ public class Application { ### Tomcat -Use a Jakarta EE 9 compliant servlet container, such as Tomcat 10 or later. Create a `ServletContextListener` class and register `RevealEngineServlet`. Replace the sample provider classes and the `createPropertiesFrom(request)` helper with your application's implementations. +Use a Jakarta EE 9 compliant servlet container, such as Tomcat 10 or later. Create a `ServletContextListener` class and register `RevealEngineServlet`. Replace the sample provider classes with your application's implementations. If you need to pass request-based properties to the user context, replace `null` with a `Properties` object built from the request. ```java @WebListener @@ -132,8 +131,7 @@ public class AppInitializer implements ServletContextListener { .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - // Implement createPropertiesFrom in your application if you need request properties. - .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", null /* replace null with a Properties built from the request if needed */)); ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("myServlet", revealEngineServlet); reg.setAsyncSupported(true); diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md index dc4faa7d..eafdcd32 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md @@ -1,4 +1,4 @@ -# Spring Boot を使用した Reveal SDK サーバーのセットアップ +# Spring Boot を使用した Reveal SDK サーバーのセットアップ ## 手順 1 - Spring Boot プロジェクトを作成する @@ -78,7 +78,8 @@ Java SDK には Java 17 以降および Jakarta EE 9 準拠サーバーが必要 ``` -2 - `RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。`RevealEngineServlet` コンストラクターはリクエストを受け取り、`RVUserContext` を作成します。これは以前のコンテナー対応ユーザー コンテキスト プロバイダー設定の代替です。サンプルのプロバイダー クラスと `createPropertiesFrom(request)` ヘルパーは、アプリケーションの実装に置き換えてください。 +2 - `RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。`RevealEngineServlet` コンストラクターはリクエストを受け取り、`RVUserContext` を作成します。これは以前のコンテナー対応ユーザー コンテキスト プロバイダー設定の代替です。サンプルのプロバイダー クラスはアプリケーションの実装に置き換えてください。リクエスト ベースのプロパティをユーザー コンテキストに渡す必要がある場合は、 +`null` をリクエストから生成した `Properties` オブジェクトに置き換えてください。 ```java title="Application.java" @SpringBootApplication @@ -98,8 +99,7 @@ public class Application { .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - // Implement createPropertiesFrom in your application if you need request properties. - .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", null /* replace null with a Properties built from the request if needed */)); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md index 2759de4b..e8dfdec3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md @@ -1,4 +1,4 @@ -# Server SDK のインストール +# Server SDK のインストール ## ASP.NET @@ -86,7 +86,8 @@ Java SDK には Java 17 以降および Jakarta EE 9 準拠サーバーが必要 ### Spring Boot -`RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。サンプルのプロバイダー クラスと `createPropertiesFrom(request)` ヘルパーは、アプリケーションの実装に置き換えてください。 +`RevealEngineServlet` を Spring Boot サーブレットとして登録します。現在の Java SDK は JAX-RS 上で動作しなくなったため、Reveal SDK クラスを JAX-RS コンテキストに登録する必要はありません。サンプルのプロバイダー クラスはアプリケーションの実装に置き換えてください。リクエスト ベースのプロパティをユーザー コンテキストに渡す必要がある場合は、 +`null` をリクエストから生成した `Properties` オブジェクトに置き換えてください。 ```java title="Application.java" @SpringBootApplication @@ -106,8 +107,7 @@ public class Application { .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - // Implement createPropertiesFrom in your application if you need request properties. - .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", null /* replace null with a Properties built from the request if needed */)); return new ServletRegistrationBean<>(revealEngineServlet, "/reveal-api/*"); } @@ -116,7 +116,8 @@ public class Application { ### Tomcat -Tomcat 10 以降などの Jakarta EE 9 準拠サーブレット コンテナーを使用します。`ServletContextListener` クラスを作成し、`RevealEngineServlet` を登録します。サンプルのプロバイダー クラスと `createPropertiesFrom(request)` ヘルパーは、アプリケーションの実装に置き換えてください。 +Tomcat 10 以降などの Jakarta EE 9 準拠サーブレット コンテナーを使用します。`ServletContextListener` クラスを作成し、`RevealEngineServlet` を登録します。サンプルのプロバイダー クラスはアプリケーションの実装に置き換えてください。リクエスト ベースのプロパティをユーザー コンテキストに渡す必要がある場合は、 +`null` をリクエストから生成した `Properties` オブジェクトに置き換えてください。 ```java @WebListener @@ -132,8 +133,7 @@ public class AppInitializer implements ServletContextListener { .addSettings(settings -> { // settings.setLicense("your license or remove to use ~/.revealbi-sdk/license.key"); }) - // Implement createPropertiesFrom in your application if you need request properties. - .build(), request -> new RVUserContext("whatever", createPropertiesFrom(request))); + .build(), request -> new RVUserContext("whatever", null /* replace null with a Properties built from the request if needed */)); ServletRegistration.Dynamic reg = sce.getServletContext().addServlet("myServlet", revealEngineServlet); reg.setAsyncSupported(true); From fc27282cfa30bfa8ccd46fd789a3186fed133cff Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 17:34:00 -0300 Subject: [PATCH 19/38] Add CORS setup step to Spring Boot getting-started guide (EN + JA) Add Step 4 - Setup CORS Policy (Debugging) to match the equivalent step in the Node.js and NestJS server getting-started guides. Shows how to add a WebMvcConfigurer bean to allow cross-origin requests during development. Existing Step 4 (Packaging and Deployment) becomes Step 5. Addresses Copilot review comment r3244078637 / r3244078661 on PR #698. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/web/getting-started-spring-boot-jersey.md | 13 ++++++++++++- .../web/getting-started-spring-boot-jersey.md | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot-jersey.md index f5ea6dcc..3e0137f8 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot-jersey.md @@ -114,7 +114,18 @@ new RevealServerBuilder() .build(); ``` -## Step 4 - Packaging and Deployment +## Step 4 - Setup CORS Policy (Debugging) + +While developing and debugging your application, it is common to host the server and client app on different URLs. For example, your server may be running on `https://localhost:8080`, while your Angular app may be running on `https://localhost:4200`. If you try to load a dashboard from the client application, it will fail because of a Cross-Origin Resource Sharing (CORS) policy. To enable this scenario, add a `WebMvcConfigurer` bean to your `Application.java`: + +```java title="Application.java" +@Bean +WebMvcConfigurer corsConfigurer() { + return registry -> registry.addMapping("/**").allowedOrigins("*"); // DEVELOPMENT only! Configure appropriately for production. +} +``` + +## Step 5 - Packaging and Deployment Reveal SDK includes native components built for specific platform and architecture combinations. When you package an application, Maven selects the native component for the current machine. If the deployment platform or architecture is different from the packaging machine, use the Maven profile parameter `-P os_arch` to select the target platform and architecture. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md index eafdcd32..aa5b98f4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md @@ -118,7 +118,18 @@ new RevealServerBuilder() .build(); ``` -## 手順 4 - パッケージ化と配置 +## 手順 4 - CORS ポリシーの設定 (デバッグ) + +アプリケーションの開発およびデバッグ中は、サーバーとクライアント アプリを異なる URL でホストすることが一般的です。たとえば、サーバーが `https://localhost:8080` で動作し、Angular アプリが `https://localhost:4200` で動作しているような場合です。クライアント アプリケーションからダッシュボードを読み込もうとすると、クロス オリジン リソース シェアリング (CORS) ポリシーにより失敗します。このシナリオを有効にするには、`Application.java` に `WebMvcConfigurer` Bean を追加します。 + +```java title="Application.java" +@Bean +WebMvcConfigurer corsConfigurer() { + return registry -> registry.addMapping("/**").allowedOrigins("*"); // 開発環境のみ!本番環境では適切に構成してください。 +} +``` + +## 手順 5 - パッケージ化と配置 Reveal SDK には、特定のプラットフォームとアーキテクチャの組み合わせ向けにビルドされたネイティブ コンポーネントが含まれています。アプリケーションをパッケージ化すると、Maven は現在のマシン用のネイティブ コンポーネントを選択します。配置先のプラットフォームまたはアーキテクチャがパッケージ化に使用したマシンと異なる場合は、Maven プロファイル パラメーター `-P os_arch` を使用して、対象のプラットフォームとアーキテクチャを選択します。 From 319784f246416c6f7599a0ed02422eac1026a89e Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 17:39:55 -0300 Subject: [PATCH 20/38] Rename Spring Boot getting started doc --- ...jersey.md => getting-started-spring-boot.md} | 16 ++++++++-------- ...getting-started-spring-boot-artifact-id.jpg} | Bin ...=> getting-started-spring-boot-explorer.jpg} | Bin ...=> getting-started-spring-boot-group-id.jpg} | Bin ...etting-started-spring-boot-java-version.jpg} | Bin ...ted-spring-boot-jersey-dashboards-folder.jpg | Bin 9443 -> 0 bytes ...-started-spring-boot-jersey-dependencies.jpg | Bin 91502 -> 0 bytes ...=> getting-started-spring-boot-language.jpg} | Bin ...etting-started-spring-boot-package-type.jpg} | Bin ... => getting-started-spring-boot-project.jpg} | Bin ... => getting-started-spring-boot-version.jpg} | Bin .../docusaurus-plugin-content-docs/current.json | 6 +++--- .../docusaurus-plugin-content-docs/current.json | 6 +++--- ...jersey.md => getting-started-spring-boot.md} | 16 ++++++++-------- .../current/web/toc.yml | 2 +- sidebars.ts | 2 +- src/components/FrameworkPicker/index.tsx | 2 +- 17 files changed, 25 insertions(+), 25 deletions(-) rename docs/web/{getting-started-spring-boot-jersey.md => getting-started-spring-boot.md} (92%) rename docs/web/images/{getting-started-spring-boot-jersey-artifact-id.jpg => getting-started-spring-boot-artifact-id.jpg} (100%) rename docs/web/images/{getting-started-spring-boot-jersey-explorer.jpg => getting-started-spring-boot-explorer.jpg} (100%) rename docs/web/images/{getting-started-spring-boot-jersey-group-id.jpg => getting-started-spring-boot-group-id.jpg} (100%) rename docs/web/images/{getting-started-spring-boot-jersey-java-version.jpg => getting-started-spring-boot-java-version.jpg} (100%) delete mode 100644 docs/web/images/getting-started-spring-boot-jersey-dashboards-folder.jpg delete mode 100644 docs/web/images/getting-started-spring-boot-jersey-dependencies.jpg rename docs/web/images/{getting-started-spring-boot-jersey-language.jpg => getting-started-spring-boot-language.jpg} (100%) rename docs/web/images/{getting-started-spring-boot-jersey-package-type.jpg => getting-started-spring-boot-package-type.jpg} (100%) rename docs/web/images/{getting-started-spring-boot-jersey-project.jpg => getting-started-spring-boot-project.jpg} (100%) rename docs/web/images/{getting-started-spring-boot-jersey-version.jpg => getting-started-spring-boot-version.jpg} (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/web/{getting-started-spring-boot-jersey.md => getting-started-spring-boot.md} (93%) diff --git a/docs/web/getting-started-spring-boot-jersey.md b/docs/web/getting-started-spring-boot.md similarity index 92% rename from docs/web/getting-started-spring-boot-jersey.md rename to docs/web/getting-started-spring-boot.md index 3e0137f8..383d70b1 100644 --- a/docs/web/getting-started-spring-boot-jersey.md +++ b/docs/web/getting-started-spring-boot.md @@ -13,11 +13,11 @@ More information about how to get started with Visual Studio Code and Java can b 1 - Start Visual Studio Code, open the Command Palette and type **>Spring Initializr: Create a Maven Project** and press **Enter**. -![](images/getting-started-spring-boot-jersey-project.jpg) +![](images/getting-started-spring-boot-project.jpg) 2 - Select the Spring Boot version **3.3.2**. -![](images/getting-started-spring-boot-jersey-version.jpg) +![](images/getting-started-spring-boot-version.jpg) :::caution Version 2.x is not supported since Reveal 1.7.x @@ -25,29 +25,29 @@ Version 2.x is not supported since Reveal 1.7.x 3 - Select **Java** as the language. -![](images/getting-started-spring-boot-jersey-language.jpg) +![](images/getting-started-spring-boot-language.jpg) 4 - Provide the Group Id. In this example, we are using **com.server**. -![](images/getting-started-spring-boot-jersey-group-id.jpg) +![](images/getting-started-spring-boot-group-id.jpg) 5 - Provide the Artifact Id. In this example we are using **reveal**. -![](images/getting-started-spring-boot-jersey-artifact-id.jpg) +![](images/getting-started-spring-boot-artifact-id.jpg) 6 - Select the **War** package type. -![](images/getting-started-spring-boot-jersey-package-type.jpg) +![](images/getting-started-spring-boot-package-type.jpg) 7 - Select the Java version. For Spring Boot 3.x, we need to use at least **17**. -![](images/getting-started-spring-boot-jersey-java-version.jpg) +![](images/getting-started-spring-boot-java-version.jpg) 8 - Choose the **Spring Web** dependency. 9 - Save and open the newly created project. -![](images/getting-started-spring-boot-jersey-explorer.jpg) +![](images/getting-started-spring-boot-explorer.jpg) ## Step 2 - Add Reveal SDK diff --git a/docs/web/images/getting-started-spring-boot-jersey-artifact-id.jpg b/docs/web/images/getting-started-spring-boot-artifact-id.jpg similarity index 100% rename from docs/web/images/getting-started-spring-boot-jersey-artifact-id.jpg rename to docs/web/images/getting-started-spring-boot-artifact-id.jpg diff --git a/docs/web/images/getting-started-spring-boot-jersey-explorer.jpg b/docs/web/images/getting-started-spring-boot-explorer.jpg similarity index 100% rename from docs/web/images/getting-started-spring-boot-jersey-explorer.jpg rename to docs/web/images/getting-started-spring-boot-explorer.jpg diff --git a/docs/web/images/getting-started-spring-boot-jersey-group-id.jpg b/docs/web/images/getting-started-spring-boot-group-id.jpg similarity index 100% rename from docs/web/images/getting-started-spring-boot-jersey-group-id.jpg rename to docs/web/images/getting-started-spring-boot-group-id.jpg diff --git a/docs/web/images/getting-started-spring-boot-jersey-java-version.jpg b/docs/web/images/getting-started-spring-boot-java-version.jpg similarity index 100% rename from docs/web/images/getting-started-spring-boot-jersey-java-version.jpg rename to docs/web/images/getting-started-spring-boot-java-version.jpg diff --git a/docs/web/images/getting-started-spring-boot-jersey-dashboards-folder.jpg b/docs/web/images/getting-started-spring-boot-jersey-dashboards-folder.jpg deleted file mode 100644 index 85f39ce89e56127d60f482bfecdf4a5e27091c4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9443 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
lr4 zuXqpj!OtlprVFZD6SP_qQNg?GAIL_(F8#zJd#$Vp`<3;+-;U<{|F5e5F0(ax{%(BA zTREM#cUJ%JQYi!A>!6eI&G1bDtuji-n>djQ_xW}XZTkwqeJk$97S1KQmt%#wiM{#3 zmgRnbG68!#dBme#c&?QRL)z^xj)Ba=oj2O_y5&@&in6s1E6O%zgjdw_GPh<}Wv!TC z^>;NZVBfXGp8p-toO7b}6t(AJw#)P7%w*$#TE*64R*r zq@sRgEW@Es_*NXPQu0=RF%=^BqlJ75s!4vcDEZy`l5OWveK2sPsWNR65%5188#Hs1UIF@0aex@lmD zLnM~zKy2QhFVZd>PR+AU#rk8%mkWAQsL6Jo^2KhhU9e`OG=&FH#1X9or&w(OHn5P% z8_cBB+}PGJom*d{EvGj9iz9K%o#Ocd^|6g}E3GALYeOW;oC6yt)Pjw$n600y)2))q z^Anl~Wwzo6usVb?XS9d(sD!9i>0%SJT|CE}qi~tfNI}``+({pI9aqvv6@xo^T-kZ? zKDvZ|0QWj2`XL-caoUq9mH1-`T4Y)?b?gpN(r=pX&tOkm&M`V%W|WO|?}T$b8mU)#NnJvSeYlG?z#63?3n0KOkn=v`ne(N!25B&^vvs7vl3md9@)4`@*jz?Cp z**^zd1_^n2X9E?((TIb~_5HEX%L%X?Ys{z0-7E6Ks&eOI2kJe@_Glnz!J=BwRb@#f zVpu2k+YUX>53SUti(N!fL_pS#v8v^*^u_kO_WlTjtHLVWg;9dWyN0$m>M?({e&Cxl zr=rfYu{gX?)g(ls0V5q*Fn)Od$!>&R)f!0jDa|E7gTtXA9TRr*M^iacy-$Nk6UU7h#duwG+CuDe=8+q6NQ~V#ONRQ8U zI=Z%t-k+rkuI5a?&-mfX(z4*TjE%lflMQL}v%CKgq%*^U1hyjqWgzR~9=(?fcC~NU z!~Z8jT)6r(SL6MAZx1^J3Ao7427j7(^&LO7e*iMb;lhk&q^*B%AL>Ooa3NV4Wzt@FoO5syICdXe{d-SWoIUdKiI)DC9ccfO+uCdg9Zcub zdQ3JoB{dlRXRaU<)g?({FzdQh4efzA<}@+SSYcM0ScYlHZS`qP7P1u??kr{HHn1l= z)^g?Sc{;E7UUVbV(rfiLPHBAuos1HRJg=l&gof|;e3@su=OkRg9>wZC{Kj<9-R2Sd z24|6uc^F1@-L^X*{OVn^L5a%;h&OBMrvR`*;tWN3fM6C^ivNlDr!5Jmy)dJ-A4jfU zhND0X!bNt$im~a+a+h^+D7`0Uc!+Mce<^F4S!#CERt6Nkh`>&4Fey=V<@KS)sQdDf zDRz#@@3JB5d|lIJ9~xqxl0B8-1k#5FdRXXRpo?N9%WZq`4CuI>P)Rr`7*eoes`)dD zSB;*Myn94OfaiY1{OxaBOpO~LNwmhZ8AXb{6NhGsphB>~IzLX^26BAP;KAN*Z)g1> z#HLE@1Ce9DBY`>>X2T1Rq+1tba~4e-G0ss%vyNZ-oCA1DB7$L36F60&@V5)M1E7V}&C^P9kvHdjs<2m-(otMnbpJ1Pu_m zydm#c7{I^khz_`TqW%v-!2?6hYdIJ%Iv`f@;jWh)KC{+hznvf6Q?^y6CAm;7S$ zNtIqqaNG0Ijc@S+{jF>phhFPPKQ4Xl)|c9Ox$>r*?p^|c=DS}!(_WA;5GFX(R^SXU zs?j{u4*pzo=L`?GoC(bwXx_Zq%Qbjk%l3_rK>95KK)d@c(Xp`KmGb}{UWROCln3J< zOqOZ=l(es>u@XM!vL{J(40%JO8Erg@`Yb+$15M+E)|KuLQiiq$R6Q5W&?HnePmNxOwXd`Sh7o&y_|9Y{y^xNM$ z8?8jQbRypepc4VUo%VzT2}}niq$Q-nlr{qzVc`7ov(NTIEmnwkWZT9ioau9xI)_rE z|D6e895)yxP%eU}u0tpEv^_p3V^z-$U(@ga1=ywkwo11GpFX&Mvz|mydAkM}Zf~?n zX`~}Cl`)pSoj=y|W`$`-={$vTN+V$eWM_nQ*#$6djBr?~iNyjm;(cxV)L~d^`7r&- zfKVNwOw^;NPrkuZm|dZT#N%=SozCRQ6(eZyMh`1n{rLHa{Oe2&vrjtHy^Pi~Lyc1C zf{OhN#&?>#+oJcFws{2%E8Fj5ZPx~RS!j)*2HG@(rP%EawP5w5Bf7fCwKP#i)h)RY z(bW!dfmrt6=e#>{;u}h_5}M9$r^|4LC{s;UgMr10-07Wo-zE3c_fk9k0g;(zA{(l) z?y{11YXB0N~66z z)kA~T(oiscIbK$ONU_ti>wPCJuXqIZ;|RsKW!msrC;*z|q~r9GM>ILaLJ_-z@-M|u z45$IgoMsYGu4t({3)|j2-at=c!=3NtYTP(VOegpc0Tam9BhS=+5{u|PvA;04SU5C& z_pOIG?f1li=At2(Beip_nDaZZb|wLx7Pnyf7|(+I1t<(_=FY}k6oFeb{k!9PZ9qd_ zVdJUu*bd6~^Dg>nuhj_~O@-ibhZQ)(5ynX$`XOO}WARtCZS{R?*E(Cs!04p83o;^3xb^j>Aq2UJzP@BCqMG{CBXr zr1pC+Gdxf7cPXFcJ&IndyOv5TigmYkA3!NzpcA^`cQkoJ=X%p~q!Dd75M7PZRQ!l& zZT~~Muo>}t7E;=h7Mz@0%<*%ESf+IbSilC`J)ofHLcTM2z)gYo>+WzZ5CI5R&8qL^tOCkrHroTJK-1C zyH7O!P1NHDY=kUNc6u{!Ml%X(BvZdNhmPIJeI6>B3n_l*j=U@XmUx1d9nBk5=gb7H zvS+2Jo7%zpq7LOIml|@t#a6o{#+U>b3-`*hQU%dE#YIIGlVhA-5h?B=8pemzsr`^Hia%KWuSMM+8zG%CW ziHIz`l_&mMLX}rVNbu>{2{bp<&_Um7{ApeL;1Tf9<8v2Fpqfh7&45TLdWobk*-&i% z8jw}2XBq2LqFJ%S?4Cjs%+tCBw5zyl_o(amol_OnUd&T%y*unz)ES_?b=1y|m0nj+ z?ZwNDr*|u%<0}Kt1xTSHaa%)UB?3!jWa+my?M}t2Q_0j>MVIseRw7OoYiNtIU{dy8 z_l=`e#|EIl0_sK89ZfmlMcJHJ9x3Xa6bxcy4zcvHX@3*On#X|S32effs+wt#M&;_l z?wd;MJN3)~x)Ef_q6NazHP{7dCQ{p*R`3mPeM$ zpJc)BbgNGk;6H zy;W%BmWp4fwO2K#Kx4x_Q02ijdahd>$1(#lLw)$MDf7Ju`ZrJQW%|`N>Zt!;wqS;*-)!NmFN=2Gg z<+49MLh&6%f21)UgSHA)a!as;Q={=L)4f$8;BFclE&UG&@#~oms)L%Gk(Nr; zQc@N_97*va@)AO*P;ESim!7RRn2wvR{P{lHI`N!PXgc9y`(>)wCT^2e(B~qxMGB%Tz@b{tSnhF7(s}%0X z_po_@8>eOpWK5ClT=<+Pt=55RH`8yXM{bN=czn6evj4V|qm7fsC&EEtyet$DI2ct; z+hQW3ZKfsa-D{eY^|K3W4G5mb4Q<^bAgqf;C9%b=0Bz~3<|Th&j2u|6S7>XRUjLh! z`lEiT{N=_L$tx;_}Ibezdh})VdLnk{uGo zH*VB>u2T53{;{BKWhlj30huFA`GXtRnmj;kM`L24(d61+$POq}>n>gN2d(p7%Xoji zIgm~XHtXHBXF>6*1AU9W|Ad?TkTC5Bm2Ivy0)m}b14N|1IJT#6e1NqSSnfTS?p-dh zSIO8@l^3s{k`3HZmrikSID7YhXLp9_8LD=|BiiqwXUn}xO#dV;V+|nkuV$F^;qRn0J-BSZ86D#&m)%Yp!OG{^e0+LMmrWiv#rrM{E-%umA}-O+`Y!uqaX3-Os@ zle?P@iclf&yK-%r@ifsuoi?^ z!@py%k&SnGqkzDV7wFxCI!IxXnEP{GlSBD&2CD`Whvn4tGwrLTs$A9OW60RV7=1%^ z(p-df|J_I1&6NM<06{AINi{W8&|zuG9_t;fY?R9QY;T#yz&_yx3-|fc)E``Qx1M78 zK9j>5{~=%med39*E@XQMP1$V*zq&|^cnAMgZx<>0b;@&w@0mcL)Y>OHIAwz5ke6qI z@r+J>o0TesCgSDjlQ4QVZmdJwmCv!# ztUj5~gv-%mhSA&GrYxK$Et9E?M=Qq%)S;PE!=mN=uM@s}BVQJCnT!54dnT|-wpVMk zC*@`0cUTL_T=_TcC|*3=fFLATE*j`)NO^lLtge+VF6uY^vJU($77G?OomaO$c}h9| zZ8#f~8F@QYLxgXjRS?=W`Y$E^ujN*h~9_b&o)zJ;hyb(N~A9>juc%>@l5E3q75MV@X6xBV(Upt9HTmuL-6O~vSF9*65b#SS18lPTdelF5~xb2$K-rN^=t=TrLt< z$29V!N4L2NKN&rx?im)MH7Pba_*o~KAS}>2&aI&UOe|RwlX}BBvOmLXJ@?W`H>F@` zdv0mFZk+_%eTSSU*UlH_Spg*hHpsT~)dk3kbIoF*^a#(mXMYpJr$8|= z@P0=`K<#Cq{}UX~lp=RWPu(PM4UonXB`JkYO})WP;nZ)wUBr-ggAkOS)%-2VBP7xz z7d(qwTXCKpHL6{e#LxlVkatGFF>JV$5=}eZe)ayt5*N^H<~x@?DpS8^P7i@!)oOuX zxKfJk^5whz7P3))6=y1)Q!=mrvS$5dIMdzr^%vFthv41Y@{+hZGYDp0wbz}OLTgd ziGP+-Buu}=G{DI?&S2!$B7wBzc@ZqiPmO!_rd@UpMC+12^|ry_{bO=&|`9r zFI{iKnK*N$-80wd{xoS~4Eb@&5i$HF2>%$T{Ru^=1S9D44xR-Y5q@>gJikzEmgK2^LXPE+=J#v#*C6YZH(93*scuUV-fo|Cq$5dz9~+Bt#aq zOCbv11^+T#TyEvVYbbB0x!?b6=K1Y>lz=#G!r~oFWEQ85$-3}E_eT^1?=xgokND z-ACU;F@El5vVyz>%B0ZJ$Z-9xd6%&Wm@Asdf}+)$rMx`$!hqhO#LMQy0lio1P5O`& zbKwQi*DR zg?_pqbg^wEu~@@ezE_Q#wD)(Px;~dJgU+t$ML@k_AGwm*Oud>S7xaQ$+d>UEq};&V zL5`IOI_OGf^k(JX&;J?DOYlW**03ued=-rVg#Ya^{1A|eZ)xcRr;{8x^4OOspn z*FCwJW#S7jj8|0aljf25Y_LLB*Twe^q(P}G`zfqarqhb%9wHdjodxBUVJJK|u&kT! zoABqsCif)Ts~2HI-dAbf-94`BYv@ROT=ZUX`Sb-{L^`MAo0_%knB>lqGqzY(A#~+@ zKn)HUF-l*HnMNJphe|Xl7q}XqGas|gGBLip^*)yV?X6$s8X^m0{a#lWMTI=k-KVPU z37W0y!ntuD8vVBP++_5+#UBzC>ok6mErUlYkxGt*%}MF(OI7tYr#3d%<*Xbr4fz&F z2{g;*dc`#nF-x=To=ULI?ckk{{f3YohlCre51{y=zI414#^X5JeVS@vUz)M6H#6)f z`MlANu+=l^j$08c&U*Uw@HjrtMo`)K_`#=QvW_uu%|tk(3mv4f~fbi&0g0K82RvgNI` zQ1tInnuS@8!C{tPb@X!EO&ZM0y3F1{Y5t>coQ*dG(mvt`ae0&`Y#px}ucBtG6lL|q zkXWXxd@O>kdM*-Xk5U(Ot~iSmCd^;jYe1BgESMozBE4=W{!ac2i7>0s9|JN)2$Y|m z$S{dSukcO59`i;V;?yg>OBDRQfjuLEr2`=qHk-G{R z^wTvov;oLv)C#v*DWe*bYq9P#f(>SaBlxupv_&8Ne|US(s3yCvZ8wO5Qlv=lNR_Ho z=_1lZL_un(B0>ld>7gS?Zvp}e3P?wK3%&O)9YPPiCkP?5-21xUG4^<$=NbFG_a5Ij zzWsy0R~T!pxz?IJow;Q5`YhgC%udrbJMVtW&z z28Gg}&PCeTA98N-eU;oX^)0$#BqYakeZNxk_lMWan4g0iWA5`X)QYt=gj6jeNu#}Z zecV3}f*jl4zj>WN&;!Y!QhI;Hc=cdhM6_m@R}ShUm|NL!Ty{`uKJs37po&{pT(w^9 zO&!6ckO!lD%)ojiwJGJhiMidguWm$elh>m`J(@j&?8X=% zIeLsTQ+eImYQ&@-ZfYu@B^5u|XXyM`XuZn1kUJeZ>C1PifP{ywECr(kq2#v4lkW6W zic?Uc+*_$Cw8eHPeF&Gs!Ge}3PhiJ^1VG>hWL4(*D|L=XC%1W8$JN6Q+>6STULl}e zhA~VKg9X~JZP6<*sw9?;IthXeq-XSL4BOJUpthlIO=QQ`L2@DaVAi}&+n-m2$E}2$ zENGb$a9oVJSQF+2(>fq?l4zJJe$U`eJjDksu$CDR%B{V%j=n1++30mCh@01Ls;zA( zA1~glufqR+Q#a$l`Dosej5pD(b1*sxWZT9U=-MrZXO!!$XervV!%i1w4b#xOn%N^f z06<~^9MO0D>BCA)?j14>P=fOlmURpID=<-`>o2}Y`Ddv=_Tz`0JsQ4r_=H7MG0Pn; z3}t@K`3`8^fu~QWqBXy_+Uh2gr{or|zTEOjn-8n|*2Vy8On6C5m^w4lLJsV7l(-;m z6>X`)RiC?P{$JDVGT z(EL^1TL#}Bd#O=?6H^kKWCMY%IvQTuZyD8%N9W-Q?`e_*bE~ob%zki|YLGZMzY}Cf zI8spNfIixH{bk=ua(eyL0_YLrG;3TzbX#3p#W9)#vndQ4>!Yvmi z3PqC9fJ;?~;!TV^ed@bE_7yubn68~Im1NL?gIMAy@n^XFZ(>5gEd;C#8yExJwOeZ1 z;6lZ$yU5-Z(%>9~UD`;0BlBo*qyE_JRj3um)67R4AZOPOiz-zlI~7o#*NB6$#)ZJ- zmGev?Gt*}tGi7Aqfp@aR)OJZ9+8B`CW{F*4(^K{4iv+&U&JGtC*@a%;@ig{QLoF@g zk-NLMk`O(^H+3a`vW62x9&ksqLDPYJzoXfDH8!6%xl*DJ#{FI`h}>X$SIa|}P-u`Q z*2+>xQ!1U}XB)AMs&{Wp>pLY%oTnLj=|`Rp&=tv?W6XM*0lZ81(c#NaFX{4cU!Dd! z%hASMvI&M@jylb3SAU#VGc{Mg_CpZ3J4!ZB8hV_)rhWq7j7XPeyy;u~L76DNX_z`_I{yA)!Wv0wIFs`m-k)#o@5dsD)$04QNO_WVRP{ev&oaQ z@q+`K@tbP9;AXYy=_&aIFR&AL{M!I=8SPllyK2Ca<)PhWXAO9Nt+HAc3lo-@2i~o} z!b&8*ZZxEeK3>v>&}{M&LRk7fcm#q#->2VyyA;FC7&J_BY6~n8O^Bvxe_gaUKop!k zzhn0n!mXeBgh0+($T{xy6Bb(9IeQC`JU9o=ho>fu5x(~l3_oHa?PJm(FOIZ?@J8NkO*1i}zy8;Kn$V6wkJuHWB zZVT)sU(;L*{i^GVVB`tZ-0X_|K-d?V&y}ufzu@1CSE_2663!bxsk8Z=#I8pTMS90b z$XMpN*mfBsott7GdQ*L-5X)-z!83w&C-BVn#};$;l<fe&6+?mgcZSvMoD6;CjoaH@8U^g^Yd|xB$&C;rxW&hEGNRbe6?qWGcM(` z5y2BSIaLp=MOA*(DLc7Vk#Zh**p^yHV1Lpvdgf7^vru{WrdMKDesR2@C~>+VUz-JK zO=|?q=Q}%C(sHyAgZ$vq?OM4pC%?k-idaF_n>KF0Vy#5k=J>?t z17=ajhDF!jBYx0Ff=ev7QsQUn^ONg7=X7FugVFu#O9A`81;%Xu zE|AE8@B__ypN5#Xtz{5pePvgHD%IG2@--{Oz1Y1VKbev*tUu{g27HUy;xoflpKFkq` z?bzjS8O#e7(p_NKq)z_6Da2v7hGb6c5lqKLTt3-R6bVCBg4=)Hhi@5HPfDC7QQkIq zVB_)UiEAk546~=3eB?0+Fgz_({u4;zKz~|@3F}5)8P8%&OASpN+3Tr-X{Fx$0P{`Z+$vPa$Je|+0#FI$C4*nM0H;ilv zw~)Z6PuYKb}-{fm`<^hMz&njY{ONp@OE_WAB zsxULy3^fc=F!NJYshfi6+CSMu6KGc&8bvZsWwT_iF96fnO+=QRO zKTg3@wUXofcNh1sRK3V#w<0-`JO)xWk&n3y%?p-vVf<>!-?zR`wi2~E$gzh8kV=rV zZRr4Sq{5jS8G_@k}in#Xb)pcHV0J9yvhlfW)E<)Y{ zR%{d+Lu*+P^c$?se%G0wB%g3&*V7Q}b7_au#c#a|aun^NhFnaS6%Bg~RH)0-rTorO z&X(&F7a8~X{$Qu^d)(LUOo}&?{@ggF&eog0s;lHTbf_&fix+3jg_nNX-YOTRNZYib zhDedgIx=TGeyg#f->i-e92X66U{(rOvYiC(nH-bCB1^n6ij#vhud{s{vFl$RpEt|U z0-fNATdvryOWfi@KMb-UOup~9qkM*S9m_i|g++wf77mQ>s3mC;%?`W{T1mHW0-$Rn zX^xIXvxwY6D3g0{$SFCqPNWja4wBkf$Cdk~P7+j5kn{K$EcbCcpL-_c^%HhI{5T-w z6G!*18FpDzEWp$7)G#U}a>tXQHo{S2JMzh~HgkmMAn&C1FI|P4+7Yc^y%Y4`5wEkO-g3F#JVmxnBh4PjBL(Th*Wim-=K2BSYhrN<$2#!25s^dN#I=XF( zW?`5*y;cgY*o%altK|;li^WXadK|Qq3EiA3Fd1KGGJH*OA9DaRyg42EFi`S=TNx=> zhsoTYGKZc%LFYlT+N11-p3Lt8M^2v-6HSF_2u}E~i%*y{qSzECndV<3#(W|9bI6== zh?I9UHUZpw`__RIL%RT7%*R_F+iy~;+Twz-A;59gRYtOlXT}&5p|sM7o2r^7YP2XQ z=8OljZl`h)&h^SZEvyJPFuucZGx#@LpC<4^ygQ(J2B38m?XtsaF-{rz>L^ljPaQB6 z>Xr9J*@m^M{Q=|+?+eQa`T*iD2gdBwin8!~YpOqnTWZ;(B^zaD%%vY=D4FVbO$zrV6;)MONB19bMA%3^=U*~G^L6a zf0(uU(ZnLHybeUvZ$%KT=2UU$HyT5zC+xvft3=-lFBggj zpd`;zSmN}a|J;R0nZl0^?6<;p4`F$A)-DfB4<>t8h>5b;OiN&Gi<@wP(Bkpf6ZU7g zBW&x$m7X;AN6aGrn`c3M4a#5ll%Q6*0qVp?!AUa*&=o&hojCQ$ z6IRdH=+orf+$cETF;WW4ohc8)$eCug>E-0#^#jpmHOn2wmbu$3+m8K&?x)9leNt<~>Of zpC2Z$q+RvmGUl@J_zRRA`6ke7l+6n`Mp{xZYi$vt!6I8x-568f$8}#JAJl26dCQ#m z#OKeCy?!~aFMPP9e)VK+y!uM?@-X?1F}~K5ek+o9~D&R zh~G4bF8e;GBXo#Vw3^>C;U`@3)w$F+fk&-&=NQ!1dW+Q4howAesI?%0q{J`v{Ice- zXcQi@+lelnM!E*6!nb0T%7Jwy&;JwdF+fs*Kf5mFjPWNnH*cN{=`a+fD(x2) z`o3wz&;kX+w7Moupx#O@9N#>BTDX7p7@_UT_)hDitLsM3vj`zC>IORfPS)MKd~Fmo zcIM<5w}xb(Zo-O_eq9wcH11wT(#dk>;kqtJ$gJZuZzAPf&!?Nu@{pUN;FKa#iNas; z>NXBjYED6o3wYWz*~G&-l53M=qE%pTSdoiPz5w&2GSD8f$jNdq3u=Jf!Z=GcU1YFY zm{h|6KB(OhlsBzH$6&Ixgf1hkwJZq_|NjTv09N`x>rzeB9C@H1+M0;<#*0tni(D>h z)@Xeb^)XY_t-KsJ-1C`ZvqE2D?*qsO#n*I6t9=Q(+AsZ>NVQe;D<_Gz0nVMp3@6hyv!zx~GN z8$?3gPe!1CFF!P$Z$imIG#Y;sbFlnLQ3#^Qf>w$F$eA-HanHiH@6Bo!AhO;ywBbRie^axUGaPnc&W*XhJ;$82OVDvl@k{em|I{@Os=hG)KdzUFMW6Hva~ zb>P!Om&%rwX>4EX9h#z81yu;GxAL@hhY+5-YO*f4)-;|wJlw6MGhZ=$jgCXLcIX7Q z2(&Oc&UC@50yHb7s#d6{-bYKU58s{P8`0_DN*1Rq=EY-Fo1< z0t;oQ;6|HA(ML%-GEv;dB|Z<+1H`5WBBeFt##XOP7M*yE9M{0`_O5Yp>f!2l{7yTN zc}#Wnj^i8m-FdBs{(AH2Jy_D&)l{vf8CK925P1d#*vpp1HmSfcH<+Oc(ofM}(jOpV zJA0TEGN;$9D+zC%#0j^4278<*z0<(naxC66ecuSQr%5xP!P=SAr*vNUGO=Y8n~tI= z=paE;TurZjYrrh_r+2mpzplKs>8M>o&TjjPUz%*o8Ui;Ty4`ux)Z_Wp^!$}7j#w$3 z8dLkqrDtv5#Mc3l@k?oy8c;hBT>X_U8gs7=-{xp1r`?D{+&BMR3g!Rgxiha)fc+ zO_7IP(zI12_$~|TE6JaGva#8jb4Exz*_>3?2~(&CRh31K^MIq3%0tNJ0|8nMm8z?G zW#sHx88UIrqEjm)DuC9P6eSpU54^1lHD_O%ARAWZK7G=bD?Rz=U1Pq|Nl5Zl#C>T89F6ZNwIlray)d?Zl0kb&qL+K?v{gKbIS#-$>|7C~{jmd@E zgAZK0W*TBjO0LTy+%B)B_31*$@SikuTWGwFFPhbh^m0k^)7Y76oK}|fX z0k_p*Yr^18kA{GV6XCb##U=Z&mj0sZTfDX5rq4r-uCiV@t%CE8(geS-q)xf{8~Rp2 zJk0+%A7p!0h&8#NoC^+1FYXLn?j~ra8|V6Wvfl&n4|K}eJ4o`-d}q&G?UHs^o6?;# zSzqjjf%~a%nqpm@I;0E}L@?}ZL8o{Z9<>q|zB1mVX+xVky!c% z1*hGhi=s~}8qo`P6f1aUA|(nOC1Q@hW=C#rlscC$ z$;;BP5vvhX!Gko8O#3cik}mK3SS6@Zm=deJ5=xW=mk!{uS<$PLCq)OOxEBK(()GEeAPhn)xB?k1tXvhH_476=B zZ!cv#s!?mNCuW8`|2#A{P*EIt$3yuKZDD!_QEO?G;r!A#vZYb5R(nZPM|I|CO5_4M zoCS8;_aXymNdaA2FsfO*aR^`o>pr1y!;+&|ADcnqxfOl-{pd4Vx($@R#rzHzRSE7^ zSo`&!e=Y?-jy-MxGw3R*#E?%H5Cu>gez>*u1vb zf4b#vb4JIEAS#YY8#OGV^{E9@oPKLO@l`_wRO4Vqr@rbE5~ZhxoZoCr@gILv{4tgT z7ksIH#fqz46}E0aV}eD?)2~)zgv_}ooT?S>k9*W7?PnpHjD@s^UW4zjiAvtoZBX45 zyCp!7UllN;?|&({(+FK`sCwr#-4M`e*W$FKX?~zU!N*>y6o*0wL`d$H(9LU&H}Mo| zXYW?odzbw9Slb*S-;1~-UvR8l%cJ{n2*;^H31wbs?Ud7rxHv2%$LBle%-LONPnXG0 zW8WScXwW;W#^gj(tG}o#)4$FMaA+3C2I4ePtfH5^e}P_1)nu?y+*4uG1;d3BUur#G zgSaqmozqktw>iC3eq1JjBVIdTZ!^KyUe_VNc*stN_~bA;I3}QsnA~RB2fet+h;^kS zN7B-8DX@NN+@fy`cNXH$pWX2*p}#=#_>_%BfRg;TRLPxPa_ufLbu zJ()u7xNFtFIPtfC$*$v4xZQ0DRl3upzdG0_d`bau96L~(>&7ay09jW@X#D{dzs=2h zvV6O(O%_-4X7oHZ4V}^<2Zr5+NSRE{gl<%~01s!)6^P_RXwlaMB}s>M&)`AT7{dXt zyXfKM0|U3^dAh+Dm%g48%ec>wWb^{u{QYmClaL8mR;*E?dvjBsWW=-jfrPHCXaWP} z4aIx7dng!{1q9~&bFaZaroi4A68Eb=Zx9RiVzat)tB=Ik^t0gy8HSZ{s0E>~ChQk3 z#;uv&bo!)>+``n@%-*2Ep$x{J&?PR%Z=>^th@%#CdSu=Ry|jjO^mZCP@F@hEKRL#P z{`h6ox#}mib@^1z>ve`x=D6@ckpR){HwRWRvoe%GuT696MvVVQlwbx<%MsSZRj}*n zVd7WQBn&Oc9qvlZ|Hk>1f#E!j2bplF&yY#MPzR7Oi*!g?T`YhRRG@mzEgKBrg$UJ`I=2xgy2gCRZ9SvIpC{zh-L~9VqJDBI#BBfVE&mVnn{uunN1tDi z_E@k;z&@qmX{YmKM}C%QqwyUbb&VMo`V-sC&d1P*>to`CdnL~Q?{A0B4i;qta9IAptH`Mh~&;dONJOQp|^}zqyi4QSe!vNzm3WS)w?vz^W zx&c2_pKiA9Y^^Q};h1U?EHTfZowrvcX`JM%F0T%vtDa2uN`JS^`OSog2dnid#igK! zpRgCu_o6hKnB<==vCYtTt_Mo0Sn*eJBib(y8Wqo2y)l6IO=qsP%YwpJ8^s`WvIsRD z^OccKbS+lNdyXjZ;QFyIEnp4bT}rP(?k-oSgu-qeHZ#G)aY4X^%es?1yB|i6eIuh9 z-dE+-c$Hbyq_Tbu*sP8W{Dtx3=67*LdGPP{lzXyY8xz2B6mzDKhiz^?VbApV8)LV; z4Ca#~vfShhZ|MwcP-JZX7armNJHY6lKu7<3a3dPSGW-A{p*CXw z%zGr1{1>Q2H66vx5zOtJpxk39!x9~*hNcKqKOoG38ya8?W93!W$OV=Z44iFBkOP%D zSS&^Zb0;g=CoCkw^b-L(TAx6o?c6@{!hE!yousUZ2Ng#NL3%_19ya36ibYc+qlMja zpx;faJylSQ^TvXNLv-$!itRSBb*eHSG}r1#$g1WQL^w7clD|uLAwRa$(A-nVlbkA& zDK?-o7gpELuTNG|P3>Z|qD#2JB)G#)d&Q3ygNrM(k)rqi=Dc`DikvhnVmB`iktztuM@3Dag+}@i? zb8)QwBu)h#M+)vPGy4*t>B_uNCCo3;7jVCm5^;^G%*m8jb?HVi3l$O8Ht|F6d5oV} zq`>DAw&d-%)5&qR=uvF&xJ24*2~nJ;n+`3~*w~~8*s+C@lmf@Z;P7AipWzA}`B_X#(dO4WjNN-`1zLT$Axg{AU!08$2jg7JM{ zA!NyPRhAi)8XlyT_EEC&OPy}`uO+pC@ju7d%2%4gC?@Ftjw96fvUq0-fJSBDDrTg)%G|+gOH&=YE?- zg9rCMK?>1x&Iu<3M#_S;|B>S7er+enYeN1cc zL|b0vMT^2WNSapmYCXh_~5DeL=ge4NPHiaWMR6(Cwjw=Uailvbhtt z1(5*bI?SIIr-Uw3shMztnyKqgxs#hCwVj}i!Thn~=Rc!!?DyzUfkZqE066} zF&my65h*L1^vCbXa^8RLZ<3~Y{Z*d47@qRHF?q2>LNvVA+kuTWQm)WMi}qnenT(JY>);0Y zJo??XMkYndi4uhcF7;#{f{;!PX^Y8y1b#YRr+VvKdFFS}9lmnfmo0TT!yFvZAj+4o z)5UJOg(Ilfw6>*uJoJ~PmNSI!%Lr`E@E&2k(Su%^~*T7RqY(@6tpp==Cs9Raf*)BfaP zU4&itj}J91zjreq+IYz)l2$yZbvo!SUkhxI&LF_w+gYYRXrlVymOr_FS|U5Lw6vsc zWU>1hF;#a7)`)Uy48B8KGN<;CfQu1y&Kr3_sEY0lR^-%1nbCLR@1Ymi#A;gV!*nKK zNA4=DQ{Nx;&1br$!H{@eqZflz$i_D=H9syn_7H&ZQc>VKTW!K!yM;Dc51U_SHoz0k zFq$Obo6qsxckXp4Ax9uQg!UvX98ZeVo#;v}3r_45v>V&HI6W{-$j>`#Y06I4p8 z9A_fO1k#v>QnmSc{m(q zGi9S&W!69}^dWzvY*0{uPR;dZYH6IyS$57u^MhryyT|RjQ*8N>^6D#o(DvVR{Qyos z?@Ma*Q`A_QFn6GtdhaNsrL-tleEhJVV9`!0MTbsE#y!g_G$Kv72Ai>Zt!pNW-$d6W znm)F+A7KyObo5}+^;K2n)M2S8)oM+& z+Sq=Sn>Bnny6=-EOCdK^{Ho}!?G{=b=jt+*Df}UB>9XshW;j@I(X>(DV4Z*q-pTb`U%r}viO*;8+T;nqAaaR z23Mrwfbzy&JK3q_FgKe@McV3?$*mcfBtyyD`npEDHCNiay)XzB$*-Op6isuz9PCN~ zmdmW9mwNk#0drXam1(U!O&_Hem(2ffd{ovS<(7%+M!ESY!8)ND%FS_{S_TXEiAhW4MA8?T0ML=E`I*};#H!ZEkXFLaOM^Vf^?|L zYF^T6E5p@894pXW2=2jZu0*L>430uHr87DZBQ40OdvdU>_Cvk1)k@=_yAe^Oqg zAvgCjz@GK_<~1HZrq2ZxtwO(*Phm-Di`;L8P>^gh`4_HP(3-<}G}er0|0v65Q> zPx1p^P||I}qKCK2!`P(+Co*w-=*vr@(XNtAJ7jJZPQ`F4edc+~6z9aDh_Hy2#v=Lj ze9|qmq>nr=6)j9a=PyfkFKExgHe=;3<%%BgM)1XmaM}&U*A3L&BrCeBybayXpz`HH zdqkltVc`Z#w1}p~)oZD}OM=5gd?!@?&mc`zvT;azv=^8CH@KLK&W-xGdAjqaN0`pe zT7wI(3G-g%aoflN4~XKB0gn~)z0k*PEPr}SK=35mqXxs+4D9DhjA7)}>&%^tu9jQl z?;2{xOPJuC_0Xsu&t%6+ue`_6LtR`y+f38ztLTH|#d87h4{|+&oNiZ#X>aXiLI-qy zl`W2`m_y}`anewgSLhpYdV&uit9}rgRaC2fMv_5jzhtYivEG^Hp)zBFrYV~C&ASA@ zTdMz$_&5s_9M{Tnm?DYqdz_DT{g{Oy$0m z%Lf|E=pTBkhMfR#!^Hn5YVhE`C{FABRDNAco$Sx%8n;x9EG<<;Oi667z6jq!Z-6S0 zyQSEby~GKwGz-8&6{Rpv*;&0PV|fWgymG#l{8(FyZ*+}d6vYHjvz zu6C7yR&;W0VM_?4VDYQ@X3wgwl)A`-@4&3hf;tPq6L!g+bhg&%lG4qpil)Xeov6`< z1O^jTL>vdqg^1SWN&gzRzU)P3dke|fy_MwJl39r6s%De%N?|&-{e7wy{D%FbXDL+Y zhvPTnU1n{$HXc7NvOou3iQ!Z+joM?56Uu2_CiLOeQGQaC$oA$Iav`WhiqDjAFnNdF z5ZS%J+wPAoDZV6jrhZB#+%2+#yVY&c4Z}HLRmC|@RNo%eddSRwM->`Qdt0PYowIV%Sy~e5LY?{)J6H=7N|4w;@i$y9)_vo5` z9U|LC)K(S8-OF73en$iJ$SQcmj&Qix;r-;16#{rejfx60%8KL`Ic{XR^-6|20dynf z)x@Dh)cJu^W-4+QsTOHx^EBbv?uUT^ubY(0#Cd{y!(3Qbv}b3GN@v5daq*w+KStZ0 z&z)?TYnE%~!@iIMJ5B7CE$Ok}guZAC6;2eW4}C-3URGseX{^SDTqn7EIeN)g+CLny z6>ZYk4^m6u3TEPGZbLfv5%<#=P6DJ~TcDFyi=bWdpn7A=`2H#62$0yV83nP6-1cl6 z2#NgR~bD?zto3yj+es9}$B^#3aSdsnFa;R)~8KYAXYzllx z$WgxoB;P~ZWu^PA?_f7^rNRih%K1UmXvLoFUE8#4`j^V@Ve~0-t!tYv!LAhC7fju0 ztMnh8n*3Huh&tN`-E*!~A`dZ=@qV70JD8ND*N%UId^R!w0r=s2O;RVB`8E){#I`s2 zS;VQve)YUy^HZ#4kDQO4iLr%!vICH?&`|q;%4i`Jz!Lr)Z#4>}uTp<6=pfviA_lf?un!Ei5?pRwE8`7 zSaCdc84-%N(FaHE?DTsE{~z78-$*l0IWz;#?Z-yPQv&Qa~FbD zH-nn8z?#8>N1|3^?huEK+SCI+Eg2@h(0d4D6@s8}4YEa=)BC^n(%DMa26)#c_$Tv5GoK2T)s<=7|stO737Uxj< zwU_*`UgL|pQYkaqt;Gvqc(8?euC`vzg~LMFAAf;7_PZ0&_bUTdIWjJjEpWtuEb^ZE z75BZrKrVxSfk41j1ZDS|Tsr`D7A0?RCj1MY-DQ$!{sd7=w5OYDEiW+N1*?x;C-2ki z@yh+}{}5i=F_X3R0;3*Yy%&Pe;uJ2;l@Q_3si)KbINO|(xi2V)r@r$SsNUu;P~eBZ zKp2UD4rQe?p;q)=c06wksHWgbd8Q^bd~wgad91d1Ma%2?c;;(unP@8($tRffN5f*G5=vsl9zyT^VmXvDn& z>(Jw}=G-ABKC5?&WJ%{39Bos`|5Si(fVn>!nRtf709fQ8RBP{VSmYzxg;zrWEb_Kx zDM2Ub$zz#yz1DvmHB!R>${GOfS#y4|R3?r6M1@@RN=cALTE#JQ`DT2hCnSM0Fzgt* z$3?e@V(8LrZ42NFoa)#%e+X9l+9* z(h-$e3z!R#Ox^3H-`yX?Wc6OR)BTs-rp6X?)NA55K1v)TZ+vsm2?6EyZtf`m_|kww zWy_L#)tl_3m;$H4hu=uS698P`E&!8#=jLCah04D`ZI1(RsS*S;ih@(3^6J+WQn>*l zWn03%^XaR|tzlh~zpct`fyyIr+U!hUFvcRpsx?jvAn3Wxo*IgJBO0QANA<|`e-TA|r-==AbYVtsndX1b4kptb$WXILyY!8ccmtc*n)jkABH>FAu{*- zXNC_?0JEE1Tm+t{0qp|!wxHZgfcwkSOt9hg-q$&HQaQ~kI(fTq7W`{K#{JtwWwMU; zj3UA2xXy>Q^re?P6!ppMa%0t zoJ_~;ugDhT^^4Tc$e^va4H1uGry~Ai+Lit_lysg*I4BC@@}K{PRTsgip;+Ymf{_`7 zv;948dYc}WzK@7{tC?-Pgyga1!7e2ADtx2-~ z)6@uqemCOsQ9i(bLVhEFYOl)fxeB?I_EUrEn^ODdstCVBU_6T8>bJ*Exmmi-vGV!xsMV|gamXfq-w|oDE?Oqn8kur`(26j#nUr2=^sAqW z64Xk(>|jVBwM|SN8^b@u)pjCJrwgr68C0{oo_!SyOW<8SRfUcM0+ojH_aK5m9R}K@ ze;P5hK?3vOJ6mpwjYtd))8na`9zYxKRsVolQ58g1=8OyeygW&*Nqf0s4Y98Rz7EMYQl^ zXe+lrro5!G*W)NBd)UDueR%v>&N;OThMDidrq0_t!+X15@9I!}ES)f@yH{-!^+mMR zW4sF?9{v5aSoGhbZ1ML|$nYXbLwa$Ii%pKTZkNZbb2X-C(xg@Mg{C`e^*` zo7#VzJ$6K~AsBEs8+}V{{e-V(+0KlVN6)|#*zBoY`fXCDM}mSk3LAf9NB@Z&#n4B( zD>2wBIZV|sALt%g#*H@Cd95R5$%i!C_8Tv+2eM7r^a!3wCFe23IXr=SjTQL&>v)=1!;TYS`PaH{J>V2KM^nm?ia}vXiWr1TgI9n1>H;U_C zVj3^qcRQlN#dZu_FKHF|IKH&Ys<&nEa5o@`x|IhiZf{#t2(dG|dWZ4<=2)oWh$^E7cNX^@?^1Oa4n_GMJ{;yJ zk08B!$6?*z|K(?_bufqZIe&p{uTzYtN?I##7FlnY^<})J-WsB^yh=OvbnJ0)HB;{p zMG_j~Uc#>GYnXrXMtS8z+F?snISTCt;+^eCl>!Hmg>)Bk=YPJ5oDc#9_iPl5(!#>b z0vBc0TtB%&SDR>RG03&par?duLxo7-$K&s@x3mj7=gg3;ZF7(xq7zkK&Afid_?e++ts2jA3}`O=MVvud<)OLhiOtj2gt~WmFB%;3K&y zz(o78O#-0S`~`|~U#0@vpDh7<$!3WyvntF-F;^mmlIsSe?$hosltZ_Pad9O!|KpJ{ zmPuAO1GtZ){1m~1g+jut>p^oH)?`Asg@JD!$!-0F-$|kX4a~pa23iPNbw3xA(4Vi%{UB19f(XL<-ND1LAbxP7XWrnRHxp zw82mOu+UR-Y@nZEYzSChxS{dw{5sUqEA+;ZY4fDSo)&VMa}rG08d3=22x6yup)Xb5;@Qo{yrI@V5KWkv>Ysv9>S|yQ zDRq+*rQA#Q=Gi=|hM+A5S&J`2nSGUm5KkEUwrExUW0U#Ud5Hm4Ij&uMj~wZwvqB9c z{dnnWE8<1D4J#vRZ^To&M0!d+UGeRmE@qER=aaq3WO&8xeTFqF*AE@Nd}>kEMcY~M zX0h6;&FW)2=(PCgpB9)mfeSmUy`gNv;$JX)|1uia0uzs3APWS@ba(Xn)3 zUUP)v`5|5eKcRP}hVvv2Et%;Wg<{*iT-{L=lu}imk5mO|H1Kbwnw&w4Ml=;Lc1dCa4EkZ4Dwv1iebAZ#Kri1v;JPhVwtZy?$eGEY5Vw%(aUi z&o@cFl$$m%yf=v^9_hg{rmhS&;h|$ z+9)bi$nOKuQ*t(N0L32DbkucCp54rR(x((U8*XZ@9`0!A#78kdOx0%BCgopWD%mB= z@^!N_`Rb2*+qbO~Ud(83+M)RNo*!J^V_k*wtV0|O+8#lex={i9_#CG7Rg$!JI` zHRseJQ3dLVadA6u>c~xt^nh0oOyxpG4iRIZqS2yHVtV?Tbt#_fl}U>DPMPa&)X8rWcPMa7#-eG z=|sY)|MqPZQ#?}vh`+5ngB3r;CXY*D-GzD|%^SYLfH2x^m$Xg(?{n@`0sdERYjzGo z%MRxs^_z(sE>YX*Eg6js7C5rgvBt6l0EWL|LDz7OGzjpCLJW-hxBLZS-xo%otp;=l z+`@_X%%n?Bmt6&*7FC{9wElJ~*+)&39Ms&)&q+{`p#GMVpzk42$r1BBV~I_0qs@KCKu+F6Hpc zgMg+_AAwPdy0StwyMn6#37DFMQ4@XkFyYcm&$?i}R6T{Dm%Hhnb0sqyA~e(h4jWiK zex9A?GOZZ447jkn-%Gh!Ctjo1ojmKhDj$9t(K2VJs*Z?BzXN)%J@}(~Ie$FtyFrtE z2K8(O3&(~C_>O2phDvt4EPy9Dw;2OJS5(|wM&~la=@D5eVu|k0i4tfLUiD_WNyP1l z#11bSsx?L)ZE!qHBQ;$b_b}4f77^1P^SNi^bsELf>o7dK>D3D({nMC$PH7B;v2Fs- zf%9IP@0_7m)32{e(~CDjVt2*awpTtSQibt26*qMvd#46op3L@G~+X=4JC)z#A#l46|&}7 zLxqOM4;MFw=w9%WuzwF&tybjf&#}jf?9Ura4tpDa6$6+5lhq~jho`WPnD`KXAj zHSTXdbk&!%Ko0gcETu^1j+EK$xo3)o9NIEzr<$2V1}p{1Cc-~e9$ZRrn$7)qYWeVH z@OPOcX-4~f{Mj8I|BD*`i$>v?td;yBtS5jzUK73MksL<~dnyKvDXpaWGfXK84(AM_ z$PMO|0i@^Kunxme9m3 z9J{t!{FH*cAL!?Tw7+q8;aA*4%3t|Ii(d%tzHuxTjmV%owTLprp2^nKh8}Dn4D|7R z=);U`!9y9I=@EuxmBW?z+20eorfH&MCipTB#7nGr>`XFtrslLY%dm2He5de?xYOd} zGWnJMT3Q_Qo~+16*lIwuIrEsWTqd$J|Gu%^#Zo~c*i;ilTEn)qrc>vTN8;6)DLE*; zZ?;;fNNIi4636dT@O41X5+wqcOEtlV zp02U1to@PQ$w_S{V5-dZG>+SW>xJh157sP(gBI1j9XGGj0p1=v4Nh_C^717G#V+}+ z=E2^YytvS(d%qQ@2~sjGRh@7u*acj~ilE@2w!m4Z$25IIGIcTy0^ZgUFP>&F&?cxzjjknWJ7ZcM$V)S4XGJ<>XQ23ds_Fu)#T1F z8GdSdb+iS0o^!O6jz7| zL8wyYOLbhc-W#o`OV*cwfWJoWYmEZ$=&SIBa?adm>3l}BLF#?<(RTw4a?;Za?YZ{TSby$Hv?QX6C#3Xit91+2Qzk>`=e4sD={iL)5sBE!cZzgq-Q?emE9iIe zwD{h%*EMt*b2~XlQ7>vD_x2${h-EvCt|h|(u{3PD%U$gcCqO47n*U>ehPLSctG)9K zYAWp8d;}Df-aApc(xf9*L}?L%p!A}kLI_<-loAB#O+Z0Fnt+IuNbkLafOH8ZkWi!q z2uKJ5anJMY?mN%y?Cv}7%sabZ-VbMz4=HEPIrn|e|9@ZC?-J-6vnOm26<3u~=tD+v z#`Q0;jKshgA-&65;ZkJAx&5tKQ~Q$CAZ_t6*Qcl=q#W7WUN_m4+tS2$w6x-8L87S)7F?9nZB zzQh{P-4M=1uXDC&KGEuC^QIwt9DuF62vMEEGzkA=(}tERz!2Lix&6h=`djRxaQgA! zGyW(}@Yc_ZUbh$HMHg5%_6X@c6L8IIQw*ion+diuo?i#oivK+H(0S>DnD#Vs@upfYnVbYBM=@vaA%y|3lg41rlaZK~?n;I3PBRH@v$Q zrQAQ&EhHzNU*j?uv^ESvD~e)99t_E=JTfDGoi*C}b2?F%`+f1#@3nfkK+&lV!t6Ey zniLc$RZnbfYtGkU$d{Zn;g5`Xt;zl~T3?l4;5=8Mn`tSwa02c2TanR_QOXTEFOcT4z@vbqe>4AIW zVDZz{nz;CY*|a_L`J*az4x!5t4`mtfRuW3YSg3g#UfCnPYUlr?{!~01bNc!3yC7A^ zB62SmlZr*ZnLU~Sv}RX&wm8$RqjJ{@wWn2>dWBNc`7Ra*>65Nk1Sw2=T+0!ea>L`@ zQN{(2Qw&^w*n*zCt-kS&ap1zVu{KvlG0~Dh&RB+>JrT$+h4HAP`yz?vW?PvrFlg@h z@tZ7nzkR0x+*R?h__Id@v(6>0T7rLqH#SQ`Vi9?79M>?j)U|i2N&GWoG;#7kSXaM5 z{Lw?22QRq0#05VHciyT3gF=-z!A;vnbW`z7(s|Q_NUNO4OujCS@-p*@kfrI}*?< z^LBG~Fo!42atjJ6-|tp_z{5TNWdiTYI z(gl6aYXR=Jjpc^qxAe*#nn*g>VSa{Vv#c(%V3g71GZ*Pyj8Vqp+GOJy1HOvs$NE$( zG@?z=xp^#qRCgVrCB1&a5>kpVKE7Y&Yau1llfcn)@xuJu^1+TH#Z80LJHO1^uc&J& zB`b%!AC(Jr9lCHTy{c`iB=#@x8LS3pCuCg?@VIolPc;u2;=535q7fL^-wlmi5@-$Nzk{(#gfB8|UY#!)E?p8S=$kk%sgQLMzRl1Z zMH@lsFKdf>)8f72NgecnKtIyo6MfXo$Ue7yvv9rd?A{ZR@2)~=%L+F2jVCrk1~-Mk zvRob1Z%M@~9z`n{2K1KJoV|D=SX}XUJzCy+eqIfTx`#A|mxy=BQ>nd=RQa+KLPzR; z$Qe1`l_S!?;|o`ui@Tpq9*S?CF6=t{YOzkW%sggzoJ)J=v(GnU&$(aGUPhZlryMa0 znJJ8&SuV4(X-wlD6~a#P^?k8(v|Ac%ZMWa$(5mrz$oVHop+ zp#i4b<4QUHX$ees&7WzBbEynm1Pxsb_U6wA2~Ooge-+%2kOGGxM>JcS3YwW=wvy>G)YGhkmg8s z2zzei*&|qhQ%Q}|0fbFLW{>SFT^m*Ghvm0gtoFm4_@WignHE_Tv|&qGwJX7gsuuY> z5aQ%3#TPssL>oQtTDP)#G)fOb1cYe;ofcL^T#sto`>&g?_M&Rl=&x*8*VZ&o6j>dC zC0s0%dEr4jUR;+pDl5c#L+EDIsY`k3Ul>f)z?Z{x+=E?-2N44f- zXg9R}$n6zin5cpMcDJYHhicc(KFyrj+8eT)I7j)0`!8aeg(=EYQJ3K14a)?aiG_bRpv|UcSeMU^6!6)4vlU==LT|Jczu`@ z`WN(kkC_yOb%+eos(@wAMmQ2Q`cvIsB8!G%ySXJ}PnB_r2@B>PmHWsCJbme(f1y2N z72P4Gu?8%ZpQ?C66Nj5HPR&pOwvU~8vraosGrxsQxB{Po?!M946gL-?wX$cdJ}|67cb%GKW$ zS&z=&ok3SI)xbckMSF6kiaGIOH2i)()P8 znO6F;OwI^J`b)$SytFl<*tg+efjz$OL0lfyEunxLAmOX(qTq-n(Z+o^B36rG8?|yY ziZ^l-QG!RJUnnhpR0ixFrf@J#kk!f_qY?_af@HSb)HhMY_hl)VZ`o30B)^mS&h0&> z7F8bT=D^b;c3xeGXeYDC#S|lM|6)NroEzIvz&N|mxprw)pJ#tK>22x2>^R2;0CY4L zJgYhBHFmK4Oy}C9pA5yk%Z!mQ>$}sZcNU_%-ih34_^`qIA~iL~Qh*hk6uBh0e=j0? zrZx|5eXrt^vb9m5lT=H95NM5i>e6y}->cZfjSf|O%GM=!PV;Ekb-wi8omC*s?SpJh zBlv1iLQ&<%c#C}UM97W(*+fZ&b88Jf{po*9zCv)$SCST$mW#T~6#Co#(dIs#Re}!$ z)F|!Cm!asW4l|NPw`xf1Ed#}KS>G`Z2=O}Cyi}%~wbCQwbIkPJ8P#lD{?fS0wFR`(u@4< zI%~aX#an(CTUFnGMwUi=t_(mih2KJH#`N&)5fJmEp2nJ-hxmeF98|bB_t)x-|&x>Poh%%dJ}6%7(p zZoAkq2|!RM*nhxfda)(WZy zS-2^f`1m|-nVa?PSbRD2JO310i|7lh~Bv?O)<1%@SU8nYd_PPt|RjQ1=Whkt#Fiv^i?n zl{SBv2EHLjxnsurvRA1@_#=hH006~T9a}lZCj_FPn!e7ndqOR~rrRQg6N7wFE~nkY zKHg*6y`ZN$r?RA+V9JiB*rNP!Ed9LI<`DmI7xs4OkkZ-LxrHmcC)(=1Wm?Q<`~OIN+SL?8Z8lNnff@F0$v zhFg*+Xv3-sMMahF-lDko{EAPA$34)?`o6Kb)E+Hrb-O@UH^0EeD@#}jm)ibGk+7ka z#fQsU-!te8mu1(W6LmG1xoZwM`u4Eh7SENwX|&a+#;`6l5#~Pm+lQr zor6@N4}El@{g}8AK0zn?KVCyeO@Gg&8}T(tzUhYYug^PuY>gjgg+EPDzz_bOP@{~zb=`x?GI8k zka^sYZD%U+H13?+FlW8#Yx>Ndp3Edb~ASC=RntHx(6|t)nn$az0LXn=;LFaqcQNA z^?qbNV{fbdWFOKE3I1s#om)t&R+DzgK+uWpB>E1WD>qX?6P|u(m9jHPmbBh}g-q8i zkcBA4N%$5m5Uq+9HsA2$W( zWV5AnO2+QKVWZ8)G&@C%@vYbX2G5!G=Um%IMIY(6D3{#>WQ{G~x&xf0bG@XqSGT_8 zSPkCmRuOhLH(P40a6q%J6sjiFCZ>y&S)1oC&u5EEm%v}H!sLg2XD>~ddDi*I!DKV8 zN%bv6aimXYWH3RfkK4wyyW#5jXpa7FQ6o_zXJbr^Q)Up5SRYT|}*WDwI@ZeNn*dWbUUI z$SCir`>EA5c%JX4JlZxk0A_Gm zYrBMer)FEeE0?e$cJ8M&V4iJxk$uylI=2JjnNW^xZq>7D8vl*F_^S%u6lV#GGMf^4 z{ZxM}*?s*ksN6+2+ZaW{^U@mHNZj= zkKBe}cB>ngrz}d(G|vG5P7w6ny&{B(~2=kNn zVe`2&%Tlc>@J?Sl7zx{!p@i29L2B#a#nb*<=4t5{q{ioP5gVRTg_6x7Ca2oYHy&|C zj0m8L$ad!!7DZ2ChtoDQo2XRvkXWLT1yP=m9%FiF1w;@%iPO%6%uJMv5uT?bzqm4? zJx+D3qnE^{*p)P&)keJCadW=Z=pYa>vLr)t+Q(@V?3}koj^UGm;)|iUvE7);4?}x3}p}>0Jx3YuP4A z5QQhm(yru-&HKm%=_4==soU0*egWgk!&N<{069wd%sk>+&(b$Q0R7tZdJ#p(R6%ct zw6B}3Yl1HZuoZr)I7iZwt#d9o1uJC)(vQ?k%rDq94YO6=(uMNic0O&TcP!HwCzg>te_*iqas7)$MUe9O`&_IsYS{&U^b^0M{sbQ2 z?fp^;HC)8|{Mma;&lAF%&Y{1cGCqc)_yc%WhK#fTEPE}@TzYrMDmzIy55UH+5w9YR{r|^3(W^?{P!Mry6v%u_23>@Z)Cx(_Op~xSBC$Pm^~Z?$2Y~ z`elpSq`9(n0{=V1-d)8edRRTn$0FmVj(DFckO<`Yzh*L6NS)~*;hz>@l@9iL#dZTJ zW3H(;Bc1Q#pWnwj%6aMIL`%m1IqUI*qX0=^b61E!s=-8y8CFByFx~%D!pP9Y9TPzR zVLI&NF)nlC|AKr|s6lbN{$WT8F8;aI^gbu|tGLa)i?qE8;II?EecMaEZy64xOZ-2l z<2I8nU=wIN+oaP?r-LB4_Dfqz-Y+waYga6ta&||9A|5-z@bhrpQDxz+hqy?p*GB^R zK%jQSA~XF>LE}_eO`L%ry&+MdjRgaFTCGFT+8yP5H){<>>+yC~ zxkurV#^aSG%$s-Z5F7U_qe7-*8#wCd+z->NnQ{)?>)dh~f}WA|zL1;^Cl$A4Ib&<) z@lq)3TLzPo3a^XrZ4B^=t`UX4U3uv7q-ELJjF@y@52W4r(<5N!nu2w~P;3|peW@{$ zZSJ|`1bviSc}#tY3b(D(`WX9RNcghUi(d1#kc>}T=y)v`2vlxn)F6En*(mUkxwTow z3|$Ia;+^sf_Vyiy(9V||EcDd9?HE&28GU$_x9X;k?9a*dpdnA+y~ATL8JC1x$hfB( zGJ=2JW~AuZbpM>51j7c)6T3)b%TR$up#RyIx-v#dnlzu4^84~zKk>E3o6I;@QONv> zm}MFIlH6tg%k^I)Ou1rD7?*SV6L?pm@ZMsHs3%j>zQ|hFlxTc`nb+`(i#-p{%7#?r zO0<+gz(9CAZhMf=DPWw2JW*`S9UYjPPF?p|GTvJYL~cU&HFNg$@Se*O^g1iZ1VtN9 zEW-GfWnVFJ&Nnokb3y3j&g+Io-X z)7Og9hx(_$^jh$-D`L@PfJO6YwoMqp*%v}NiT9OgRF`^2zgQomaB6OLrCD*UENy3; z@y5OL1C_gOGB@CeZeqv2SkHOD%Eva*{W{bam?l5LytM-U=ZWu}Mq5E3e~)+1%Imjz zW(_yvl_*v(2?uSKBVGZl!T{OsFF%(ojU)|J^1gyG5PPZv6ExsD+sA zff+U4+j~VeXZ`%q7HlKasL-}L_5&K;UgI1}mft+i5ePH#H&X6uXH zuJ3`XxjJuUHT1*tZcNl@M#_sI;PMEI42P>G|2Gn{oaEZ~hdi{j zw7YFORUwpV@H9fqH*ztk)`Y`=cTH;0jWJ!k?5mmCII*7m{x4`Sq)6MR?(C#3WN#bX zI0rTYo{Z|0->3t5t`L$p76N50j@%8p1}|{6ATo7}?B;%%!z|gM7qoeYO4PX;50;b> zF?79FhSxnxS2+8DyG$++xkTpAWgrz;OqcsIa@WVGL!7_-f;v}Vs=D0qx5EuwpuBfzP|^Y6qXyUG85j_FGB0^zoJ33XpAC`}Y*#%yral!V z$gWxG$VM-esD)Dmz3;mKmK{|)nE>i6%1w+L563t6i^cP2glA&uMECh1{Ji(tE)IF0 zkl9xv`6s>SFQ}d~GUyTV>zs7<7g&>KDX>!Mn<tGwbk+56KPuVkqrOFx8tEn+Eku>S&Q8(~nxkMq?{LUc4sZ$cZ{-?PD z;rU>{x5s45oU=Zl=0(z6Z6@n{4p%s=|P$g8*2@N!7p)&1a?nA zU|&1_g2*e;JXU#o)W+^C)7)fvpj!IRMxSk(!A5>8Vvk z9w$QUUP=*>Y94<<5+O=^^P>wJeAtp7!2gzfA%U&O&u%%F*=_O^Riu8Yw1I4v3q#uZl#MP%WKaJdvw zDB$=XEY#`O_}t3Rz-grU?Z7O9tgQ{E-63-&w_%DtpEi5`jt+6@&)|Tb(Z4#XsK@;U zg}b#N^GMabo-W6;?fXdxq{#$|Z=inip2P>?oXrd9=fSzk(x4kUe5+?C02CDrZ)f!5 zZ2qBGZllwjtX`Z8ZAn4v-4Cy+V$vVr3w$&$6R#;fscz<1VS^~{@&B`U@G?O4&8v5V zeqIffjNK0WknBnRMvL*OXmi5QvhXA%N>$k|HQ4Dp(x_&Z~{cSehq7;BO|a{SQ3e z92kzTimKc;TrEa@2ZEsd@?A~rt!&4fU%Fx~ox^na-ZtE#E4!%;Oy2EfL2yEPv|pgc z9RS(YCfe3M8D3sA0z@TMTSxKQ>hAPZtaNsA^Se+kXkG*?;O)KozvmQ@G$g0HH3Yb; zn6c%Nlr>~MafwOU`fG-uHeW1+_p{od+HI2ynPbbd;T{|Ns3=TlBy$A`SbI6_kqGpE zR@1<-v;NFXEJcvvwUwc=Ts-@-MHmT=qmB#W{-l{zKmz=E=Gj6S0uy7VnKayqa)uHY zg_mC>PX7QXmW6(QLHr0O-5+?AU$B_Yq_2&UD9$*}EV*0;eX;)|fxaZIYhSx>e6aVb z#u&CPd<7cKvpDm<)I~fUZP8sSMxxPr$`)Npjn>whxsFgx+2sM@k0`L*2yW45echmN#?Ltu zuC)UsxHi%nxQD8Ty+{=R@oMgZu=Oq6r@Dx}mGkV{id5{PKL%Pum%O>>KWT|~+cmHA z8JGL`vGf`>aE;E9C(N6Iqq<~3orMkQhLNZC5HZFUbwLu%XyBUn2;}tonZ!hp6%}WW z;CKz~h=kc}xv!;%B4kmUd-d7#6k5d2Yfptzp_i#(@y86Si7Z-Z+CHLxI!B%Tjah{( z+BE+_dg;wFNnHTP#IeMZEPm_Ol{~&23Hi>yAhsZ*eIjji4I?05;{g9a zSzwObd3tn|$C#f_5(CB~o$~9NF_N|jfiLGeLANA-(Lv(~J4|)cp35XJW=8f#U%=YC z3ZYx}g;sSW+T~y^2U5UF&weVLiPY)GRdF;{w|E(+FP5p;5M!=QBc9KHEO8waRB%gE zxr96=Aey=o8M88?_HfoWZF1?PmbcX1{GsX?`WXvY(Sm#aknuxZKx&_{6&8s$vzuxu-sOG}6LG6YRZL-{Ir1GtZRL4nzOU3QFEWx$p{zhxsv z9@^*8NZ9x=Ufx{y+41lj7ll&gO4Y3jorfg50&qMJCbEpoGiSZIbfuvIK4M`u?MG9P zhUN`8$FJzRMXEig^@#5E%6pt@&-+j9IeFw1Ok6?{p;hNm1E)`O9OjNa5BxU-?Dw)f z?;plaIwZC!Lw9xnuZ_+rpJO*qZT}yp`RZc_t-*t{c4?J=M7v%uA_aCk(B={1V4C0` zGE$1DNN>1l*^4dR@x@}AZO$y=7ts!`ZQ$cj933@v1_7WW(FCdO_cdbSNV2^#R-mf|9M@W}cPoA|pLvn`GNi{Jw@=C+tfR>i4fYOW~ z+-5+!HrRNbUw75su3u`hY0+5zbnb$R^Xgf@Sn3FD7?@4XHkFBtSPZL1;ukBFd)C8` zy$H*TPJ+ALt00DDA5bB69(mY-x*=I?3=Ug)efOGQ08G*U*A@v=iTN6fsCxp{<$)z8ogSbI%B;Lqdo>=!>hR16AOI; z;GB;lPZMe9hh^&KTZ_i#)?LWsv^ZaAnDVubp&W*bc1c*VXu%X}yBC%gwbiP=k}^*( z@jBAnlo{!H%A&-Wp4xj;vvIn`tf)Tmh}(I8CW8n^hHrZ-FxlD`qj3@*cj-nX*zfgS zu+_Xg%o?WoigdoBA*9>1uUnD_V}`|G?XF-uw$i4JECAG@{wpvlj|I{jSMy+|c^vjMT zla261bsXZrxQFVj6o|{>%LM)D)@KcwToS9ne1Q`Xrt`LwzI#k0Av3*LjJ{*gI~(OY z6rY#39!ko|crC&uIvl9f*$KQob%NW#RI;C>?SxAr>D|8^=&y_NTpO?xh6ziG#`n=G z1YQF30wDMBb{LXvQ$P&}sjh(AUnShjjYJi+g+tq?Kc`3ycF?vo=p@Qptn zE>ac0J+8<8s{Bu=a1$)mEK_e{depzGXAN{gZ#bz5$n_vI0@w<%-s=kU!?`r*pYsOT zQ#?Pu+>dr_$-4V9M3rJpf}iYI%E7hjOM5Vb3@0-ol(80XYM>nRq(^Qo<;phA4L{uW zJnZ?+AsPu+s9*9t6M1?A|jJ^&SN=t9cx*1@Y!-4$J$&~!hO|4<5iBt%-PFA7freS z_i2qUm(SHqQoFPme&g@V8;7kQnR-i>gZCKG$|p<|4y!jdycbp-0nF@Je+*d>@~L-q z%iGGue}qn|#5JJ=W7}M}DU!MJUb*tx?F$cYd<|8paE6dlu~Mv-)l+V@=dP0`ljXfd zMc+9m`W4HrG6^PhKQp6B$a_7A4b|8^UU3c!y0u?mLnvEfu5D;QGQd>J+Y%JdvGcG) zTiZd8?^lLIT(TcMee{y{#c`#r#m@I?E0PnIqcsoRFBV^;p~_p%C-|~z?yfWK3w80i zlY;noEfGo^H+hL5@cl7PP9UR{y4QhvW zpiTu63+xv+XNl!)yjfP6-1#0E7N#^>I=8{b2#0Qe44XPF9GlBY3hx24)Qo6#|Cv52 zN^B6W$(&jLX;aOpsTL!gBBu}H-~zqP%N!=z?OSxWDeOxOmLr_IUui5=e{y{_lXG>- zPj5=SA)Ko)LXNme@&0;T6pS}D=l#l`jXo_-L=ItBQHC9nWRe51sDyd=-7500N48&< z?D;U?^jo7>G?{?xZK94ej(dVlVzzSWQBmUf^KN{e=>&87tuw^!BVp7CNa#swyMj=f zx1DX#pbj5RWyoIs(4w2U1%Mh90t5^VhFT(7>5@JWcNQD6D^zI5&m8v0!a{@rTiaqq zZC>{i@0EFX9-=$UvzTRsm)CNGVuiu1L? z!fR7*wwDHY_44uyHJ=>A!>nST8QldQoTm4hjoE`1S7 zk#7M{XOqcOgLFnn{~J*K)XgmbtE9k> zxlDdSNQs<2&B8kc&!@qlTNWH!JxI>rMW#IW3->znD z>I#NsOOt8lF(4m5U6e7Y6Ylndsc9?R4P%%!<$B7ZqH*~%^(2o)Bwq6x!hW`gEIF&# z9+T;gdQ+PKh1SoSLL}l~c#o^5C`k(z1L0@cl^K^f^Gp$guDMp|_pYAQN zgeZ;{C{#f_`lV>)Wkuy)0_5sz5C(&oijMgY2dw9)bE<80k z(Z_}I7m5=|YxaxkY3C$`jCC62>#P_FOj^~<%n)}CgtJ>BX|Q^-Tx&3Hwu=i__+(e< z0d@fMzH(1{!jihXlXm$1^zM-B6Q&zxHk-o^+TMWs|9e@VqWuT)*xP)mgPIoz-NX+B z&OQegJEQZ0au`~8gzD`t3_4{5?nby9(`vD1)cdaPP8cn?+`FEvJX32vl`w<)YMcEm z`G`_#Dv7wR^ImTCY*j#aXZZ*9geDWgIj#kAYD$Xhv=@g@E|)%Ri+b>*!leH*Of^V0 zm9DZgNt&6 z4&C#|`_+Smzixt=;5Qn zl^V;GvWkp|alAS&#gd(+4KO^;u1W@Lx79Q2v7P{egHTq7D*H#VS3PGaS_fY=gpIU> z7v%e^*}NWD57ihpAkpR_G_W<(>Kb`=kWZFByDKo;Jc*y)islDgPj;V?kea9oWBF2a z`?e0pf_JXuc@dcfaC?`K>anyCdM%Us{T-fnGj*(^iB7={qKe6(3uaydc~0sx45@^; zUNl29@~b5YXdYPSlmHEfdM{TqJ&lcXU$4$wGL_K-0%PLQ7)O`Tv|qM`S;F(c(E0$M z`&6iey-2ZjH@ci+icmS1f9nAK&rZ<){#AmyC-;C8`e#)uqkOB2z%^R&PiT(84kh(J z-GZQRQ@Mr<6fdLuRYq^RB1wkx~{gkJxS99r_sxdoGaj%To&9GG5SB6QiC~h1b31i{x`EU+&!X9<5nKLM!(Ef+BRrjvm#%nqEE%@Npl6>p~e&;0t-Oq(XBR8ke*qZ>Fe7Pn$$@BQR|m?Q0ilOo!OYi(=&nTGu9-cB27 zzR-Br*@!NtZZ{n1<$MhE$p7UGX#LB6KXHtI;D2fFUr%7czy8z=hxot$ed-4=97j`x w%}&FZCvZKKn?TjJIPKx_-l5b_Okgxx)i~VjNoGUbYkiOyo7tB<#=mp_4cS0(6#xJL diff --git a/docs/web/images/getting-started-spring-boot-jersey-language.jpg b/docs/web/images/getting-started-spring-boot-language.jpg similarity index 100% rename from docs/web/images/getting-started-spring-boot-jersey-language.jpg rename to docs/web/images/getting-started-spring-boot-language.jpg diff --git a/docs/web/images/getting-started-spring-boot-jersey-package-type.jpg b/docs/web/images/getting-started-spring-boot-package-type.jpg similarity index 100% rename from docs/web/images/getting-started-spring-boot-jersey-package-type.jpg rename to docs/web/images/getting-started-spring-boot-package-type.jpg diff --git a/docs/web/images/getting-started-spring-boot-jersey-project.jpg b/docs/web/images/getting-started-spring-boot-project.jpg similarity index 100% rename from docs/web/images/getting-started-spring-boot-jersey-project.jpg rename to docs/web/images/getting-started-spring-boot-project.jpg diff --git a/docs/web/images/getting-started-spring-boot-jersey-version.jpg b/docs/web/images/getting-started-spring-boot-version.jpg similarity index 100% rename from docs/web/images/getting-started-spring-boot-jersey-version.jpg rename to docs/web/images/getting-started-spring-boot-version.jpg diff --git a/i18n/en/docusaurus-plugin-content-docs/current.json b/i18n/en/docusaurus-plugin-content-docs/current.json index ce73ac0f..30bd5b6a 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current.json +++ b/i18n/en/docusaurus-plugin-content-docs/current.json @@ -19,9 +19,9 @@ "message": "Node.js - TypeScript", "description": "The label for the doc item 'Node.js - TypeScript' in sidebar 'webSidebar', linking to the doc web/getting-started-server-node-typescript" }, - "sidebar.webSidebar.doc.Spring Boot - Jersey": { - "message": "Spring Boot - Jersey", - "description": "The label for the doc item 'Spring Boot - Jersey' in sidebar 'webSidebar', linking to the doc web/getting-started-spring-boot-jersey" + "sidebar.webSidebar.doc.Spring Boot": { + "message": "Spring Boot", + "description": "The label for the doc item 'Spring Boot' in sidebar 'webSidebar', linking to the doc web/getting-started-spring-boot" }, "sidebar.webSidebar.doc.Angular": { "message": "Angular", diff --git a/i18n/ja/docusaurus-plugin-content-docs/current.json b/i18n/ja/docusaurus-plugin-content-docs/current.json index e7a43a4b..ce110122 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current.json +++ b/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -19,9 +19,9 @@ "message": "Node.js - TypeScript", "description": "The label for the doc item 'Node.js - TypeScript' in sidebar 'webSidebar', linking to the doc web/getting-started-server-node-typescript" }, - "sidebar.webSidebar.doc.Spring Boot - Jersey": { - "message": "Spring Boot - Jersey", - "description": "The label for the doc item 'Spring Boot - Jersey' in sidebar 'webSidebar', linking to the doc web/getting-started-spring-boot-jersey" + "sidebar.webSidebar.doc.Spring Boot": { + "message": "Spring Boot", + "description": "The label for the doc item 'Spring Boot' in sidebar 'webSidebar', linking to the doc web/getting-started-spring-boot" }, "sidebar.webSidebar.doc.Angular": { "message": "Angular", diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md similarity index 93% rename from i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md rename to i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md index aa5b98f4..fb2da453 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot-jersey.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md @@ -13,11 +13,11 @@ Visual Studio Code と Java の使用を開始する方法の詳細について 1 - Visual Studio Code を起動し、コマンド パレットを開いて **>Spring Initializr: Create a Maven Project** と入力し、**Enter** を押します。 -![](images/getting-started-spring-boot-jersey-project.jpg) +![](images/getting-started-spring-boot-project.jpg) 2 - Spring Boot バージョン **3.3.2** を選択します。 -![](images/getting-started-spring-boot-jersey-version.jpg) +![](images/getting-started-spring-boot-version.jpg) :::caution @@ -27,29 +27,29 @@ Visual Studio Code と Java の使用を開始する方法の詳細について 3 - 言語として **Java** を選択します。 -![](images/getting-started-spring-boot-jersey-language.jpg) +![](images/getting-started-spring-boot-language.jpg) 4 - グループ ID を提供します。この例では、**com.server** を使用しています。 -![](images/getting-started-spring-boot-jersey-group-id.jpg) +![](images/getting-started-spring-boot-group-id.jpg) 5 - 成果物 ID を提供します。この例では、**reveal** を使用しています。 -![](images/getting-started-spring-boot-jersey-artifact-id.jpg) +![](images/getting-started-spring-boot-artifact-id.jpg) 6 - **War** パッケージ タイプを選択します。 -![](images/getting-started-spring-boot-jersey-package-type.jpg) +![](images/getting-started-spring-boot-package-type.jpg) 7 - Java のバージョンを選択します。Spring Boot 3.x を使用する場合、**17** 以降が必要です。 -![](images/getting-started-spring-boot-jersey-java-version.jpg) +![](images/getting-started-spring-boot-java-version.jpg) 8 - **Spring Web** の依存関係を選択します。 9 - 新しく作成したプロジェクトを保存して開きます。 -![](images/getting-started-spring-boot-jersey-explorer.jpg) +![](images/getting-started-spring-boot-explorer.jpg) ## 手順 2 - Reveal SDK の追加 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/toc.yml b/i18n/ja/docusaurus-plugin-content-docs/current/web/toc.yml index 429d596b..205dda64 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/toc.yml +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/toc.yml @@ -15,7 +15,7 @@ - name: Node.js - TypeScript href: getting-started-server-node-typescript.md - name: Spring Boot - href: getting-started-spring-boot-jersey.md + href: getting-started-spring-boot.md - name: Angular href: getting-started-angular.md - name: ASP.NET Core Web App diff --git a/sidebars.ts b/sidebars.ts index 39aa3ad5..60e71731 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -21,7 +21,7 @@ const sidebars: SidebarsConfig = { { type: "doc", label: "NestJS", id: "web/getting-started-server-nest" }, { type: "doc", label: "Node.js", id: "web/getting-started-server-node" }, { type: "doc", label: "Node.js - TypeScript", id: "web/getting-started-server-node-typescript" }, - { type: "doc", label: "Spring Boot", id: "web/getting-started-spring-boot-jersey" }, + { type: "doc", label: "Spring Boot", id: "web/getting-started-spring-boot" }, ] }, { diff --git a/src/components/FrameworkPicker/index.tsx b/src/components/FrameworkPicker/index.tsx index 30b97dca..32def9a1 100644 --- a/src/components/FrameworkPicker/index.tsx +++ b/src/components/FrameworkPicker/index.tsx @@ -33,7 +33,7 @@ const frameworks: FrameworkItem[] = [ }, { label: Spring Boot, - link: '/web/getting-started-spring-boot-jersey/', + link: '/web/getting-started-spring-boot/', badge: 'Server', }, ]; From f0df9e82cdd7b9a7ef3a8e674220aea0ee2a5ce1 Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 18:12:52 -0300 Subject: [PATCH 21/38] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/web/getting-started-spring-boot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/getting-started-spring-boot.md b/docs/web/getting-started-spring-boot.md index 383d70b1..d3e3420d 100644 --- a/docs/web/getting-started-spring-boot.md +++ b/docs/web/getting-started-spring-boot.md @@ -133,6 +133,6 @@ The native .NET binary is included as a resource in the platform-specific artifa :::info Get the Code -The source code to this sample can be found on [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/01-GettingStarted/server/spring-boot-jersey). +The source code to this sample can be found on [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/01-GettingStarted/server/spring-boot). ::: From 05277a938387be40e5b2d9fc9e507325500e603b Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 18:13:30 -0300 Subject: [PATCH 22/38] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../current/web/getting-started-spring-boot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md index fb2da453..5519e6ad 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md @@ -137,6 +137,6 @@ Reveal SDK には、特定のプラットフォームとアーキテクチャの :::info コードの取得 -このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/01-GettingStarted/server/spring-boot-jersey) にあります。 +このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/01-GettingStarted/server/spring-boot) にあります。 ::: From 59a0bc2ec9c2387b3680747da6bcc928f30df8cb Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 18:13:36 -0300 Subject: [PATCH 23/38] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../web/getting-started-spring-boot.md | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md index 5519e6ad..3c046f04 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md @@ -123,9 +123,27 @@ new RevealServerBuilder() アプリケーションの開発およびデバッグ中は、サーバーとクライアント アプリを異なる URL でホストすることが一般的です。たとえば、サーバーが `https://localhost:8080` で動作し、Angular アプリが `https://localhost:4200` で動作しているような場合です。クライアント アプリケーションからダッシュボードを読み込もうとすると、クロス オリジン リソース シェアリング (CORS) ポリシーにより失敗します。このシナリオを有効にするには、`Application.java` に `WebMvcConfigurer` Bean を追加します。 ```java title="Application.java" +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.core.Ordered; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; + @Bean -WebMvcConfigurer corsConfigurer() { - return registry -> registry.addMapping("/**").allowedOrigins("*"); // 開発環境のみ!本番環境では適切に構成してください。 +FilterRegistrationBean corsFilter() { + CorsConfiguration config = new CorsConfiguration(); + config.addAllowedOriginPattern("*"); + config.addAllowedHeader("*"); + config.addAllowedMethod("*"); // 開発環境のみ!本番環境では適切に構成してください。 + + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", config); + + FilterRegistrationBean bean = new FilterRegistrationBean<>(new CorsFilter(source)); + bean.addUrlPatterns("/*"); + bean.setOrder(Ordered.HIGHEST_PRECEDENCE); + return bean; } ``` From c76d29505f6ef0da1c2126314189e3ba5fb4cccc Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 18:14:54 -0300 Subject: [PATCH 24/38] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/web/getting-started-spring-boot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/getting-started-spring-boot.md b/docs/web/getting-started-spring-boot.md index d3e3420d..2006d80e 100644 --- a/docs/web/getting-started-spring-boot.md +++ b/docs/web/getting-started-spring-boot.md @@ -23,7 +23,7 @@ More information about how to get started with Visual Studio Code and Java can b Version 2.x is not supported since Reveal 1.7.x ::: -3 - Select **Java** as the language. +3 - Select **Java** as the language. ![](images/getting-started-spring-boot-language.jpg) From 62e03eef7dda560d5c53699908d5db09febbac26 Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 18:18:07 -0300 Subject: [PATCH 25/38] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/web/getting-started-spring-boot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/getting-started-spring-boot.md b/docs/web/getting-started-spring-boot.md index 2006d80e..172e2434 100644 --- a/docs/web/getting-started-spring-boot.md +++ b/docs/web/getting-started-spring-boot.md @@ -31,7 +31,7 @@ Version 2.x is not supported since Reveal 1.7.x ![](images/getting-started-spring-boot-group-id.jpg) -5 - Provide the Artifact Id. In this example we are using **reveal**. +5 - Provide the Artifact Id. In this example, we are using **reveal**. ![](images/getting-started-spring-boot-artifact-id.jpg) From c491b7a30dd266696e05068a34b9184c4f16eb34 Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 18:19:07 -0300 Subject: [PATCH 26/38] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/web/getting-started-spring-boot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/getting-started-spring-boot.md b/docs/web/getting-started-spring-boot.md index 172e2434..7cf56ceb 100644 --- a/docs/web/getting-started-spring-boot.md +++ b/docs/web/getting-started-spring-boot.md @@ -9,7 +9,7 @@ To develop a Spring Boot application in Visual Studio Code, you need to install - [Extension Pack for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack) - [Spring Boot Extension Pack](https://marketplace.visualstudio.com/items?itemName=pivotal.vscode-boot-dev-pack) -More information about how to get started with Visual Studio Code and Java can be found at [Getting Started with Java](https://code.visualstudio.com/docs/java/java-tutorial) tutorial. +More information about how to get started with Visual Studio Code and Java can be found at the [Getting Started with Java](https://code.visualstudio.com/docs/java/java-tutorial) tutorial. 1 - Start Visual Studio Code, open the Command Palette and type **>Spring Initializr: Create a Maven Project** and press **Enter**. From faef5960dacce1fa630629013f53b4c2ab216da5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 21:20:06 +0000 Subject: [PATCH 27/38] Refine Java Spring Boot docs per review feedback Agent-Logs-Url: https://github.com/RevealBi/Documentation/sessions/fcab52d4-f40d-47d4-8b6b-6998e32eb142 Co-authored-by: dpazos-infragistics <149598445+dpazos-infragistics@users.noreply.github.com> --- docs/web/getting-started-spring-boot.md | 19 +++++++++++++------ docs/web/install-server-sdk.md | 6 +++--- docs/web/release-notes.md | 3 +-- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/docs/web/getting-started-spring-boot.md b/docs/web/getting-started-spring-boot.md index 7cf56ceb..0ef9edd9 100644 --- a/docs/web/getting-started-spring-boot.md +++ b/docs/web/getting-started-spring-boot.md @@ -51,7 +51,7 @@ Version 2.x is not supported since Reveal 1.7.x ## Step 2 - Add Reveal SDK -The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Because the new Java SDK wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are no longer supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. The supported platforms are Linux, Windows, and macOS, with both x64 and arm64 architectures. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file. @@ -76,7 +76,7 @@ Next, add the Reveal SDK as a dependency. ``` -2 - Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. The `RevealEngineServlet` constructor also receives the request and creates the `RVUserContext`, replacing the previous container-aware user context provider setup. Replace the sample provider classes with your application's implementations. If you need to pass request-based properties to the user context, replace `null` with a `Properties` object built from the request. +2 - Register `RevealEngineServlet` as a Spring Boot servlet. Replace the sample provider classes with your application's implementations. If you need to pass request-based properties to the user context, replace `null` with a `Properties` object built from the request. ```java title="Application.java" @SpringBootApplication @@ -116,12 +116,19 @@ new RevealServerBuilder() ## Step 4 - Setup CORS Policy (Debugging) -While developing and debugging your application, it is common to host the server and client app on different URLs. For example, your server may be running on `https://localhost:8080`, while your Angular app may be running on `https://localhost:4200`. If you try to load a dashboard from the client application, it will fail because of a Cross-Origin Resource Sharing (CORS) policy. To enable this scenario, add a `WebMvcConfigurer` bean to your `Application.java`: +While developing and debugging your application, it is common to host the server and client app on different URLs. For example, your server may be running on `https://localhost:8080`, while your Angular app may be running on `https://localhost:4200`. If you try to load a dashboard from the client application, it will fail because of a Cross-Origin Resource Sharing (CORS) policy. To enable this scenario for the Reveal servlet endpoint, add a servlet CORS filter bean to your `Application.java`: ```java title="Application.java" @Bean -WebMvcConfigurer corsConfigurer() { - return registry -> registry.addMapping("/**").allowedOrigins("*"); // DEVELOPMENT only! Configure appropriately for production. +FilterRegistrationBean revealCorsFilter() { + CorsConfiguration config = new CorsConfiguration(); + config.addAllowedOriginPattern("*"); + config.addAllowedHeader("*"); + config.addAllowedMethod("*"); + + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/reveal-api/**", config); + return new FilterRegistrationBean<>(new CorsFilter(source)); } ``` @@ -129,7 +136,7 @@ WebMvcConfigurer corsConfigurer() { Reveal SDK includes native components built for specific platform and architecture combinations. When you package an application, Maven selects the native component for the current machine. If the deployment platform or architecture is different from the packaging machine, use the Maven profile parameter `-P os_arch` to select the target platform and architecture. -The native .NET binary is included as a resource in the platform-specific artifacts and is extracted to the temporary directory at runtime. The extracted folder uses the `platform-arch-version` format, such as `linux-aarch64-3`. +The native binary is included as a resource in the platform-specific artifacts and is extracted to the temporary directory at runtime. The extracted folder uses the `platform-arch-version` format, such as `linux-aarch64-3`. :::info Get the Code diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index 7927e00f..50e82be5 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -61,7 +61,7 @@ By default, the Reveal SDK uses a convention that will load all dashboards from The steps below describe how to install the Reveal SDK into an existing Java application. -The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Because the new Java SDK now wraps native .NET components, some rare platforms that cannot run .NET, such as AIX, are no longer supported. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. The supported platforms are Linux, Windows, and macOS, with both x64 and arm64 architectures. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file, and add the Reveal Maven repository. @@ -86,7 +86,7 @@ The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Bec ### Spring Boot -Register `RevealEngineServlet` as a Spring Boot servlet. The current Java SDK no longer sits on top of JAX-RS, so you do not need to register Reveal SDK classes in a JAX-RS context. Replace the sample provider classes with your application's implementations. If you need to pass request-based properties to the user context, replace `null` with a `Properties` object built from the request. +Register `RevealEngineServlet` as a Spring Boot servlet. Replace the sample provider classes with your application's implementations. If you need to pass request-based properties to the user context, replace `null` with a `Properties` object built from the request. ```java title="Application.java" @SpringBootApplication @@ -144,4 +144,4 @@ public class AppInitializer implements ServletContextListener { Reveal SDK includes native components built for specific platform and architecture combinations. When you package an application, Maven selects the native component for the current machine. If the deployment platform or architecture is different from the packaging machine, use the Maven profile parameter `-P os_arch` to select the target platform and architecture. -The native .NET binary is included as a resource in the platform-specific artifacts and is extracted to the temporary directory at runtime. The extracted folder uses the `platform-arch-version` format, such as `linux-aarch64-3`. +The native binary is included as a resource in the platform-specific artifacts and is extracted to the temporary directory at runtime. The extracted folder uses the `platform-arch-version` format, such as `linux-aarch64-3`. diff --git a/docs/web/release-notes.md b/docs/web/release-notes.md index e385c9b7..52764ba4 100644 --- a/docs/web/release-notes.md +++ b/docs/web/release-notes.md @@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem'; #### Java - The Java SDK now requires Java 17 or higher. - The Java SDK now uses the `io.revealbi:reveal-sdk-servlet` Maven artifact and a servlet-based setup with `RevealEngineServlet`. -- Some platforms are no longer supported by the Java SDK because they cannot run the native .NET components used by Reveal SDK. For example, AIX is not supported. +- The Java SDK supports Linux, Windows, and macOS, with both x64 and arm64 architectures. - If you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. ### New Features @@ -128,4 +128,3 @@ exportOptions.filters = [new RVDateRule(RVPeriodType.Year, RVPeriodRelation.ToDa - A regression caused `filterValueChangedEvent` to not fire correctly. - The "titles in first row" parameter for Excel data source items was being incorrectly set. - Missing title in the datasource selector dialog. - From bc532c02dc374a01c6bfbbdd699f5d766ae97c68 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 21:23:54 +0000 Subject: [PATCH 28/38] Clarify Spring Boot CORS sample notes Agent-Logs-Url: https://github.com/RevealBi/Documentation/sessions/fcab52d4-f40d-47d4-8b6b-6998e32eb142 Co-authored-by: dpazos-infragistics <149598445+dpazos-infragistics@users.noreply.github.com> --- docs/web/getting-started-spring-boot.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/web/getting-started-spring-boot.md b/docs/web/getting-started-spring-boot.md index 0ef9edd9..fc2450c9 100644 --- a/docs/web/getting-started-spring-boot.md +++ b/docs/web/getting-started-spring-boot.md @@ -120,9 +120,13 @@ While developing and debugging your application, it is common to host the server ```java title="Application.java" @Bean -FilterRegistrationBean revealCorsFilter() { +FilterRegistrationBean revealApiCorsFilter() { CorsConfiguration config = new CorsConfiguration(); - config.addAllowedOriginPattern("*"); + // DEVELOPMENT only. Do not deploy this wildcard localhost pattern to production. + // In production, replace this with your exact allowed client origins. + // The localhost port pattern below is supported in Spring Boot 3.x. + config.addAllowedOriginPattern("http://localhost:*"); + config.addAllowedOriginPattern("https://localhost:*"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); From b7b03ed98724b7520e16b98bb5e1d9f498a5def0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 21:31:24 +0000 Subject: [PATCH 29/38] Update JP release notes parity and Java platform wording Agent-Logs-Url: https://github.com/RevealBi/Documentation/sessions/d5dd0579-e2aa-4166-ad8e-d5a865c2c89c Co-authored-by: dpazos-infragistics <149598445+dpazos-infragistics@users.noreply.github.com> --- docs/web/install-server-sdk.md | 2 +- .../current/web/release-notes.md | 23 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index 50e82be5..2368a25e 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -61,7 +61,7 @@ By default, the Reveal SDK uses a convention that will load all dashboards from The steps below describe how to install the Reveal SDK into an existing Java application. -The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. The supported platforms are Linux, Windows, and macOS, with both x64 and arm64 architectures. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Supported platforms are Windows, Linux, and OSX, in both x64 and ARM64 for all three. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file, and add the Reveal Maven repository. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md index f7254f93..8f290238 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md @@ -14,10 +14,16 @@ import TabItem from '@theme/TabItem'; - `RVDashboardThumbnailView` は非推奨となり、新しい `RVThumbnail` クラスに置き換えられました。 - `NumberOfItemsInGrid`、`FilterRangeText`、`UpdateFilterRangeText` はそれぞれ `FilterCount`、`FilterSelectionText`、`UpdateFilterSelectionText` に名前が変更されました。 -#### Node -- ヘッドレス エクスポート オプションの `dateFilter` プロパティは非推奨です。代わりに `RVDateRule` を使用した `filters` 配列をご使用ください。 - -### 新機能 +#### Node +- ヘッドレス エクスポート オプションの `dateFilter` プロパティは非推奨です。代わりに `RVDateRule` を使用した `filters` 配列をご使用ください。 + +#### Java +- Java SDK は Java 17 以上が必須になりました。 +- Java SDK は `io.revealbi:reveal-sdk-servlet` Maven アーティファクトと `RevealEngineServlet` を使用するサーブレット ベース構成になりました。 +- Java SDK は Linux、Windows、macOS をサポートし、3 つの OS すべてで x64 と arm64 の両アーキテクチャをサポートします。 +- Jetty をサーバーとして使用する場合、Reveal SDK が内部で使用している Jetty(現在は 12.0.12)とバージョンが競合する可能性があります。 + +### 新機能 #### すべてのプラットフォーム - 新しいデータ ソース: Azure Cosmos DB。 @@ -35,10 +41,11 @@ import TabItem from '@theme/TabItem'; - Snowflake で `AllowsOAuthAccountType` による OAuth アカウント タイプがサポートされました。 - ネットワーク障害後のデータ エージェントの接続回復が改善されました。 -#### Java -- Java SDK で `RVRedisOptions` を使用した Redis キャッシュがサポートされました。 -- `DefaultDashboardTheme` がサポートされました。 -- ヘッドレス エクスポートで CSV 形式がサポートされました。 +#### Java +- Java SDK はコネクタと拡張ポイントについて .NET SDK と機能同等になりました(`InMemoryDataProvider` を除く)。`InMemoryDataProvider` は今後のリリースで Java に移植される予定です。 +- Java SDK で `RVRedisOptions` を使用した Redis キャッシュがサポートされました。 +- `DefaultDashboardTheme` がサポートされました。 +- ヘッドレス エクスポートで CSV 形式がサポートされました。 ```java CsvExportOptions options = new CsvExportOptions(); From 76a4a557970da894660ff9f42fb92a8c049030da Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 21:33:39 +0000 Subject: [PATCH 30/38] Align JP release notes platform naming with current EN text Agent-Logs-Url: https://github.com/RevealBi/Documentation/sessions/d5dd0579-e2aa-4166-ad8e-d5a865c2c89c Co-authored-by: dpazos-infragistics <149598445+dpazos-infragistics@users.noreply.github.com> --- .../docusaurus-plugin-content-docs/current/web/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md index 8f290238..b35396f7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md @@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem'; #### Java - Java SDK は Java 17 以上が必須になりました。 - Java SDK は `io.revealbi:reveal-sdk-servlet` Maven アーティファクトと `RevealEngineServlet` を使用するサーブレット ベース構成になりました。 -- Java SDK は Linux、Windows、macOS をサポートし、3 つの OS すべてで x64 と arm64 の両アーキテクチャをサポートします。 +- Java SDK は Linux、Windows、OSX をサポートし、3 つの OS すべてで x64 と arm64 の両アーキテクチャをサポートします。 - Jetty をサーバーとして使用する場合、Reveal SDK が内部で使用している Jetty(現在は 12.0.12)とバージョンが競合する可能性があります。 ### 新機能 From 465300ef5b829547abb4e1fd731c28d8d6b0ef17 Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 17:56:05 -0300 Subject: [PATCH 31/38] Add missing Java sections to Japanese release notes Mirror the English 2.0.0 release notes Java content into the Japanese file: - Add Java breaking-changes section (Java 17 requirement, new servlet artifact, platform support changes, Jetty version conflict) - Add feature-parity bullet (InMemoryDataProvider future port) to the Java new-features section Addresses Copilot review comment r3244078688 on PR #698. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../current/web/release-notes.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md index b35396f7..9b8750b5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/release-notes.md @@ -14,16 +14,16 @@ import TabItem from '@theme/TabItem'; - `RVDashboardThumbnailView` は非推奨となり、新しい `RVThumbnail` クラスに置き換えられました。 - `NumberOfItemsInGrid`、`FilterRangeText`、`UpdateFilterRangeText` はそれぞれ `FilterCount`、`FilterSelectionText`、`UpdateFilterSelectionText` に名前が変更されました。 -#### Node -- ヘッドレス エクスポート オプションの `dateFilter` プロパティは非推奨です。代わりに `RVDateRule` を使用した `filters` 配列をご使用ください。 - -#### Java -- Java SDK は Java 17 以上が必須になりました。 -- Java SDK は `io.revealbi:reveal-sdk-servlet` Maven アーティファクトと `RevealEngineServlet` を使用するサーブレット ベース構成になりました。 -- Java SDK は Linux、Windows、OSX をサポートし、3 つの OS すべてで x64 と arm64 の両アーキテクチャをサポートします。 -- Jetty をサーバーとして使用する場合、Reveal SDK が内部で使用している Jetty(現在は 12.0.12)とバージョンが競合する可能性があります。 - -### 新機能 +#### Node +- ヘッドレス エクスポート オプションの `dateFilter` プロパティは非推奨です。代わりに `RVDateRule` を使用した `filters` 配列をご使用ください。 + +#### Java +- Java SDK は Java 17 以上が必須になりました。 +- Java SDK は `io.revealbi:reveal-sdk-servlet` Maven アーティファクトと `RevealEngineServlet` を使用するサーブレット ベース構成になりました。 +- Java SDK は Linux、Windows、OSX をサポートし、3 つの OS すべてで x64 と arm64 の両アーキテクチャをサポートします。 +- Jetty をサーバーとして使用する場合、Reveal SDK が内部で使用している Jetty(現在は 12.0.12)とバージョンが競合する可能性があります。 + +### 新機能 #### すべてのプラットフォーム - 新しいデータ ソース: Azure Cosmos DB。 @@ -41,11 +41,11 @@ import TabItem from '@theme/TabItem'; - Snowflake で `AllowsOAuthAccountType` による OAuth アカウント タイプがサポートされました。 - ネットワーク障害後のデータ エージェントの接続回復が改善されました。 -#### Java -- Java SDK はコネクタと拡張ポイントについて .NET SDK と機能同等になりました(`InMemoryDataProvider` を除く)。`InMemoryDataProvider` は今後のリリースで Java に移植される予定です。 -- Java SDK で `RVRedisOptions` を使用した Redis キャッシュがサポートされました。 -- `DefaultDashboardTheme` がサポートされました。 -- ヘッドレス エクスポートで CSV 形式がサポートされました。 +#### Java +- Java SDK はコネクタと拡張ポイントについて .NET SDK と機能同等になりました(`InMemoryDataProvider` を除く)。`InMemoryDataProvider` は今後のリリースで Java に移植される予定です。 +- Java SDK で `RVRedisOptions` を使用した Redis キャッシュがサポートされました。 +- `DefaultDashboardTheme` がサポートされました。 +- ヘッドレス エクスポートで CSV 形式がサポートされました。 ```java CsvExportOptions options = new CsvExportOptions(); From 888ede80f6fe54196a5068aaa195c2b0256371fc Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 18:34:12 -0300 Subject: [PATCH 32/38] Add missing Spring Boot images to Japanese locale Copy getting-started-spring-boot-*.jpg images from the English docs to the Japanese localized images directory so the Japanese Spring Boot getting-started guide renders correctly. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../getting-started-spring-boot-artifact-id.jpg | Bin 0 -> 17413 bytes .../getting-started-spring-boot-explorer.jpg | Bin 0 -> 22229 bytes .../getting-started-spring-boot-group-id.jpg | Bin 0 -> 16938 bytes .../getting-started-spring-boot-language.jpg | Bin 0 -> 16388 bytes ...getting-started-spring-boot-package-type.jpg | Bin 0 -> 17105 bytes .../getting-started-spring-boot-project.jpg | Bin 0 -> 22535 bytes .../getting-started-spring-boot-version.jpg | Bin 0 -> 20771 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-artifact-id.jpg create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-explorer.jpg create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-group-id.jpg create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-language.jpg create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-package-type.jpg create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-project.jpg create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-version.jpg diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-artifact-id.jpg b/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-artifact-id.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb4946eda479824d8d2d75be986119a28e949b0d GIT binary patch literal 17413 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 Jy5ZE({|1=nDFgrj literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-explorer.jpg b/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-explorer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50244b39d8b02913b316b0230d957e5e68cd4ac6 GIT binary patch literal 22229 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 WyOsc*@Q=UBSpVB~{|&`<$NvdGW8-H4 literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-group-id.jpg b/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-group-id.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70899111f4b5878cbad1df100920a70dadcd4194 GIT binary patch literal 16938 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 DsxU1O literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-language.jpg b/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-language.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a9d7dd780f933a7d4ca496f5064c537838c2ec3e GIT binary patch literal 16388 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 literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-package-type.jpg b/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-package-type.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6cf6185ff5748b78b8ae838c813f3229800bc6ac GIT binary patch literal 17105 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 literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-version.jpg b/i18n/ja/docusaurus-plugin-content-docs/current/web/images/getting-started-spring-boot-version.jpg new file mode 100644 index 0000000000000000000000000000000000000000..034ee2e09d680c3ad24cdc0bacfd0ea9a15eb9c0 GIT binary patch literal 20771 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 Date: Thu, 14 May 2026 18:48:47 -0300 Subject: [PATCH 33/38] Apply suggestion from @dpazos-infragistics --- docs/web/install-server-sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index 2368a25e..db4558f4 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -61,7 +61,7 @@ By default, the Reveal SDK uses a convention that will load all dashboards from The steps below describe how to install the Reveal SDK into an existing Java application. -The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Supported platforms are Windows, Linux, and OSX, in both x64 and ARM64 for all three. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Supported platforms are Windows, Linux, and MacOS, in both x64 and ARM64 for all three. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file, and add the Reveal Maven repository. From 0b202d4b83efad6e1bbb91e27fe03500e7c7b390 Mon Sep 17 00:00:00 2001 From: Diego Pazos <149598445+dpazos-infragistics@users.noreply.github.com> Date: Thu, 14 May 2026 18:49:13 -0300 Subject: [PATCH 34/38] Apply suggestion from @dpazos-infragistics --- docs/web/install-server-sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index db4558f4..2d6771aa 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -61,7 +61,7 @@ By default, the Reveal SDK uses a convention that will load all dashboards from The steps below describe how to install the Reveal SDK into an existing Java application. -The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Supported platforms are Windows, Linux, and MacOS, in both x64 and ARM64 for all three. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. +The Java SDK requires Java 17 or higher and a Jakarta EE 9 compliant server. Supported platforms are Windows, Linux, and macOS, in both x64 and ARM64 for all three. Also, if you use Jetty as your server, its version might conflict with the Jetty version used internally by Reveal SDK, which is currently 12.0.12. 1 - Update the **pom.xml** file, and add the Reveal Maven repository. From 216120588e5929efe5bdbbde2bba4864dc56e30c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 21:53:45 +0000 Subject: [PATCH 35/38] docs: update Java snippets to RevealServerBuilder in EN and JA docs Agent-Logs-Url: https://github.com/RevealBi/Documentation/sessions/9f809c63-69ea-4003-a7a2-a79e964c9c46 Co-authored-by: dpazos-infragistics <149598445+dpazos-infragistics@users.noreply.github.com> --- docs/web/adding-license-key.md | 8 +++++--- docs/web/authentication.md | 8 ++++---- docs/web/loading-dashboards.md | 6 +++--- .../current/web/adding-license-key.md | 10 ++++++---- .../current/web/authentication.md | 8 ++++---- .../current/web/loading-dashboards.md | 6 +++--- 6 files changed, 25 insertions(+), 21 deletions(-) diff --git a/docs/web/adding-license-key.md b/docs/web/adding-license-key.md index f6954d3d..f1946982 100644 --- a/docs/web/adding-license-key.md +++ b/docs/web/adding-license-key.md @@ -47,9 +47,11 @@ services.AddMvc().AddReveal(builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setLicense("LICENSE_KEY"). - build()); +new RevealServerBuilder() + .addSettings(settings -> { + settings.setLicense("LICENSE_KEY"); + }) + .build(); ``` diff --git a/docs/web/authentication.md b/docs/web/authentication.md index 6d6f9e62..0f33493a 100644 --- a/docs/web/authentication.md +++ b/docs/web/authentication.md @@ -75,9 +75,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setAuthProvider(new AuthenticationProvider()). - build()); +new RevealServerBuilder() + .setAuthenticationProvider(new AuthenticationProvider()) + .build(); ``` @@ -538,4 +538,4 @@ const authenticationProvider = async (userContext:IRVUserContext | null, dataSou The `RVAmazonWebServicesCredentials` is supported for the following data sources: - Amazon Athena -- Amazon S3 \ No newline at end of file +- Amazon S3 diff --git a/docs/web/loading-dashboards.md b/docs/web/loading-dashboards.md index 50929df7..6ef0ba88 100644 --- a/docs/web/loading-dashboards.md +++ b/docs/web/loading-dashboards.md @@ -133,9 +133,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setDashboardProvider(new DashboardProvider()). - build()); +new RevealServerBuilder() + .setDashboardProvider(new DashboardProvider()) + .build(); ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-license-key.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-license-key.md index a045abbd..80c71778 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-license-key.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-license-key.md @@ -47,9 +47,11 @@ services.AddMvc().AddReveal(builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setLicense("LICENSE_KEY"). - build()); +new RevealServerBuilder() + .addSettings(settings -> { + settings.setLicense("LICENSE_KEY"); + }) + .build(); ``` @@ -75,4 +77,4 @@ app.use("/", reveal(revealOptions)); ``` - \ No newline at end of file + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/authentication.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/authentication.md index c97274fc..20bf59e6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/authentication.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/authentication.md @@ -75,9 +75,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setAuthProvider(new AuthenticationProvider()). - build()); +new RevealServerBuilder() + .setAuthenticationProvider(new AuthenticationProvider()) + .build(); ``` @@ -537,4 +537,4 @@ const authenticationProvider = async (userContext:IRVUserContext | null, dataSou `RVAmazonWebServicesCredentials` は、次のデータ ソースでサポートされています。 - Amazon Athena -- Amazon S3 \ No newline at end of file +- Amazon S3 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/loading-dashboards.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/loading-dashboards.md index 787b7d90..518e5243 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/loading-dashboards.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/loading-dashboards.md @@ -136,9 +136,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setDashboardProvider(new DashboardProvider()). - build()); +new RevealServerBuilder() + .setDashboardProvider(new DashboardProvider()) + .build(); ``` From eb5fc7bba3c20825f096dc1cd0766865354135f9 Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Thu, 14 May 2026 18:52:26 -0300 Subject: [PATCH 36/38] Update Java snippets from RevealEngineInitializer to RevealServerBuilder Replace all occurrences of the old RevealEngineInitializer.initialize / InitializeParameterBuilder pattern with the new RevealServerBuilder API in both English and Japanese docs: - loading-dashboards.md: setDashboardProvider - authentication.md: setAuthenticationProvider - adding-license-key.md: addSettings -> setLicense - replacing-datasources.md / datasources.md: setDataSourceProvider - user-context.md: setUserContextProvider - adding-data-sources/excel-file.md: addSettings -> setLocalFileStoragePath - configure-export.md: addSettings -> setExportToolContainerPath Addresses PR #698 review comment requesting snippets be updated to match the new servlet-based setup established in install-server-sdk.md. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/web/adding-data-sources/excel-file.md | 6 +++--- docs/web/configure-export.md | 6 +++--- docs/web/datasources.md | 6 +++--- docs/web/replacing-datasources.md | 6 +++--- docs/web/user-context.md | 6 +++--- .../current/web/adding-data-sources/excel-file.md | 6 +++--- .../current/web/configure-export.md | 6 +++--- .../current/web/datasources.md | 6 +++--- .../current/web/replacing-datasources.md | 6 +++--- .../current/web/user-context.md | 6 +++--- 10 files changed, 30 insertions(+), 30 deletions(-) diff --git a/docs/web/adding-data-sources/excel-file.md b/docs/web/adding-data-sources/excel-file.md index 898d1514..3f43d996 100644 --- a/docs/web/adding-data-sources/excel-file.md +++ b/docs/web/adding-data-sources/excel-file.md @@ -58,9 +58,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder() -.setLocalFilesStoragePath("data") -.build()); +new RevealServerBuilder() + .addSettings(settings -> settings.setLocalFileStoragePath("data")) + .build(); ``` diff --git a/docs/web/configure-export.md b/docs/web/configure-export.md index 47195bc2..64f8ceba 100644 --- a/docs/web/configure-export.md +++ b/docs/web/configure-export.md @@ -95,9 +95,9 @@ Step 4 - While initializing Reveal, set the directory where you extracted the zi ```java String exportToolDir = ""; -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setExportToolContainerPath(exportToolDir). - build()); +new RevealServerBuilder() + .addSettings(settings -> settings.setExportToolContainerPath(exportToolDir)) + .build(); ``` Alternatively, you can specify the directory through the system property **reveal.exportToolContainerPath**, as shown below: diff --git a/docs/web/datasources.md b/docs/web/datasources.md index 211eb46f..45041221 100644 --- a/docs/web/datasources.md +++ b/docs/web/datasources.md @@ -291,9 +291,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setDataSourceProvider(new DataSourceProvider()). - build()); +new RevealServerBuilder() + .setDataSourceProvider(new DataSourceProvider()) + .build(); ``` diff --git a/docs/web/replacing-datasources.md b/docs/web/replacing-datasources.md index b8fd7c2e..6d675b08 100644 --- a/docs/web/replacing-datasources.md +++ b/docs/web/replacing-datasources.md @@ -81,9 +81,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setDataSourceProvider(new DataSourceProvider()). - build()); +new RevealServerBuilder() + .setDataSourceProvider(new DataSourceProvider()) + .build(); ``` diff --git a/docs/web/user-context.md b/docs/web/user-context.md index 75beddaa..d45bd391 100644 --- a/docs/web/user-context.md +++ b/docs/web/user-context.md @@ -97,9 +97,9 @@ Follow these steps to implement the `UserContextProvider`. ```java - RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setUserContextProvider(new UserContextProvider()). - build()); + new RevealServerBuilder() + .setUserContextProvider(new UserContextProvider()) + .build(); ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-data-sources/excel-file.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-data-sources/excel-file.md index 88fe44ec..f3ee7bd8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-data-sources/excel-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-data-sources/excel-file.md @@ -58,9 +58,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder() -.setLocalFilesStoragePath("data") -.build()); +new RevealServerBuilder() + .addSettings(settings -> settings.setLocalFileStoragePath("data")) + .build(); ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/configure-export.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/configure-export.md index c850cfa7..3a941bfd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/configure-export.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/configure-export.md @@ -95,9 +95,9 @@ sudo apt-get install -y --allow-unauthenticated libx11-dev ```java String exportToolDir = ""; -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setExportToolContainerPath(exportToolDir). - build()); +new RevealServerBuilder() + .addSettings(settings -> settings.setExportToolContainerPath(exportToolDir)) + .build(); ``` また、以下のようにシステムプロパティ **reveal.exportToolContainerPath** を通じてディレクトリを指定することもできます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/datasources.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/datasources.md index 815f85b1..f99de612 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/datasources.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/datasources.md @@ -291,9 +291,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setDataSourceProvider(new DataSourceProvider()). - build()); +new RevealServerBuilder() + .setDataSourceProvider(new DataSourceProvider()) + .build(); ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/replacing-datasources.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/replacing-datasources.md index b8fd7c2e..6d675b08 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/replacing-datasources.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/replacing-datasources.md @@ -81,9 +81,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setDataSourceProvider(new DataSourceProvider()). - build()); +new RevealServerBuilder() + .setDataSourceProvider(new DataSourceProvider()) + .build(); ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/user-context.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/user-context.md index c3f12afd..4596752a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/user-context.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/user-context.md @@ -97,9 +97,9 @@ Reveal SDK 内のユーザー コンテキストは、`IRVUserContextProvider` ```java - RevealEngineInitializer.initialize(new InitializeParameterBuilder(). - setUserContextProvider(new UserContextProvider()). - build()); + new RevealServerBuilder() + .setUserContextProvider(new UserContextProvider()) + .build(); ``` From 696990182281cc9ee703b2dd2d1939b0c6f1c65c Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Fri, 15 May 2026 10:10:28 -0300 Subject: [PATCH 37/38] Remove data source topic changes from Java updates --- docs/web/adding-data-sources/excel-file.md | 6 +++--- .../current/web/adding-data-sources/excel-file.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/web/adding-data-sources/excel-file.md b/docs/web/adding-data-sources/excel-file.md index 3f43d996..898d1514 100644 --- a/docs/web/adding-data-sources/excel-file.md +++ b/docs/web/adding-data-sources/excel-file.md @@ -58,9 +58,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -new RevealServerBuilder() - .addSettings(settings -> settings.setLocalFileStoragePath("data")) - .build(); +RevealEngineInitializer.initialize(new InitializeParameterBuilder() +.setLocalFilesStoragePath("data") +.build()); ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-data-sources/excel-file.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-data-sources/excel-file.md index f3ee7bd8..88fe44ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-data-sources/excel-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/adding-data-sources/excel-file.md @@ -58,9 +58,9 @@ builder.Services.AddControllers().AddReveal( builder => ```java -new RevealServerBuilder() - .addSettings(settings -> settings.setLocalFileStoragePath("data")) - .build(); +RevealEngineInitializer.initialize(new InitializeParameterBuilder() +.setLocalFilesStoragePath("data") +.build()); ``` From 63ca41a463d065b1faacde8ca93a968196ddb90a Mon Sep 17 00:00:00 2001 From: Diego Pazos Date: Fri, 15 May 2026 11:29:50 -0300 Subject: [PATCH 38/38] Remove Java packaging deployment sections --- docs/web/getting-started-spring-boot.md | 6 ------ docs/web/install-server-sdk.md | 5 ----- .../current/web/getting-started-spring-boot.md | 6 ------ .../current/web/install-server-sdk.md | 5 ----- 4 files changed, 22 deletions(-) diff --git a/docs/web/getting-started-spring-boot.md b/docs/web/getting-started-spring-boot.md index fc2450c9..72b86d95 100644 --- a/docs/web/getting-started-spring-boot.md +++ b/docs/web/getting-started-spring-boot.md @@ -136,12 +136,6 @@ FilterRegistrationBean revealApiCorsFilter() { } ``` -## Step 5 - Packaging and Deployment - -Reveal SDK includes native components built for specific platform and architecture combinations. When you package an application, Maven selects the native component for the current machine. If the deployment platform or architecture is different from the packaging machine, use the Maven profile parameter `-P os_arch` to select the target platform and architecture. - -The native binary is included as a resource in the platform-specific artifacts and is extracted to the temporary directory at runtime. The extracted folder uses the `platform-arch-version` format, such as `linux-aarch64-3`. - :::info Get the Code The source code to this sample can be found on [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/01-GettingStarted/server/spring-boot). diff --git a/docs/web/install-server-sdk.md b/docs/web/install-server-sdk.md index 2d6771aa..49291aa3 100644 --- a/docs/web/install-server-sdk.md +++ b/docs/web/install-server-sdk.md @@ -140,8 +140,3 @@ public class AppInitializer implements ServletContextListener { } ``` -### Packaging and Deployment - -Reveal SDK includes native components built for specific platform and architecture combinations. When you package an application, Maven selects the native component for the current machine. If the deployment platform or architecture is different from the packaging machine, use the Maven profile parameter `-P os_arch` to select the target platform and architecture. - -The native binary is included as a resource in the platform-specific artifacts and is extracted to the temporary directory at runtime. The extracted folder uses the `platform-arch-version` format, such as `linux-aarch64-3`. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md index 3c046f04..b1f89a09 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/getting-started-spring-boot.md @@ -147,12 +147,6 @@ FilterRegistrationBean corsFilter() { } ``` -## 手順 5 - パッケージ化と配置 - -Reveal SDK には、特定のプラットフォームとアーキテクチャの組み合わせ向けにビルドされたネイティブ コンポーネントが含まれています。アプリケーションをパッケージ化すると、Maven は現在のマシン用のネイティブ コンポーネントを選択します。配置先のプラットフォームまたはアーキテクチャがパッケージ化に使用したマシンと異なる場合は、Maven プロファイル パラメーター `-P os_arch` を使用して、対象のプラットフォームとアーキテクチャを選択します。 - -ネイティブ .NET バイナリは、プラットフォーム固有の成果物にリソースとして含まれ、実行時に一時ディレクトリへ展開されます。展開されたフォルダーは、`linux-aarch64-3` のような `platform-arch-version` 形式を使用します。 - :::info コードの取得 このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/01-GettingStarted/server/spring-boot) にあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md index e8dfdec3..812fd56e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/install-server-sdk.md @@ -142,8 +142,3 @@ public class AppInitializer implements ServletContextListener { } ``` -### パッケージ化と配置 - -Reveal SDK には、特定のプラットフォームとアーキテクチャの組み合わせ向けにビルドされたネイティブ コンポーネントが含まれています。アプリケーションをパッケージ化すると、Maven は現在のマシン用のネイティブ コンポーネントを選択します。配置先のプラットフォームまたはアーキテクチャがパッケージ化に使用したマシンと異なる場合は、Maven プロファイル パラメーター `-P os_arch` を使用して、対象のプラットフォームとアーキテクチャを選択します。 - -ネイティブ .NET バイナリは、プラットフォーム固有の成果物にリソースとして含まれ、実行時に一時ディレクトリへ展開されます。展開されたフォルダーは、`linux-aarch64-3` のような `platform-arch-version` 形式を使用します。