Skip to content

Instantly share code, notes, and snippets.

View danielkec's full-sized avatar
🚀

Daniel Kec danielkec

🚀
View GitHub Profile
@Incoming("from-stream")
public void receive(CloudEvent event) {
String payload = new String(event.getData().toBytes());
}
@Incoming("from-wls-1")
public void receive1(String payld) {
sseBroadcaster.broadcast(new OutboundEvent.Builder().data("Q1: " + payld).build());
}
@Incoming("from-wls-2")
public void receive2(String payld) {
sseBroadcaster.broadcast(new OutboundEvent.Builder().data("Q2: " + payld).build());
}
incoming:
from-wls-1:
connector: helidon-jms
destination: ./TestJMSModule!ms1@udd_queue
from-wls-2:
connector: helidon-jms
destination: ./TestJMSModule!ms2@udd_queue
outgoing:
to-wls:
connector: helidon-jms
SubmissionPublisher<String> emitter = new SubmissionPublisher<>();
SseBroadcaster sseBroadcaster;
@Incoming("from-wls")
public void receive(JmsMessage<String> msg) {
if (sseBroadcaster == null) {
System.out.println("No SSE client subscribed yet: " + msg.getPayload());
return;
}
public static void main(String[] args) throws SQLException {
System.setProperty("oracle.jdbc.fanEnabled", "false");
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@helidonaq_high?TNS_ADMIN=/home/kec/wallets/Wallet_helidonaq");
pds.setUser("frank");
pds.setPassword("SuperSecretPassword1234");
AqConnector seConn = AqConnector.builder()
DECLARE
enqueue_options DBMS_AQ.ENQUEUE_OPTIONS_T;
message_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
message_handle RAW(16);
msg SYS.AQ$_JMS_TEXT_MESSAGE;
BEGIN
msg := SYS.AQ$_JMS_TEXT_MESSAGE.construct;
msg.set_text('HELLO PLSQL WORLD ! ' || TO_CHAR(sysdate, 'DD-MM-YY HH24:MI:SS'));
DBMS_AQ.ENQUEUE(
queue_name => 'FRANK.EXAMPLE_QUEUE_1',
CREATE OR REPLACE PROCEDURE create_queue(queueName IN VARCHAR2, qType IN VARCHAR2) IS
BEGIN
dbms_aqadm.create_queue_table('FRANK.'||queueName||'_TAB', qType);
dbms_aqadm.create_queue('FRANK.'||queueName,'FRANK.'||queueName||'_TAB');
dbms_aqadm.start_queue('FRANK.'||queueName);
END;
/
-- Setup example AQ queues FRANK.EXAMPLE_QUEUE_1, FRANK.EXAMPLE_QUEUE_2, FRANK.EXAMPLE_QUEUE_3
begin
create user frank identified by SuperSecretPassword1234;
grant connect to frank;
grant resource to frank;
grant execute on dbms_aq to frank;
grant execute on dbms_aqadm to frank;
grant execute on dbms_aqin to frank;
grant unlimited tablespace to frank;
BEGIN
private AtomicInteger counter = new AtomicInteger();
@Incoming("from-aq")
@Acknowledgment(Acknowledgment.Strategy.MANUAL)
public CompletionStage<?> fromAq(AqMessage<String> msg) {
System.out.println("Received: " + msg.getPayload());
if (counter.getAndIncrement() == 5) {
throw new RuntimeException("5th message exception!");
}
//Acknowledgement/commit is called after the business code
@Outgoing("to-aq")
public Publisher<String> toAq() {
return FlowAdapters.toPublisher(
Multi.interval(2, TimeUnit.SECONDS, Executors.newSingleThreadScheduledExecutor())
.map(i -> "Message " + i)
);
}
@Incoming("from-aq")