Skip to content

Commit

Permalink
Clustered property and tests added
Browse files Browse the repository at this point in the history
  • Loading branch information
karesti committed Dec 10, 2024
1 parent c2c9ece commit 170fde6
Show file tree
Hide file tree
Showing 10 changed files with 153 additions and 6 deletions.
25 changes: 21 additions & 4 deletions docs/modules/ROOT/pages/includes/quarkus-infinispan-embedded.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
:summaryTableId: quarkus-infinispan-embedded_infinispan-embedded
:summaryTableId: quarkus-infinispan-embedded_quarkus-infinispan-embedded
[.configuration-legend]
icon:lock[title=Fixed at build time] Configuration property fixed at build time - All other configuration properties are overridable at runtime
[.configuration-reference.searchable, cols="80,.^10,.^10"]
Expand All @@ -8,23 +8,40 @@ h|[.header-title]##Configuration property##
h|Type
h|Default

a| [[quarkus-infinispan-embedded_infinispan-embedded-xml-config]] [.property-path]##link:#quarkus-infinispan-embedded_infinispan-embedded-xml-config[`infinispan-embedded.xml-config`]##
a| [[quarkus-infinispan-embedded_quarkus-infinispan-embedded-xml-config]] [.property-path]##link:#quarkus-infinispan-embedded_quarkus-infinispan-embedded-xml-config[`quarkus.infinispan-embedded.xml-config`]##

[.description]
--
The configured Infinispan embedded xml file which is used by the managed EmbeddedCacheManager and its Caches


ifdef::add-copy-button-to-env-var[]
Environment variable: env_var_with_copy_button:+++INFINISPAN_EMBEDDED_XML_CONFIG+++[]
Environment variable: env_var_with_copy_button:+++QUARKUS_INFINISPAN_EMBEDDED_XML_CONFIG+++[]
endif::add-copy-button-to-env-var[]
ifndef::add-copy-button-to-env-var[]
Environment variable: `+++INFINISPAN_EMBEDDED_XML_CONFIG+++`
Environment variable: `+++QUARKUS_INFINISPAN_EMBEDDED_XML_CONFIG+++`
endif::add-copy-button-to-env-var[]
--
|string
|

a| [[quarkus-infinispan-embedded_quarkus-infinispan-embedded-clustered]] [.property-path]##link:#quarkus-infinispan-embedded_quarkus-infinispan-embedded-clustered[`quarkus.infinispan-embedded.clustered`]##

[.description]
--
Sets a cluster with defaults.


ifdef::add-copy-button-to-env-var[]
Environment variable: env_var_with_copy_button:+++QUARKUS_INFINISPAN_EMBEDDED_CLUSTERED+++[]
endif::add-copy-button-to-env-var[]
ifndef::add-copy-button-to-env-var[]
Environment variable: `+++QUARKUS_INFINISPAN_EMBEDDED_CLUSTERED+++`
endif::add-copy-button-to-env-var[]
--
|boolean
|`true`

|===


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
:summaryTableId: quarkus-infinispan-embedded_quarkus-infinispan-embedded
[.configuration-legend]
icon:lock[title=Fixed at build time] Configuration property fixed at build time - All other configuration properties are overridable at runtime
[.configuration-reference.searchable, cols="80,.^10,.^10"]
|===

h|[.header-title]##Configuration property##
h|Type
h|Default

a| [[quarkus-infinispan-embedded_quarkus-infinispan-embedded-xml-config]] [.property-path]##link:#quarkus-infinispan-embedded_quarkus-infinispan-embedded-xml-config[`quarkus.infinispan-embedded.xml-config`]##

[.description]
--
The configured Infinispan embedded xml file which is used by the managed EmbeddedCacheManager and its Caches


ifdef::add-copy-button-to-env-var[]
Environment variable: env_var_with_copy_button:+++QUARKUS_INFINISPAN_EMBEDDED_XML_CONFIG+++[]
endif::add-copy-button-to-env-var[]
ifndef::add-copy-button-to-env-var[]
Environment variable: `+++QUARKUS_INFINISPAN_EMBEDDED_XML_CONFIG+++`
endif::add-copy-button-to-env-var[]
--
|string
|

