forked from community/device-mgt-core
parent
5b9bddd667
commit
ef6e7df656
@ -1,44 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
|
||||||
* in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.wso2.carbon.device.mgt.analytics.data.publisher.exception;
|
|
||||||
|
|
||||||
public class DataPublisherAlreadyExistsException extends Exception {
|
|
||||||
public DataPublisherAlreadyExistsException() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataPublisherAlreadyExistsException(String message) {
|
|
||||||
super(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataPublisherAlreadyExistsException(String message, Throwable cause) {
|
|
||||||
super(message, cause);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataPublisherAlreadyExistsException(Throwable cause) {
|
|
||||||
super(cause);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected DataPublisherAlreadyExistsException(String message, Throwable cause,
|
|
||||||
boolean enableSuppression,
|
|
||||||
boolean writableStackTrace) {
|
|
||||||
super(message, cause, enableSuppression, writableStackTrace);
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,109 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.wso2.carbon.device.mgt.analytics.data.publisher;
|
||||||
|
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||||
|
import org.wso2.carbon.device.mgt.analytics.data.publisher.config.AnalyticsConfiguration;
|
||||||
|
import org.wso2.carbon.device.mgt.analytics.data.publisher.config.InvalidConfigurationStateException;
|
||||||
|
import org.wso2.carbon.device.mgt.analytics.data.publisher.exception.DataPublisherConfigurationException;
|
||||||
|
import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherService;
|
||||||
|
import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherServiceImpl;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test class will test the methods that are exposed from {@link EventsPublisherService}
|
||||||
|
*/
|
||||||
|
public class EventPublisherServiceTest extends BaseAnalyticsDataPublisherTest {
|
||||||
|
|
||||||
|
private static final String STREAM_NAME = "org.wso2.test.stream";
|
||||||
|
private static final String TENANT_DOMAIN = "test.com";
|
||||||
|
|
||||||
|
private EventsPublisherService eventsPublisherService;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void initTest() {
|
||||||
|
this.eventsPublisherService = new EventsPublisherServiceImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Publish the event before initializing",
|
||||||
|
expectedExceptions = InvalidConfigurationStateException.class)
|
||||||
|
public void publishBeforeInit() throws DataPublisherConfigurationException, NoSuchFieldException,
|
||||||
|
IllegalAccessException, InstantiationException {
|
||||||
|
Field configField = AnalyticsConfiguration.class.getDeclaredField("config");
|
||||||
|
configField.setAccessible(true);
|
||||||
|
configField.set(configField, null);
|
||||||
|
this.eventsPublisherService.publishEvent(STREAM_NAME, "1.0.0", getEventProps(), getEventProps(),
|
||||||
|
getEventProps());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Publish with analytics config disabled", dependsOnMethods = "publishBeforeInit")
|
||||||
|
public void publishWhenAnalyticsConfigDisabled() throws DataPublisherConfigurationException {
|
||||||
|
AnalyticsConfiguration.init();
|
||||||
|
AnalyticsConfiguration.getInstance().setEnable(false);
|
||||||
|
boolean published = this.eventsPublisherService.publishEvent(STREAM_NAME, "1.0.0", getEventProps(),
|
||||||
|
getEventProps(), getEventProps());
|
||||||
|
Assert.assertFalse(published);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Publish the event after initializing", dependsOnMethods = "publishWhenAnalyticsConfigDisabled")
|
||||||
|
public void publishAfterInit() throws DataPublisherConfigurationException {
|
||||||
|
AnalyticsConfiguration.getInstance().setEnable(true);
|
||||||
|
boolean published = this.eventsPublisherService.publishEvent(STREAM_NAME, "1.0.0", getEventProps(),
|
||||||
|
getEventProps(), getEventProps());
|
||||||
|
Assert.assertTrue(published);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Publish as tenant", dependsOnMethods = "publishAfterInit")
|
||||||
|
public void publishAsTenant() throws DataPublisherConfigurationException {
|
||||||
|
publishAsTenant(getEventProps());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Publish the with no meta data as tenant", dependsOnMethods = "publishAsTenant",
|
||||||
|
expectedExceptions = DataPublisherConfigurationException.class)
|
||||||
|
public void publishAsTenantWithNoMetaData() throws DataPublisherConfigurationException {
|
||||||
|
publishAsTenant(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Publish the with empty meta data as tenant", dependsOnMethods = "publishAsTenant",
|
||||||
|
expectedExceptions = DataPublisherConfigurationException.class)
|
||||||
|
public void publishAsTenantWithEmptyMetaData() throws DataPublisherConfigurationException {
|
||||||
|
publishAsTenant(new Object[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void publishAsTenant(Object[] metaData) throws DataPublisherConfigurationException {
|
||||||
|
PrivilegedCarbonContext.startTenantFlow();
|
||||||
|
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(TENANT_DOMAIN, true);
|
||||||
|
try {
|
||||||
|
boolean published = this.eventsPublisherService.publishEvent(STREAM_NAME, "1.0.0", metaData,
|
||||||
|
getEventProps(), getEventProps());
|
||||||
|
Assert.assertTrue(published);
|
||||||
|
} finally {
|
||||||
|
PrivilegedCarbonContext.endTenantFlow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Object[] getEventProps() {
|
||||||
|
return new Object[]{"123"};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<!--
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License..
|
||||||
|
-->
|
||||||
|
|
||||||
|
<DataAgentsConfiguration>
|
||||||
|
<Agent>
|
||||||
|
<Name>Thrift</Name>
|
||||||
|
<DataEndpointClass>org.wso2.carbon.databridge.agent.endpoint.thrift.ThriftDataEndpoint</DataEndpointClass>
|
||||||
|
<TrustSore>src/test/resources/client-truststore.jks</TrustSore>
|
||||||
|
<TrustSorePassword>wso2carbon</TrustSorePassword>
|
||||||
|
<QueueSize>32768</QueueSize>
|
||||||
|
<BatchSize>200</BatchSize>
|
||||||
|
<CorePoolSize>1</CorePoolSize>
|
||||||
|
<SocketTimeoutMS>30000</SocketTimeoutMS>
|
||||||
|
<MaxPoolSize>1</MaxPoolSize>
|
||||||
|
<KeepAliveTimeInPool>20</KeepAliveTimeInPool>
|
||||||
|
<ReconnectionInterval>30</ReconnectionInterval>
|
||||||
|
<MaxTransportPoolSize>250</MaxTransportPoolSize>
|
||||||
|
<MaxIdleConnections>250</MaxIdleConnections>
|
||||||
|
<EvictionTimePeriod>5500</EvictionTimePeriod>
|
||||||
|
<MinIdleTimeInPool>5000</MinIdleTimeInPool>
|
||||||
|
<SecureMaxTransportPoolSize>250</SecureMaxTransportPoolSize>
|
||||||
|
<SecureMaxIdleConnections>250</SecureMaxIdleConnections>
|
||||||
|
<SecureEvictionTimePeriod>5500</SecureEvictionTimePeriod>
|
||||||
|
<SecureMinIdleTimeInPool>5000</SecureMinIdleTimeInPool>
|
||||||
|
<!--<sslEnabledProtocols>TLSv1,TLSv1.1,TLSv1.2</sslEnabledProtocols>-->
|
||||||
|
<!--<ciphers>SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA</ciphers>-->
|
||||||
|
</Agent>
|
||||||
|
|
||||||
|
<Agent>
|
||||||
|
<Name>Binary</Name>
|
||||||
|
<DataEndpointClass>org.wso2.carbon.databridge.agent.endpoint.binary.BinaryDataEndpoint</DataEndpointClass>
|
||||||
|
<TrustSore>src/test/resources/client-truststore.jks</TrustSore>
|
||||||
|
<TrustSorePassword>wso2carbon</TrustSorePassword>
|
||||||
|
<QueueSize>32768</QueueSize>
|
||||||
|
<BatchSize>200</BatchSize>
|
||||||
|
<CorePoolSize>1</CorePoolSize>
|
||||||
|
<MaxPoolSize>1</MaxPoolSize>
|
||||||
|
<SocketTimeoutMS>30000</SocketTimeoutMS>
|
||||||
|
<KeepAliveTimeInPool>20</KeepAliveTimeInPool>
|
||||||
|
<ReconnectionInterval>30</ReconnectionInterval>
|
||||||
|
<MaxTransportPoolSize>250</MaxTransportPoolSize>
|
||||||
|
<MaxIdleConnections>250</MaxIdleConnections>
|
||||||
|
<EvictionTimePeriod>5500</EvictionTimePeriod>
|
||||||
|
<MinIdleTimeInPool>5000</MinIdleTimeInPool>
|
||||||
|
<SecureMaxTransportPoolSize>250</SecureMaxTransportPoolSize>
|
||||||
|
<SecureMaxIdleConnections>250</SecureMaxIdleConnections>
|
||||||
|
<SecureEvictionTimePeriod>5500</SecureEvictionTimePeriod>
|
||||||
|
<SecureMinIdleTimeInPool>5000</SecureMinIdleTimeInPool>
|
||||||
|
<!--<sslEnabledProtocols>TLSv1,TLSv1.1,TLSv1.2</sslEnabledProtocols>-->
|
||||||
|
<!--<ciphers>SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA</ciphers>-->
|
||||||
|
</Agent>
|
||||||
|
</DataAgentsConfiguration>
|
||||||
|
|
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
~ Version 2.0 (the "License"); you may not use this file except
|
||||||
|
~ in compliance with the License.
|
||||||
|
~ you may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing,
|
||||||
|
~ software distributed under the License is distributed on an
|
||||||
|
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
~ KIND, either express or implied. See the License for the
|
||||||
|
~ specific language governing permissions and limitations
|
||||||
|
~ under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<AnalyticsConfig>
|
||||||
|
<!--
|
||||||
|
Server URL of the remote DAS/BAM/CEP server used to collect statistics. Must
|
||||||
|
be specified in protocol://hostname:port/ format.
|
||||||
|
|
||||||
|
An event can also be published to multiple Receiver Groups each having 1 or more receivers. Receiver
|
||||||
|
Groups are delimited by curly braces whereas receivers are delimited by commas.
|
||||||
|
Ex - Multiple Receivers within a single group
|
||||||
|
tcp://localhost:7612/,tcp://localhost:7613/,tcp://localhost:7614/
|
||||||
|
Ex - Multiple Receiver Groups with two receivers each
|
||||||
|
{tcp://localhost:7612/,tcp://localhost:7613},{tcp://localhost:7712/,tcp://localhost:7713/}
|
||||||
|
-->
|
||||||
|
<ReceiverServerUrl>tcp://localhost:7615</ReceiverServerUrl>
|
||||||
|
<AdminUsername>testuser</AdminUsername>
|
||||||
|
<AdminPassword>testuserpwd</AdminPassword
|
||||||
|
</AnalyticsConfig>
|
Binary file not shown.
Loading…
Reference in new issue