@Override public void init() { String remoteHost = String.format(EVENTHUB_REMOTE_HOST_FORMAT, eventHubNamespace); LOG.info("Initializing SamzaEventHubClientManager for namespace: " + eventHubNamespace); try { ConnectionStringBuilder connectionStringBuilder = new ConnectionStringBuilder() .setNamespaceName(eventHubNamespace) .setEventHubName(entityPath) .setSasKeyName(sasKeyName) .setSasKey(sasKey); ThreadFactoryBuilder threadFactoryBuilder = new ThreadFactoryBuilder().setNameFormat("Samza EventHubClient Thread-%d").setDaemon(true); eventHubClientExecutor = Executors.newFixedThreadPool(numClientThreads, threadFactoryBuilder.build()); eventHubClient = EventHubClient.createSync(connectionStringBuilder.toString(), retryPolicy, eventHubClientExecutor); } catch (IOException | EventHubException e) { String msg = String.format("Creation of EventHub client failed for eventHub EntityPath: %s on remote host %s:%d", entityPath, remoteHost, ClientConstants.AMQPS_PORT); LOG.error(msg, e); throw new SamzaException(msg, e); } LOG.info("SamzaEventHubClientManager initialized for namespace: " + eventHubNamespace); }
private EventHubClientImpl(final ConnectionStringBuilder connectionString, final ScheduledExecutorService executor) { super("EventHubClientImpl".concat(StringUtil.getRandomString()), null, executor); this.eventHubName = connectionString.getEventHubName(); this.senderCreateSync = new Object(); }
private String buildConnectionString(String eventhub) { return new ConnectionStringBuilder(this.connectionString).setEventHubName(eventhub).toString(); }
ConnectionStringBuilder providedCSB = new ConnectionStringBuilder(eventHubConnectionString); String extractedEntityPath = providedCSB.getEventHubName(); String effectiveEventHubPath = eventHubPath; String effectiveEventHubConnectionString = eventHubConnectionString; ConnectionStringBuilder rebuildCSB = new ConnectionStringBuilder() .setEndpoint(providedCSB.getEndpoint()) .setEventHubName(effectiveEventHubPath) .setSasKeyName(providedCSB.getSasKeyName()) .setSasKey(providedCSB.getSasKey()); rebuildCSB.setOperationTimeout(providedCSB.getOperationTimeout()); effectiveEventHubConnectionString = rebuildCSB.toString();
MessagingFactory(final ConnectionStringBuilder builder, final RetryPolicy retryPolicy, final ScheduledExecutorService executor, final ReactorFactory reactorFactory) { super("MessagingFactory".concat(StringUtil.getRandomString()), null, executor); this.hostName = builder.getEndpoint().getHost(); this.reactorFactory = reactorFactory; this.operationTimeout = builder.getOperationTimeout(); this.retryPolicy = retryPolicy; this.registeredLinks = new LinkedList<>(); this.reactorLock = new Object(); this.connectionHandler = ConnectionHandler.create(builder.getTransportType(), this); this.cbsChannelCreateLock = new Object(); this.mgmtChannelCreateLock = new Object(); this.tokenProvider = builder.getSharedAccessSignature() == null ? new SharedAccessSignatureTokenProvider(builder.getSasKeyName(), builder.getSasKey()) : new SharedAccessSignatureTokenProvider(builder.getSharedAccessSignature()); this.closeTask = new CompletableFuture<>(); }
public static CompletableFuture<EventHubClient> create( final String connectionString, final RetryPolicy retryPolicy, final ScheduledExecutorService executor) throws EventHubException, IOException { final ConnectionStringBuilder connStr = new ConnectionStringBuilder(connectionString); final EventHubClientImpl eventHubClient = new EventHubClientImpl(connStr, executor); return MessagingFactory.createFromConnectionString(connectionString.toString(), retryPolicy, executor) .thenApplyAsync(new Function<MessagingFactory, EventHubClient>() { @Override public EventHubClient apply(MessagingFactory factory) { eventHubClient.underlyingFactory = factory; eventHubClient.timer = new Timer(factory); return eventHubClient; } }, executor); }
private String buildConnectionString(String eventhub) { return new ConnectionStringBuilder(this.connectionString).setEventHubName(eventhub).toString(); }
final ScheduledExecutorService executor, final ReactorFactory reactorFactory) throws IOException { final ConnectionStringBuilder builder = new ConnectionStringBuilder(connectionString); final MessagingFactory messagingFactory = new MessagingFactory(builder, (retryPolicy != null) ? retryPolicy : RetryPolicy.getDefault(),
@Override public void initialize(ILifecycleProgressMonitor monitor) throws SiteWhereException { // Use parameters to build connection string. this.connectionStringBuilder = new ConnectionStringBuilder().setNamespaceName(namespaceNameParameter.getValue()) .setEventHubName(eventHubNameParameter.getValue()).setSasKeyName(sasKeyNameParameter.getValue()) .setSasKey(sasKeyParameter.getValue()); // Use parameters to build event processor host. this.eventProcessorHost = new EventProcessorHost( EventProcessorHost.createHostName(hostNamePrefixParameter.getValue()), eventHubNameParameter.getValue(), consumerGroupNameParameter.getValue(), connectionStringBuilder.toString(), storageConnectionStringParameter.getValue(), storageContainerNameParameter.getValue()); }
@Test public void doAzureEventSourceSendTest() throws Exception { ExecutorService executor = Executors.newSingleThreadExecutor(); final ConnectionStringBuilder connStr = new ConnectionStringBuilder().setNamespaceName("sitewhere") .setEventHubName("events").setSasKeyName("RootManageSharedAccessKey").setSasKey("xxx"); byte[] payloadBytes = EventsHelper.generateJsonMeasurementsMessage(DEVICE_TOKEN); EventData sendEvent = EventData.create(payloadBytes); final EventHubClient ehClient = EventHubClient.createSync(connStr.toString(), executor); ehClient.sendSync(sendEvent); ehClient.closeSync(); executor.shutdown(); }