a| [[quarkus-infinispan-embedded_quarkus-infinispan-embedded-clustered]] [.property-path]##link:#quarkus-infinispan-embedded_quarkus-infinispan-embedded-clustered[`quarkus.infinispan-embedded.clustered`]##

[.description]
--
Sets a cluster with defaults.


ifdef::add-copy-button-to-env-var[]
Environment variable: env_var_with_copy_button:+++QUARKUS_INFINISPAN_EMBEDDED_CLUSTERED+++[]
endif::add-copy-button-to-env-var[]
ifndef::add-copy-button-to-env-var[]
Environment variable: `+++QUARKUS_INFINISPAN_EMBEDDED_CLUSTERED+++`
endif::add-copy-button-to-env-var[]
--
|boolean
|`true`

|===


:!summaryTableId:
11 changes: 11 additions & 0 deletions extension/deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,17 @@
<artifactId>quarkus-infinispan-embedded</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5-internal</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package io.quarkiverse.infinispan.embedded.deployment;

import static org.assertj.core.api.Assertions.assertThat;

import jakarta.enterprise.inject.Default;

import org.infinispan.manager.EmbeddedCacheManager;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.arc.Arc;
import io.quarkus.test.QuarkusUnitTest;

public class InfinispanEmbeddedConfigTest {

@RegisterExtension
static final QuarkusUnitTest config = new QuarkusUnitTest()
.withConfigurationResource("empty-application-infinispan-embedded.properties");

@Test
public void embeddedCacheManagerAccessible() {
EmbeddedCacheManager embeddedCacheManager = Arc.container()
.instance(EmbeddedCacheManager.class, Default.Literal.INSTANCE).get();
assertThat(embeddedCacheManager).isNotNull();
assertThat(embeddedCacheManager.isCoordinator()).isTrue();
assertThat(embeddedCacheManager.getAccessibleCacheNames()).isEmpty();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package io.quarkiverse.infinispan.embedded.deployment;

import static org.assertj.core.api.Assertions.assertThat;

import jakarta.enterprise.inject.Default;

import org.infinispan.manager.EmbeddedCacheManager;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.arc.Arc;
import io.quarkus.test.QuarkusUnitTest;

public class InfinispanEmbeddedNotClusteredTest {

@RegisterExtension
static final QuarkusUnitTest config = new QuarkusUnitTest()
.withConfigurationResource("not-clustered-application-infinispan-embedded.properties");

@Test
public void notClustered() {
EmbeddedCacheManager cacheManager = Arc.container().instance(EmbeddedCacheManager.class, Default.Literal.INSTANCE)
.get();
assertThat(cacheManager).isNotNull();
assertThat(cacheManager.isCoordinator()).isFalse();
}
}
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
quarkus.infinispan-embedded.clustered=false
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,11 @@ EmbeddedCacheManager manager() {
}
}

return new DefaultCacheManager(GlobalConfigurationBuilder.defaultClusteredBuilder().build());
if (config.clustered()) {
return new DefaultCacheManager(GlobalConfigurationBuilder.defaultClusteredBuilder().build());
}

return new DefaultCacheManager();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,20 @@
import io.quarkus.runtime.annotations.ConfigPhase;
import io.quarkus.runtime.annotations.ConfigRoot;
import io.smallrye.config.ConfigMapping;
import io.smallrye.config.WithDefault;

@ConfigRoot(phase = ConfigPhase.RUN_TIME)
@ConfigMapping(prefix = "infinispan-embedded")
@ConfigMapping(prefix = "quarkus.infinispan-embedded")
public interface InfinispanEmbeddedRuntimeConfig {

/**
* The configured Infinispan embedded xml file which is used by the managed EmbeddedCacheManager and its Caches
*/
Optional<String> xmlConfig();

/**
* Sets a cluster with defaults.
*/
@WithDefault("true")
boolean clustered();
}
5 changes: 5 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@
<artifactId>jgroups-raft</artifactId>
<version>${jgroups.raft.version}</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
Expand Down

0 comments on commit 170fde6

Please sign in to comment.