Skip to content

Commit 4206d12

Browse files
committed
Add custom access controller example
(merge main -> ce/main 115849) [git-p4: depot-paths = "//dev/coherence-ce/main/": change = 115850]
1 parent 7b25785 commit 4206d12

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+6564
-319
lines changed

prj/coherence-bedrock/coherence-bedrock/src/main/java/com/oracle/bedrock/runtime/coherence/options/MemberName.java

+35-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2000, 2022, Oracle and/or its affiliates.
2+
* Copyright (c) 2000, 2025, Oracle and/or its affiliates.
33
*
44
* Licensed under the Universal Permissive License v 1.0 as shown at
55
* https://oss.oracle.com/licenses/upl.
@@ -16,6 +16,7 @@
1616
import com.oracle.bedrock.runtime.coherence.CoherenceClusterMember;
1717
import com.oracle.bedrock.runtime.java.options.SystemProperties;
1818
import com.oracle.bedrock.runtime.java.options.SystemProperty;
19+
import com.oracle.bedrock.runtime.options.Discriminator;
1920

2021
import java.util.UUID;
2122

@@ -38,13 +39,19 @@ public class MemberName
3839
*/
3940
private final String name;
4041

42+
/**
43+
* A flag to indicate that the {@link Discriminator}
44+
* should be used to make the member name unique.
45+
*/
46+
private final boolean useDiscriminator;
4147

4248
/**
4349
* Constructs a {@link MemberName} for the specified name.
4450
*
45-
* @param name the name
51+
* @param name the name
52+
* @param useDiscriminator {@code true} to use the {@link Discriminator} option to make the name unique
4653
*/
47-
private MemberName(String name)
54+
private MemberName(String name, boolean useDiscriminator)
4855
{
4956
if (name == null)
5057
{
@@ -54,6 +61,7 @@ private MemberName(String name)
5461
{
5562
this.name = name;
5663
}
64+
this.useDiscriminator = useDiscriminator;
5765
}
5866

5967

@@ -76,7 +84,19 @@ public String get()
7684
*/
7785
public static MemberName of(String name)
7886
{
79-
return new MemberName(name);
87+
return new MemberName(name, false);
88+
}
89+
90+
91+
/**
92+
* Obtains a {@link MemberName} for a specified name.
93+
*
94+
* @param name the name of the {@link MemberName}
95+
* @return a {@link MemberName} for the specified name
96+
*/
97+
public static MemberName withDiscriminator(String name)
98+
{
99+
return new MemberName(name, true);
80100
}
81101

82102

@@ -87,14 +107,23 @@ public void onLaunching(
87107
OptionsByType optionsByType)
88108
{
89109
SystemProperties systemProperties = optionsByType.get(SystemProperties.class);
110+
String memberName = name;
111+
112+
if (useDiscriminator)
113+
{
114+
Discriminator discriminator = optionsByType.get(Discriminator.class);
115+
if (discriminator != null)
116+
{
117+
memberName = memberName + "-" + discriminator.getValue();
118+
}
119+
}
90120

91121
if (systemProperties != null)
92122
{
93-
optionsByType.add(SystemProperty.of(PROPERTY, name));
123+
optionsByType.add(SystemProperty.of(PROPERTY, memberName));
94124
}
95125
}
96126

97-
98127
@Override
99128
public void onLaunched(
100129
Platform platform,

prj/coherence-core/src/main/java/com/tangosol/net/Coherence.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2000, 2024, Oracle and/or its affiliates.
2+
* Copyright (c) 2000, 2025, Oracle and/or its affiliates.
33
*
44
* Licensed under the Universal Permissive License v 1.0 as shown at
55
* https://oss.oracle.com/licenses/upl.
@@ -1500,7 +1500,7 @@ else if (Pattern.matches("[0-9]*", sArg))
15001500
coherence = Coherence.builder(CoherenceConfiguration.create(), mode).build();
15011501
}
15021502

1503-
coherence.start();
1503+
coherence.start().join();
15041504

15051505
// block forever (or until the Coherence instance is shutdown)
15061506
coherence.whenClosed().join();

0 commit comments

Comments
 (0)