Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
R
RagConnect
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
JastAdd
RagConnect
Merge requests
!30
Feature: JavaHandler
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Feature: JavaHandler
feature/java-handler
into
dev
Overview
0
Commits
7
Pipelines
1
Changes
5
Merged
René Schöne
requested to merge
feature/java-handler
into
dev
3 years ago
Overview
0
Commits
7
Pipelines
1
Changes
5
Expand
Closes
#52 (closed)
0
0
Merge request reports
Viewing commit
b9c399cb
Prev
Next
Show latest version
5 files
+
40
−
41
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
5
Search (e.g. *.vue) (Ctrl+P)
b9c399cb
fixed errors in JavaHandler
· b9c399cb
René Schöne
authored
3 years ago
ragconnect.base/src/main/resources/JavaHandler.mustache
+
29
−
38
Options
@@ -3,7 +3,8 @@
*/
public class JavaHandler {
public static JavaHandler JAVA_HANDLER_INSTANCE = null;
private java.util.Map
<String
,
java.util.List
<
Pair
<
String
,
java.util.function.BiConsumer
<
String
,
byte
[]
>
>>> callbackList = new java.util.concurrent.ConcurrentHashMap
<>
();
private java.util.Map
<String
,
java.util.List
<
java.util.function.BiConsumer
<
String
,
byte
[]
>
>> callbackList = new java.util.concurrent.ConcurrentHashMap
<>
();
private final java.util.Map
<RagConnectToken
,
java.util.function.BiConsumer
<
String
,
byte
[]
>
> tokensForRemoval = new java.util.HashMap
<>
();
private String name;
private JavaHandler() {
@@ -21,68 +22,58 @@ public class JavaHandler {
return JAVA_HANDLER_INSTANCE;
}
public String registerCallback(String topic, java.util.function.BiConsumer
<String
,
byte
[]
>
callback) {
{{
logInfo
}}
("[JAVA_HANDLER] Registering new callback for
{{
log_
}}
.", topic);
private static String extractPath(java.net.URI uri) {
String path = uri.getPath();
if (path.charAt(0) == '/') {
path = path.substring(1);
}
return path;
}
String callbackUUID = java.util.UUID.randomUUID().toString();
public boolean registerCallback(RagConnectToken connectToken, java.util.function.BiConsumer
<String
,
byte
[]
>
callback) {
String path = extractPath(connectToken.uri);
{{
logInfo
}}
("[JAVA_HANDLER] Registering new callback for
{{
log_
}}
.", path);
java.util.List
<
Pair
<
String
,
java.util.function.BiConsumer
<
String
,
byte
[]
>
>
>
registeredCallbacks =
getAllC
allback
s()
.get(
topic
);
java.util.List
<java.util.function.BiConsumer
<
String
,
byte
[]
>
> registeredCallbacks =
c
allback
List
.get(
path
);
if (registeredCallbacks == null) {
java.util.List
<Pair
<
String
,
java.util.function.BiConsumer
<
String
,
byte
[]
>
>> newCallbackList = java.util.Collections.synchronizedList(new java.util.ArrayList
<>
());
newCallbackList.add(new Pair
<>
(callbackUUID, callback));
callbackList.put(topic, newCallbackList);
} else {
registeredCallbacks.add(new Pair
<>
(callbackUUID, callback));
registeredCallbacks = java.util.Collections.synchronizedList(new java.util.ArrayList
<>
());
callbackList.put(path, registeredCallbacks);
}
registeredCallbacks.add(callback);
tokensForRemoval.put(connectToken, callback);
return
callbackUUID
;
return
true
;
}
public boolean unregisterCallback(
String path, String uuid
) {
{{
logInfo
}}
("[JAVA_HANDLER] Unregistering callback with uuid:
{{
log_
}}
", uuid + " on path:
{{
log_
}}
", path
);
java.util.List
<Pair
<
String
,
java.util.function.BiConsumer
<
String
,
byte
[]
>
>> callbacks = getAllCallbacks().get(
path);
public boolean unregisterCallback(
RagConnectToken connectToken
) {
String path = extractPath(connectToken.uri
);
java.util.function.BiConsumer
<String
,
byte
[]
>
callback = tokensForRemoval.get(connectToken);
{{
logInfo
}}
("[JAVA_HANDLER] Unregistering callback with uuid: on path:
{{
log_
}}
",
path);
int count = 0;
if (callbacks != null) {
for (Pair
<String
,
java.util.function.BiConsumer
<
String
,
byte
[]
>
> callbackPair : callbacks) {
if (callbackPair._1.equals(uuid)) {
callbacks.remove(count);
return true;
} else {
count++;
}
}
}
return false;
return callbackList.get(path).remove(callback);
}
public void close() {
}
public boolean push(String
topic
, byte[] data) {
public boolean push(String
path
, byte[] data) {
{{
logDebug
}}
("[JAVA_HANDLER] Pushing a message.");
String dataString = new String(data);
{{
logDebug
}}
("[JAVA_HANDLER] Data:
{{
log_
}}
", dataString);
java.util.List
<
Pair
<
String
,
java.util.function.BiConsumer
<
String
,
byte
[]
>
>
>
callbacks =
getAllC
allback
s()
.get(
topic
);
java.util.List
<java.util.function.BiConsumer
<
String
,
byte
[]
>
> callbacks =
c
allback
List
.get(
path
);
if (callbacks == null) {
{{
logError
}}
("[JAVA_HANDLER] Could not publish message. No callback registered for
topic
{{
log_
}}
",
topic
);
{{
logError
}}
("[JAVA_HANDLER] Could not publish message. No callback registered for
path
{{
log_
}}
",
path
);
return false;
}
for (Pair
<String
,
java.util.function.BiConsumer
<
String
,
byte
[]
>
> callbackPair : callbacks) {
{{
logDebug
}}
("[JAVA_HANDLER] Calling callback:
{{
log_
}}
", callbackPair._1);
callbackPair._2.accept(topic, data);
for (java.util.function.BiConsumer
<String
,
byte
[]
>
callback : callbacks) {
callback.accept(path, data);
}
return true;
}
public java.util.Map
<String
,
java.util.List
<
Pair
<
String
,
java.util.function.BiConsumer
<
String
,
byte
[]
>
>>> getAllCallbacks() {
return callbackList;
}
}
Loading