use of com.tangosol.net.ConfigurableCacheFactory in project coherence-spring by coherence-community.
the class ServiceEventHandler method isApplicable.
@Override
protected boolean isApplicable(EventDispatcher dispatcher, String scopeName) {
if (dispatcher instanceof PartitionedServiceDispatcher) {
PartitionedServiceDispatcher psd = (PartitionedServiceDispatcher) dispatcher;
ConfigurableCacheFactory ccf = getConfigurableCacheFactory(psd.getService());
if (ccf == null || scopeName == null || scopeName.equals(ccf.getScopeName())) {
return this.serviceName == null || this.serviceName.equals(removeScope(psd.getServiceName()));
}
}
return false;
}
use of com.tangosol.net.ConfigurableCacheFactory in project oracle-bedrock by coherence-community.
the class GetAutoStartServiceNames method call.
@Override
public Set<String> call() throws Exception {
ConfigurableCacheFactory configurableCacheFactory = CacheFactory.getConfigurableCacheFactory();
if (configurableCacheFactory instanceof DefaultConfigurableCacheFactory) {
DefaultConfigurableCacheFactory cacheFactory = (DefaultConfigurableCacheFactory) configurableCacheFactory;
// obtain the XmlElements representing the service scheme configurations
XmlElement xmlCacheConfig = cacheFactory.getConfig();
Map<String, XmlElement> serviceSchemes = cacheFactory.collectServiceSchemes(xmlCacheConfig);
HashSet<String> serviceNames = new HashSet<>();
for (String serviceName : serviceSchemes.keySet()) {
XmlElement xmlServiceScheme = serviceSchemes.get(serviceName);
boolean isAutoStart = xmlServiceScheme.getSafeElement("autostart").getBoolean(false);
if (isAutoStart) {
serviceNames.add(serviceName);
}
}
return serviceNames;
} else {
throw new RuntimeException("The ConfigurableCacheFactory is not an DefaultConfigurableCacheFactory");
}
}
use of com.tangosol.net.ConfigurableCacheFactory in project oracle-bedrock by coherence-community.
the class ExtendClient method build.
@Override
public ConfigurableCacheFactory build(LocalPlatform platform, CoherenceCluster cluster, OptionsByType optionsByType) {
// ----- establish the diagnostics output table -----
Table diagnosticsTable = new Table();
diagnosticsTable.getOptions().add(Table.orderByColumn(0));
// ----- establish the options for launching a local extend-based member -----
optionsByType.add(RoleName.of("extend-client"));
optionsByType.add(Clustering.disabled());
optionsByType.add(LocalStorage.disabled());
optionsByType.add(LocalHost.only());
optionsByType.add(SystemProperty.of("tangosol.coherence.extend.enabled", true));
optionsByType.add(CacheConfig.of(cacheConfigURI));
// ----- notify the Profiles that we're about to launch an application -----
MetaClass<CoherenceClusterMember> metaClass = new CoherenceClusterMember.MetaClass();
for (Profile profile : optionsByType.getInstancesOf(Profile.class)) {
profile.onLaunching(platform, metaClass, optionsByType);
}
// ----- create local system properties based on those defined by the launch options -----
// modify the current system properties to include/override those in the schema
com.oracle.bedrock.runtime.java.options.SystemProperties systemProperties = optionsByType.get(com.oracle.bedrock.runtime.java.options.SystemProperties.class);
Properties properties = systemProperties.resolve(platform, optionsByType);
Table systemPropertiesTable = new Table();
systemPropertiesTable.getOptions().add(Table.orderByColumn(0));
systemPropertiesTable.getOptions().add(Cell.Separator.of(""));
systemPropertiesTable.getOptions().add(Cell.DisplayNull.asEmptyString());
for (String propertyName : properties.stringPropertyNames()) {
String propertyValue = properties.getProperty(propertyName);
systemPropertiesTable.addRow(propertyName + (System.getProperties().containsKey(propertyName) ? "*" : ""), propertyValue);
System.setProperty(propertyName, propertyValue.isEmpty() ? "" : propertyValue);
}
diagnosticsTable.addRow("System Properties", systemPropertiesTable.toString());
if (LOGGER.isLoggable(Level.INFO)) {
LOGGER.log(Level.INFO, "Oracle Bedrock " + Bedrock.getVersion() + ": Starting *Extend Client...\n" + "------------------------------------------------------------------------\n" + diagnosticsTable.toString() + "\n" + "------------------------------------------------------------------------\n");
}
// ----- establish the session -----
// create the session
ConfigurableCacheFactory session = new ScopedCacheFactoryBuilder().getConfigurableCacheFactory(cacheConfigURI, getClass().getClassLoader());
return session;
}
use of com.tangosol.net.ConfigurableCacheFactory in project oracle-bedrock by coherence-community.
the class CoherenceClusterResourceTest method shouldPerformRollingRestartWithStorageDisabledSession.
/**
* Ensure that a {@link CoherenceClusterResource} can be used to perform a rolling restart
* when there's a storage disabled session.
*/
@Test
public void shouldPerformRollingRestartWithStorageDisabledSession() throws Exception {
CoherenceCluster cluster = coherenceResource.getCluster();
ConfigurableCacheFactory cacheFactory = coherenceResource.createSession(new StorageDisabledMember());
// only restart storage enabled members
cluster.filter(member -> member.getName().startsWith("storage")).relaunch();
CoherenceClusterMember member1 = cluster.get("storage-1");
CoherenceClusterMember member2 = cluster.get("storage-2");
assertThat(member1, is(notNullValue()));
assertThat(member2, is(notNullValue()));
}
use of com.tangosol.net.ConfigurableCacheFactory in project oracle-bedrock by coherence-community.
the class CoherenceClusterResourceTest method shouldCreateStorageDisabledMemberSession.
/**
* Ensure that a {@link StorageDisabledMember} session can be created against the {@link CoherenceClusterResource}.
*/
@Test
public void shouldCreateStorageDisabledMemberSession() {
ConfigurableCacheFactory session = coherenceResource.createSession(SessionBuilders.storageDisabledMember());
NamedCache cache = session.ensureCache("dist-example", null);
Eventually.assertThat(coherenceResource.getCluster().getClusterSize(), is(4));
cache.put("message", "hello world");
Eventually.assertThat(invoking(coherenceResource.getCluster().getCache("dist-example")).get("message"), is((Object) "hello world"));
}
Aggregations