INT-2049 added namespace support, also add SpEL support to CacheWritingMessageHandler and general cleanup

This commit is contained in:
David Turanski
2011-08-14 10:27:29 -04:00
committed by Mark Fisher
parent a6cda6d93d
commit b07708fd9f
28 changed files with 1499 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<beansProjectDescription>
<version>1</version>
<pluginVersion><![CDATA[2.7.1.201107082359-RELEASE]]></pluginVersion>
<configSuffixes>
<configSuffix><![CDATA[xml]]></configSuffix>
</configSuffixes>
<enableImports><![CDATA[false]]></enableImports>
<configs>
<config>src/test/java/org/springframework/integration/gemfire/inbound/GemfireInboundChannelAdapterTests-context.xml</config>
<config>src/test/java/org/springframework/integration/gemfire/outbound/GemfireOutboundChannelAdapterTests-context.xml</config>
</configs>
<configSets>
</configSets>
</beansProjectDescription>

View File

@@ -0,0 +1,68 @@
/*
* Copyright 2002-2011 the original author or authors.
*
* Licensed 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.springframework.integration.gemfire.config.xml;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.config.xml.AbstractChannelAdapterParser;
import org.springframework.integration.config.xml.IntegrationNamespaceUtils;
import org.springframework.util.StringUtils;
import org.w3c.dom.Element;
/**
* @author David Turanski
* @since 2.1
*
*/
public class GemfireInboundChannelAdapterParser extends AbstractChannelAdapterParser {
private static final String ERROR_CHANNEL_ATTRIBUTE = "error-channel";
private static final String OUTPUT_CHANNEL_PROPERTY = "outputChannel";
private static final String REGION_ATTRIBUTE = "region";
private static final String PAYLOAD_EXPRESSION_PROPERTY = "payloadExpression";
private static final String EXPRESSION_ATTRIBUTE = "expression";
private static final String GEMFIRE_INBOUND_CACHE_LISTENING_MESSAGE_PRODUCER = "org.springframework.integration.gemfire.inbound.CacheListeningMessageProducer";
private static final String SUPPORTED_EVENT_TYPES_PROPERTY = "supportedEventTypes";
private static final String CACHE_EVENTS_ATTRIBUTE = "cache-events";
/* (non-Javadoc)
* @see org.springframework.integration.config.xml.AbstractChannelAdapterParser#doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, java.lang.String)
*/
@Override
protected AbstractBeanDefinition doParse(Element element, ParserContext parserContext, String channelName) {
BeanDefinitionBuilder listeningMessageProducer = BeanDefinitionBuilder.genericBeanDefinition(GEMFIRE_INBOUND_CACHE_LISTENING_MESSAGE_PRODUCER);
IntegrationNamespaceUtils.setValueIfAttributeDefined(listeningMessageProducer, element, EXPRESSION_ATTRIBUTE,PAYLOAD_EXPRESSION_PROPERTY);
IntegrationNamespaceUtils.setValueIfAttributeDefined(listeningMessageProducer, element, CACHE_EVENTS_ATTRIBUTE, SUPPORTED_EVENT_TYPES_PROPERTY);
if (!StringUtils.hasText(REGION_ATTRIBUTE)){
parserContext.getReaderContext().error("'region' attribute is required.",element);
}
listeningMessageProducer.addConstructorArgReference(element.getAttribute(REGION_ATTRIBUTE));
listeningMessageProducer.addPropertyReference(OUTPUT_CHANNEL_PROPERTY, channelName);
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(listeningMessageProducer, element, ERROR_CHANNEL_ATTRIBUTE);
return listeningMessageProducer.getBeanDefinition();
}
}

View File

@@ -0,0 +1,32 @@
/*
* Copyright 2002-2011 the original author or authors.
*
* Licensed 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.springframework.integration.gemfire.config.xml;
import org.springframework.integration.config.xml.AbstractIntegrationNamespaceHandler;
/**
* @author David Turanski
*
*/
public class GemfireIntegrationNamespaceHandler extends AbstractIntegrationNamespaceHandler{
/* (non-Javadoc)
* @see org.springframework.beans.factory.xml.NamespaceHandler#init()
*/
public void init() {
registerBeanDefinitionParser("inbound-channel-adapter", new GemfireInboundChannelAdapterParser());
registerBeanDefinitionParser("outbound-channel-adapter", new GemfireOutboundChannelAdapterParser());
}
}

View File

@@ -0,0 +1,61 @@
/*
* Copyright 2002-2011 the original author or authors.
*
* Licensed 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.springframework.integration.gemfire.config.xml;
import java.util.Map;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.config.xml.AbstractOutboundChannelAdapterParser;
import org.springframework.util.StringUtils;
import org.springframework.util.xml.DomUtils;
import org.w3c.dom.Element;
/**
* @author David Turanski
* @since 2.1
*
*/
public class GemfireOutboundChannelAdapterParser extends AbstractOutboundChannelAdapterParser {
private static final String CACHE_ENTRIES_PROPERTY = "cacheEntries";
private static final String CACHE_ENTRIES_ELEMENT = "cache-entries";
private static final String REGION_ATTRIBUTE = "region";
private static final String GEMFIRE_OUTBOUND_CACHE_WRITING_MESSAGE_HANDLER = "org.springframework.integration.gemfire.outbound.CacheWritingMessageHandler";
/* (non-Javadoc)
* @see org.springframework.integration.config.xml.AbstractOutboundChannelAdapterParser#parseConsumer(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext)
*/
@Override
protected AbstractBeanDefinition parseConsumer(Element element, ParserContext parserContext) {
BeanDefinitionBuilder cacheWritingMessageHandler = BeanDefinitionBuilder.genericBeanDefinition(
GEMFIRE_OUTBOUND_CACHE_WRITING_MESSAGE_HANDLER);
if (!StringUtils.hasText(REGION_ATTRIBUTE)){
parserContext.getReaderContext().error("'region' attribute is required.",element);
}
cacheWritingMessageHandler.addConstructorArgReference(element.getAttribute(REGION_ATTRIBUTE));
Element cacheEntries = DomUtils.getChildElementByTagName(element,CACHE_ENTRIES_ELEMENT);
if (cacheEntries != null) {
Map<?,?> map = parserContext.getDelegate().parseMapElement(cacheEntries,cacheWritingMessageHandler.getBeanDefinition());
cacheWritingMessageHandler.addPropertyValue(CACHE_ENTRIES_PROPERTY, map);
}
return cacheWritingMessageHandler.getBeanDefinition();
}
}

View File

@@ -0,0 +1 @@
http\://www.springframework.org/schema/integration/gemfire=org.springframework.integration.gemfire.config.xml.GemfireIntegrationNamespaceHandler

View File

@@ -0,0 +1,2 @@
http\://www.springframework.org/schema/integration/scripting/spring-integration-gemfire.xsd=org/springframework/integration/gemfire/config/xml/spring-integration-gemfire-2.1.xsd
http\://www.springframework.org/schema/integration/scripting/spring-integration-gemfire-2.1.xsd=org/springframework/integration/gemfire/config/xml/spring-integration-gemfire-2.1.xsd

View File

@@ -0,0 +1,4 @@
# Tooling related information for the integration gemfire namespace
http\://www.springframework.org/schema/integration/gemfire@name=integration gemfire Namespace
http\://www.springframework.org/schema/integration/gemfire@prefix=int-gfe
http\://www.springframework.org/schema/integration@icon=org/springframework/integration/gemfire/config/xml/spring-integration-gemfire.gif

View File

@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.springframework.org/schema/integration/gemfire"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:tool="http://www.springframework.org/schema/tool"
xmlns:integration="http://www.springframework.org/schema/integration"
targetNamespace="http://www.springframework.org/schema/integration/gemfire"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:import namespace="http://www.springframework.org/schema/beans"
schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"/>
<xsd:import namespace="http://www.springframework.org/schema/tool" />
<xsd:import namespace="http://www.springframework.org/schema/integration"
schemaLocation="http://www.springframework.org/schema/integration/spring-integration-2.1.xsd" />
<xsd:annotation>
<xsd:documentation><![CDATA[
Defines the core configuration elements for Spring Integration Gemfire Support.
]]></xsd:documentation>
</xsd:annotation>
<xsd:element name="inbound-channel-adapter">
<xsd:annotation>
<xsd:documentation>
Configures an inbound Channel Adapter backed by a
Gemfire CacheListener
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string" use="optional" />
<xsd:attribute name="channel" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:appinfo>
<tool:annotation kind="ref">
<tool:expected-type
type="org.springframework.integration.core.MessageChannel" />
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="error-channel" type="xsd:string"
use="optional">
<xsd:annotation>
<xsd:appinfo>
<tool:annotation kind="ref">
<tool:expected-type
type="org.springframework.integration.core.MessageChannel" />
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="region" type="xsd:string" use="required">
<xsd:annotation>
<xsd:appinfo>
<tool:annotation kind="ref">
<tool:expected-type type="com.gemstone.gemfire.cache.Region" />
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="expression" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
Expression to be evaluated to produce a value for the payload.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="cache-events" type="xsd:string"
use="optional" default="CREATED,UPDATED">
<xsd:annotation>
<xsd:documentation><![CDATA[
Enabled cache event types
]]></xsd:documentation>
<xsd:appinfo>
<tool:annotation kind="value">
<tool:expected-type
type="org.springframework.integration.gemfire.inbound.EventType" />
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="outbound-channel-adapter">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Configures an outbound Channel Adapter that writes Message payloads to a
File.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="cache-entries" type="beans:mapType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
A map of SpEL expressions used to create cache entries. If not provided, payload must be a Map
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="optional" />
<xsd:attribute name="channel" type="xsd:string">
<xsd:annotation>
<xsd:appinfo>
<tool:annotation kind="ref">
<tool:expected-type
type="org.springframework.integration.core.MessageChannel" />
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="region" type="xsd:string" use="required">
<xsd:annotation>
<xsd:appinfo>
<tool:annotation kind="ref">
<tool:expected-type type="com.gemstone.gemfire.cache.Region" />
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="order" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
Specifies the order for invocation when this endpoint is connected as a
subscriber to a SubscribableChannel.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:schema>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:gfe="http://www.springframework.org/schema/gemfire"
xmlns:int-gfe="http://www.springframework.org/schema/integration/gemfire"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/integration/gemfire http://www.springframework.org/schema/integration/scripting/spring-integration-gemfire.xsd
http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<gfe:cache id="gemfire-cache-2"/>
<gfe:replicated-region id="region1" cache-ref="gemfire-cache-2"/>
<gfe:replicated-region id="region2" cache-ref="gemfire-cache-2"/>
<gfe:replicated-region id="region3" cache-ref="gemfire-cache-2"/>
<int-gfe:inbound-channel-adapter id="channel1" region="region1" cache-events="CREATED" expression="newValue"/>
<int-gfe:inbound-channel-adapter id="channel2" region="region2"/>
<int-gfe:inbound-channel-adapter id="channel3" region="region3" error-channel="errorChannel"/>
</beans>

View File

@@ -0,0 +1,118 @@
/*
* Copyright 2002-2011 the original author or authors.
*
* Licensed 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.springframework.integration.gemfire.inbound;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.Message;
import org.springframework.integration.MessagingException;
import org.springframework.integration.core.MessageHandler;
import org.springframework.integration.core.SubscribableChannel;
import org.springframework.integration.message.ErrorMessage;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.gemstone.gemfire.cache.EntryEvent;
import com.gemstone.gemfire.internal.cache.DistributedRegion;
/**
* @author David Turanski
* @since 2.1
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class GemfireInboundChannelAdapterTests {
@Autowired
SubscribableChannel channel1;
@Autowired
SubscribableChannel channel2;
@Autowired
SubscribableChannel channel3;
@Autowired
SubscribableChannel errorChannel;
@Autowired
DistributedRegion region1;
@Autowired
DistributedRegion region2;
@Autowired
DistributedRegion region3;
@Test
public void testGemfireInboundChannelAdapterWithExpression() {
EventHandler eventHandler1 = new EventHandler();
channel1.subscribe(eventHandler1);
region1.put("payload", "payload");
assertEquals("payload", eventHandler1.event);
}
@Test
public void testGemfireInboundChannelAdapterDefault() {
EventHandler eventHandler2 = new EventHandler();
channel2.subscribe(eventHandler2);
region2.put("payload", "payload");
assertTrue(eventHandler2.event instanceof EntryEvent);
EntryEvent<?,?> event = (EntryEvent<?,?>)eventHandler2.event;
assertEquals("payload", event.getNewValue());
}
@Test
public void testErrorChannel() {
channel3.subscribe(new MessageHandler() {
public void handleMessage(Message<?> message) throws MessagingException {
throw new MessagingException("got an error");
}
});
ErrorHandler errorHandler = new ErrorHandler();
errorChannel.subscribe(errorHandler);
region3.put("payload", "payload");
assertEquals(1, errorHandler.count);
}
static class ErrorHandler implements MessageHandler {
public int count = 0;
public void handleMessage(Message<?> message) throws MessagingException {
assertTrue(message instanceof ErrorMessage);
count++;
}
}
static class EventHandler implements MessageHandler {
public Object event = null;
public void handleMessage(Message<?> message) throws MessagingException {
event = message.getPayload();
}
}
}

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:gfe="http://www.springframework.org/schema/gemfire" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="org.springframework.integration.gemfire.inbound.cq.client"/>
<context:property-placeholder location="org/springframework/integration/gemfire/inbound/cq/common.properties"/>
<!--<util:properties id="props" location="org/springframework/integration/gemfire/inbound/cq/gfe-cache.properties"/>-->
<int:channel id="cqIn"/>
<int:service-activator input-channel="cqIn" ref="cqServiceActivator"/>
</beans>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:gfe="http://www.springframework.org/schema/gemfire" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- infrastrcture-->
<context:component-scan base-package="org.springframework.integration.gemfire.inbound.cq.server"/>
<context:property-placeholder location="org/springframework/integration/gemfire/inbound/cq/common.properties"/>
<!-- setup the cache-->
<util:properties id="props" location="org/springframework/integration/gemfire/inbound/cq/gfe-cache.properties"/>
<gfe:cache properties-ref="props" id="c"/>
<!-- tx manager-->
<gfe:transaction-manager cache-ref="c"/>
<!-- region -->
<gfe:replicated-region id="r" name="${region-name}" cache-ref="c" />
</beans>

View File

@@ -0,0 +1,5 @@
host=127.0.0.1
port=55221
region-name=people
region-query=select * from /people
correlation-header=time

View File

@@ -0,0 +1,3 @@
log-level=warning
name=Spring Integration GemFire World
bind-address=127.0.0.1

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int-gfe="http://www.springframework.org/schema/integration/gemfire"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:gfe="http://www.springframework.org/schema/gemfire"
xsi:schemaLocation="http://www.springframework.org/schema/integration/gemfire http://www.springframework.org/schema/integration/scripting/spring-integration-gemfire.xsd
http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire-1.1.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<gfe:cache />
<gfe:replicated-region id="region1"/>
<gfe:replicated-region id="region2"/>
<int-gfe:outbound-channel-adapter id="cacheChannel1" region="region1"/>
<int-gfe:outbound-channel-adapter id="cacheChannel2" region="region2" order="19">
<int-gfe:cache-entries>
<entry key="payload.toUpperCase()" value="payload.toLowerCase()"/>
<entry key="'foo'" value="'bar'"/>
</int-gfe:cache-entries>
</int-gfe:outbound-channel-adapter>
</beans>

View File

@@ -0,0 +1,78 @@
/*
* Copyright 2002-2011 the original author or authors.
*
* Licensed 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.springframework.integration.gemfire.outbound;
import static org.junit.Assert.assertEquals;
import java.util.HashMap;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.Message;
import org.springframework.integration.MessageChannel;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.gemstone.gemfire.internal.cache.DistributedRegion;
/**
* @author David Turanski
* @since 2.1
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class GemfireOutboundChannelAdapterTests {
@Autowired
MessageChannel cacheChannel1;
@Autowired
DistributedRegion region1;
@Autowired
MessageChannel cacheChannel2;
@Autowired
DistributedRegion region2;
@Before
public void setUp() {
region1.clear();
region2.clear();
}
@Test
public void testWriteMapPayload() {
Map<String,String> map = new HashMap<String,String>();
map.put("foo","bar");
Message<?> message = MessageBuilder.withPayload(map).build();
cacheChannel1.send(message);
assertEquals(1,region1.size());
assertEquals("bar",region1.get("foo"));
}
@Test
public void testWriteExpressions() {
Message<?> message = MessageBuilder.withPayload("Hello").build();
cacheChannel2.send(message);
assertEquals(2,region2.size());
assertEquals("hello",region2.get("HELLO"));
assertEquals("bar",region2.get("foo"));
}
}

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:gfe="http://www.springframework.org/schema/gemfire" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="org/springframework/integration/gemfire/inbound/cq/common.properties"/>
<context:component-scan base-package="org.springframework.integration.gemfire.store.messagegroupstore"/>
<int:channel id="i"/>
<int:aggregator release-strategy="releaseStrategy" correlation-strategy="correlationStrategy" message-store="gemfireMessageGroupStore" input-channel="i" output-channel="o" />
<int:channel id="o"/>
<int:service-activator input-channel="o" ref="messageGroupStoreActivator" />
<util:properties id="props" location="org/springframework/integration/gemfire/inbound/cq/gfe-cache.properties"/>
<gfe:cache properties-ref="props" id="c"/>
<gfe:transaction-manager cache-ref="c"/>
<gfe:replicated-region id="unmarkedRegion" cache-ref="c"/>
<gfe:replicated-region id="markedRegion" cache-ref="c"/>
<gfe:replicated-region id="messageGroupRegion" cache-ref="c"/>
</beans>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %-5p: %c - %m%n" />
</layout>
</appender>
<!-- Loggers -->
<logger name="org.springframework">
<level value="warn" />
</logger>
<logger name="org.springframework.integration">
<level value="warn" />
</logger>
<!-- Root Logger -->
<root>
<priority value="info" />
<appender-ref ref="console" />
</root>
</log4j:configuration>

View File

@@ -0,0 +1,454 @@
2011-08-12T15:07:42,INFO,EventManagerStartedEvent,
2011-08-12T15:07:43,INFO,LicenseActivatedEvent,expirationDate=unset|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:07:43,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:07:43|state=on
2011-08-12T15:07:43,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:07:48,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:07:48|state=off
2011-08-12T15:09:05,INFO,EventManagerStartedEvent,
2011-08-12T15:09:05,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:09:05,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:09:05|state=on
2011-08-12T15:09:05,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:09:11,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:09:11|state=off
2011-08-12T15:10:08,INFO,EventManagerStartedEvent,
2011-08-12T15:10:08,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:10:08,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:10:08|state=on
2011-08-12T15:10:08,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:10:13,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:10:13|state=off
2011-08-12T15:15:00,INFO,EventManagerStartedEvent,
2011-08-12T15:15:00,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:15:00,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:15:00|state=on
2011-08-12T15:15:00,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:15:05,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:15:05|state=off
2011-08-12T15:41:16,INFO,EventManagerStartedEvent,
2011-08-12T15:41:16,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:41:16,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:41:16|state=on
2011-08-12T15:41:16,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:41:21,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:41:21|state=off
2011-08-12T15:41:56,INFO,EventManagerStartedEvent,
2011-08-12T15:41:56,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:41:56,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:41:56|state=on
2011-08-12T15:41:56,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:42:02,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:42:02|state=off
2011-08-12T15:47:32,INFO,EventManagerStartedEvent,
2011-08-12T15:47:32,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:47:32,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:47:32|state=on
2011-08-12T15:47:32,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:47:38,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:47:38|state=off
2011-08-12T15:47:57,INFO,EventManagerStartedEvent,
2011-08-12T15:47:57,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:47:57,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:47:57|state=on
2011-08-12T15:47:57,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:48:03,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:48:03|state=off
2011-08-12T15:48:22,INFO,EventManagerStartedEvent,
2011-08-12T15:48:23,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:48:23,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:48:23|state=on
2011-08-12T15:48:23,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:48:28,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:48:28|state=off
2011-08-12T15:50:29,INFO,EventManagerStartedEvent,
2011-08-12T15:50:29,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:50:29,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:50:29|state=on
2011-08-12T15:50:29,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:50:34,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:50:34|state=off
2011-08-12T15:51:10,INFO,EventManagerStartedEvent,
2011-08-12T15:51:10,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:51:10,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:51:10|state=on
2011-08-12T15:51:10,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:51:16,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:51:16|state=off
2011-08-12T15:54:41,INFO,EventManagerStartedEvent,
2011-08-12T15:54:42,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:54:42,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:54:42|state=on
2011-08-12T15:54:42,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:54:47,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:54:47|state=off
2011-08-12T15:55:55,INFO,EventManagerStartedEvent,
2011-08-12T15:55:55,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:55:55,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:55:55|state=on
2011-08-12T15:55:55,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:56:00,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:56:00|state=off
2011-08-12T15:57:54,INFO,EventManagerStartedEvent,
2011-08-12T15:57:55,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:57:55,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:57:55|state=on
2011-08-12T15:57:55,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:58:00,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:58:00|state=off
2011-08-12T15:58:27,INFO,EventManagerStartedEvent,
2011-08-12T15:58:28,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T15:58:28,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:58:28|state=on
2011-08-12T15:58:28,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T15:58:33,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T15:58:33|state=off
2011-08-12T16:01:11,INFO,EventManagerStartedEvent,
2011-08-12T16:01:11,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:01:11,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:01:11|state=on
2011-08-12T16:01:11,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:01:17,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:01:17|state=off
2011-08-12T16:02:07,INFO,EventManagerStartedEvent,
2011-08-12T16:02:07,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:02:07,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:02:07|state=on
2011-08-12T16:02:07,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:02:13,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:02:13|state=off
2011-08-12T16:02:50,INFO,EventManagerStartedEvent,
2011-08-12T16:02:50,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:02:50,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:02:50|state=on
2011-08-12T16:02:50,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:02:56,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:02:56|state=off
2011-08-12T16:03:50,INFO,EventManagerStartedEvent,
2011-08-12T16:03:50,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:03:50,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:03:50|state=on
2011-08-12T16:03:50,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:03:56,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:03:56|state=off
2011-08-12T16:05:50,INFO,EventManagerStartedEvent,
2011-08-12T16:05:50,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:05:50,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:05:50|state=on
2011-08-12T16:05:50,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:05:55,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:05:55|state=off
2011-08-12T16:08:42,INFO,EventManagerStartedEvent,
2011-08-12T16:08:43,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:08:43,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:08:43|state=on
2011-08-12T16:08:43,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:08:48,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:08:48|state=off
2011-08-12T16:10:04,INFO,EventManagerStartedEvent,
2011-08-12T16:10:04,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:10:04,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:10:04|state=on
2011-08-12T16:10:04,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:10:10,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:10:10|state=off
2011-08-12T16:15:58,INFO,EventManagerStartedEvent,
2011-08-12T16:15:59,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:15:59,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:15:59|state=on
2011-08-12T16:15:59,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:16:04,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:16:04|state=off
2011-08-12T16:17:51,INFO,EventManagerStartedEvent,
2011-08-12T16:17:51,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:17:51,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:17:51|state=on
2011-08-12T16:17:51,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:17:56,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:17:56|state=off
2011-08-12T16:20:23,INFO,EventManagerStartedEvent,
2011-08-12T16:20:23,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:20:23,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:20:23|state=on
2011-08-12T16:20:23,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:20:28,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:20:28|state=off
2011-08-12T16:22:31,INFO,EventManagerStartedEvent,
2011-08-12T16:22:31,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:22:31,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:22:31|state=on
2011-08-12T16:22:31,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:22:37,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:22:37|state=off
2011-08-12T16:24:34,INFO,EventManagerStartedEvent,
2011-08-12T16:24:34,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:24:34,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:24:34|state=on
2011-08-12T16:24:34,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:24:40,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:24:40|state=off
2011-08-12T16:26:01,INFO,EventManagerStartedEvent,
2011-08-12T16:26:01,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:26:01,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:26:01|state=on
2011-08-12T16:26:01,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:26:06,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:26:06|state=off
2011-08-12T16:27:06,INFO,EventManagerStartedEvent,
2011-08-12T16:27:06,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:27:06,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:27:06|state=on
2011-08-12T16:27:06,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:27:12,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:27:12|state=off
2011-08-12T16:28:32,INFO,EventManagerStartedEvent,
2011-08-12T16:28:32,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:28:32,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:28:32|state=on
2011-08-12T16:28:32,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:30:02,INFO,EventManagerStartedEvent,
2011-08-12T16:30:03,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:30:03,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:30:03|state=on
2011-08-12T16:30:03,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:30:50,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:30:50|state=off
2011-08-12T16:36:32,INFO,EventManagerStartedEvent,
2011-08-12T16:36:32,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:36:32,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:36:32|state=on
2011-08-12T16:36:32,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:36:38,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:36:38|state=off
2011-08-12T16:39:40,INFO,EventManagerStartedEvent,
2011-08-12T16:39:41,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:39:41,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:39:41|state=on
2011-08-12T16:39:41,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:39:46,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:39:46|state=off
2011-08-12T16:40:15,INFO,EventManagerStartedEvent,
2011-08-12T16:40:16,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:40:16,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:40:16|state=on
2011-08-12T16:40:16,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:40:21,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:40:21|state=off
2011-08-12T16:42:53,INFO,EventManagerStartedEvent,
2011-08-12T16:42:54,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:42:54,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:42:54|state=on
2011-08-12T16:42:54,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:42:59,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:42:59|state=off
2011-08-12T16:47:44,INFO,EventManagerStartedEvent,
2011-08-12T16:47:44,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:47:44,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:47:44|state=on
2011-08-12T16:47:44,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:47:50,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:47:50|state=off
2011-08-12T16:50:18,INFO,EventManagerStartedEvent,
2011-08-12T16:50:19,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:50:19,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:50:19|state=on
2011-08-12T16:50:19,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:50:24,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:50:24|state=off
2011-08-12T16:53:12,INFO,EventManagerStartedEvent,
2011-08-12T16:53:12,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:53:12,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:53:12|state=on
2011-08-12T16:53:12,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:53:18,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:53:18|state=off
2011-08-12T16:56:14,INFO,EventManagerStartedEvent,
2011-08-12T16:56:14,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:56:14,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:56:14|state=on
2011-08-12T16:56:14,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:56:20,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:56:20|state=off
2011-08-12T16:57:17,INFO,EventManagerStartedEvent,
2011-08-12T16:57:17,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T16:57:17,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:57:17|state=on
2011-08-12T16:57:17,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T16:57:23,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T16:57:23|state=off
2011-08-12T17:01:45,INFO,EventManagerStartedEvent,
2011-08-12T17:01:45,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:01:45,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:01:45|state=on
2011-08-12T17:01:45,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:01:51,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:01:51|state=off
2011-08-12T17:05:39,INFO,EventManagerStartedEvent,
2011-08-12T17:05:39,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:05:39,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:05:39|state=on
2011-08-12T17:05:39,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:05:45,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:05:45|state=off
2011-08-12T17:06:25,INFO,EventManagerStartedEvent,
2011-08-12T17:06:25,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:06:25,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:06:25|state=on
2011-08-12T17:06:25,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:06:30,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:06:30|state=off
2011-08-12T17:10:20,INFO,EventManagerStartedEvent,
2011-08-12T17:10:20,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:10:20,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:10:20|state=on
2011-08-12T17:10:20,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:10:25,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:10:25|state=off
2011-08-12T17:10:41,INFO,EventManagerStartedEvent,
2011-08-12T17:10:41,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:10:41,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:10:41|state=on
2011-08-12T17:10:41,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:10:47,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:10:47|state=off
2011-08-12T17:14:16,INFO,EventManagerStartedEvent,
2011-08-12T17:14:16,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:14:16,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:14:16|state=on
2011-08-12T17:14:16,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:14:22,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:14:22|state=off
2011-08-12T17:17:49,INFO,EventManagerStartedEvent,
2011-08-12T17:17:49,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:17:49,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:17:49|state=on
2011-08-12T17:17:49,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:17:55,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:17:55|state=off
2011-08-12T17:18:50,INFO,EventManagerStartedEvent,
2011-08-12T17:18:50,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:18:51,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:18:51|state=on
2011-08-12T17:18:51,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:18:56,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:18:56|state=off
2011-08-12T17:19:46,INFO,EventManagerStartedEvent,
2011-08-12T17:19:46,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:19:46,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:19:46|state=on
2011-08-12T17:19:46,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:19:51,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:19:51|state=off
2011-08-12T17:21:09,INFO,EventManagerStartedEvent,
2011-08-12T17:21:09,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:21:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:21:09|state=on
2011-08-12T17:21:09,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:21:14,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:21:14|state=off
2011-08-12T17:22:09,INFO,EventManagerStartedEvent,
2011-08-12T17:22:09,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:22:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:22:09|state=on
2011-08-12T17:22:09,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:22:15,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:22:15|state=off
2011-08-12T17:25:04,INFO,EventManagerStartedEvent,
2011-08-12T17:25:04,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-12T17:25:04,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:25:04|state=on
2011-08-12T17:25:04,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-12T17:25:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-12T17:25:09|state=off
2011-08-13T07:46:39,INFO,EventManagerStartedEvent,
2011-08-13T07:46:39,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T07:46:39,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:46:39|state=on
2011-08-13T07:46:39,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T07:46:46,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:46:46|state=off
2011-08-13T07:52:13,INFO,EventManagerStartedEvent,
2011-08-13T07:52:13,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T07:52:13,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:52:13|state=on
2011-08-13T07:52:13,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T07:52:18,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:52:18|state=off
2011-08-13T07:53:22,INFO,EventManagerStartedEvent,
2011-08-13T07:53:23,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T07:53:23,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:53:23|state=on
2011-08-13T07:53:23,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T07:53:28,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:53:28|state=off
2011-08-13T07:54:44,INFO,EventManagerStartedEvent,
2011-08-13T07:54:44,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T07:54:44,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:54:44|state=on
2011-08-13T07:54:44,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T07:54:49,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:54:49|state=off
2011-08-13T07:57:11,INFO,EventManagerStartedEvent,
2011-08-13T07:57:11,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T07:57:11,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:57:11|state=on
2011-08-13T07:57:11,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T07:57:18,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:57:18|state=off
2011-08-13T07:57:35,INFO,EventManagerStartedEvent,
2011-08-13T07:57:35,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T07:57:35,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:57:35|state=on
2011-08-13T07:57:35,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T07:57:42,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T07:57:42|state=off
2011-08-13T09:02:09,INFO,EventManagerStartedEvent,
2011-08-13T09:02:09,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:02:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:02:09|state=on
2011-08-13T09:02:09,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:02:15,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:02:15|state=off
2011-08-13T09:09:22,INFO,EventManagerStartedEvent,
2011-08-13T09:09:22,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:09:22,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:09:22|state=on
2011-08-13T09:09:22,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:09:28,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:09:28|state=off
2011-08-13T09:13:03,INFO,EventManagerStartedEvent,
2011-08-13T09:13:03,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:13:03,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:13:03|state=on
2011-08-13T09:13:03,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:13:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:13:09|state=off
2011-08-13T09:14:15,INFO,EventManagerStartedEvent,
2011-08-13T09:14:15,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:14:15,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:14:15|state=on
2011-08-13T09:14:15,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:14:21,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:14:21|state=off
2011-08-13T09:31:32,INFO,EventManagerStartedEvent,
2011-08-13T09:31:32,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:31:32,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:31:32|state=on
2011-08-13T09:31:32,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:31:40,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:31:40|state=off
2011-08-13T09:34:12,INFO,EventManagerStartedEvent,
2011-08-13T09:34:13,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:34:13,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:34:13|state=on
2011-08-13T09:34:13,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:34:21,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:34:21|state=off
2011-08-13T09:35:59,INFO,EventManagerStartedEvent,
2011-08-13T09:35:59,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:35:59,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:35:59|state=on
2011-08-13T09:35:59,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:36:05,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:36:05|state=off
2011-08-13T09:37:00,INFO,EventManagerStartedEvent,
2011-08-13T09:37:00,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:37:00,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:37:00|state=on
2011-08-13T09:37:00,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:37:06,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:37:06|state=off
2011-08-13T09:37:32,INFO,EventManagerStartedEvent,
2011-08-13T09:37:33,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:37:33,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:37:33|state=on
2011-08-13T09:37:33,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:37:38,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:37:38|state=off
2011-08-13T09:39:09,INFO,EventManagerStartedEvent,
2011-08-13T09:39:09,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:39:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:39:09|state=on
2011-08-13T09:39:09,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:39:14,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:39:14|state=off
2011-08-13T09:39:55,INFO,EventManagerStartedEvent,
2011-08-13T09:39:55,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:39:55,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:39:55|state=on
2011-08-13T09:39:55,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:40:00,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:40:00|state=off
2011-08-13T09:40:22,INFO,EventManagerStartedEvent,
2011-08-13T09:40:23,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:40:23,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:40:23|state=on
2011-08-13T09:40:23,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:40:28,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:40:28|state=off
2011-08-13T09:40:28,INFO,EventManagerStartedEvent,
2011-08-13T09:40:28,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:40:28,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:40:28|state=on
2011-08-13T09:40:28,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:40:32,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:40:32|state=off
2011-08-13T09:46:53,INFO,EventManagerStartedEvent,
2011-08-13T09:46:53,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:46:53,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:46:53|state=on
2011-08-13T09:46:53,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:46:58,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:46:58|state=off
2011-08-13T09:47:06,INFO,EventManagerStartedEvent,
2011-08-13T09:47:06,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:47:07,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:47:06|state=on
2011-08-13T09:47:07,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:47:12,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:47:12|state=off
2011-08-13T09:48:08,INFO,EventManagerStartedEvent,
2011-08-13T09:48:09,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:48:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:48:09|state=on
2011-08-13T09:48:09,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:48:14,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:48:14|state=off
2011-08-13T09:50:02,INFO,EventManagerStartedEvent,
2011-08-13T09:50:02,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:50:02,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:50:02|state=on
2011-08-13T09:50:02,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:50:08,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:50:08|state=off
2011-08-13T09:52:56,INFO,EventManagerStartedEvent,
2011-08-13T09:52:57,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:52:57,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:52:57|state=on
2011-08-13T09:52:57,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:53:04,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:53:04|state=off
2011-08-13T09:53:58,INFO,EventManagerStartedEvent,
2011-08-13T09:53:58,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:53:58,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:53:58|state=on
2011-08-13T09:53:58,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:54:03,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:54:03|state=off
2011-08-13T09:55:01,INFO,EventManagerStartedEvent,
2011-08-13T09:55:02,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:55:02,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:55:02|state=on
2011-08-13T09:55:02,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:55:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:55:09|state=off
2011-08-13T09:58:52,INFO,EventManagerStartedEvent,
2011-08-13T09:58:52,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T09:58:52,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:58:52|state=on
2011-08-13T09:58:52,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T09:58:59,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T09:58:59|state=off
2011-08-13T10:03:09,INFO,EventManagerStartedEvent,
2011-08-13T10:03:09,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:03:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:03:09|state=on
2011-08-13T10:03:09,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:03:16,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:03:16|state=off
2011-08-13T10:06:46,INFO,EventManagerStartedEvent,
2011-08-13T10:06:46,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:06:46,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:06:46|state=on
2011-08-13T10:06:46,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:06:53,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:06:53|state=off
2011-08-13T10:08:03,INFO,EventManagerStartedEvent,
2011-08-13T10:08:03,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:08:03,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:08:03|state=on
2011-08-13T10:08:03,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:08:10,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:08:10|state=off
2011-08-13T10:09:19,INFO,EventManagerStartedEvent,
2011-08-13T10:09:19,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:09:19,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:09:19|state=on
2011-08-13T10:09:19,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:09:27,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:09:27|state=off
2011-08-13T10:12:02,INFO,EventManagerStartedEvent,
2011-08-13T10:12:02,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:12:02,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:12:02|state=on
2011-08-13T10:12:02,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:12:09,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:12:09|state=off
2011-08-13T10:12:21,INFO,EventManagerStartedEvent,
2011-08-13T10:12:21,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:12:21,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:12:21|state=on
2011-08-13T10:12:21,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:12:27,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:12:27|state=off
2011-08-13T10:12:50,INFO,EventManagerStartedEvent,
2011-08-13T10:12:50,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:12:50,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:12:50|state=on
2011-08-13T10:12:50,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:12:57,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:12:57|state=off
2011-08-13T10:14:20,INFO,EventManagerStartedEvent,
2011-08-13T10:14:20,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:14:20,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:14:20|state=on
2011-08-13T10:14:20,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:14:27,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:14:27|state=off
2011-08-13T10:15:28,INFO,EventManagerStartedEvent,
2011-08-13T10:15:29,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:15:29,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:15:29|state=on
2011-08-13T10:15:29,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:15:36,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:15:36|state=off
2011-08-13T10:17:15,INFO,EventManagerStartedEvent,
2011-08-13T10:17:15,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:17:15,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:17:15|state=on
2011-08-13T10:17:15,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:17:21,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:17:21|state=off
2011-08-13T10:19:33,INFO,EventManagerStartedEvent,
2011-08-13T10:19:33,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:19:33,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:19:33|state=on
2011-08-13T10:19:33,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:19:39,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:19:39|state=off
2011-08-13T10:20:37,INFO,EventManagerStartedEvent,
2011-08-13T10:20:37,INFO,LicenseActivatedEvent,expirationDate=2011-10-11T15:07:43|expirationType=floating-eval|serialNumber=G04E0-MFK43-M8E1H-0ZARK-AV25A|allowedVersions=vf.gf.dmn-6|available=60
2011-08-13T10:20:37,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:20:37|state=on
2011-08-13T10:20:37,INFO,UpdatedLicenseStateEvent,enforcement=soft|licenseType=default|expirationDate=2011-10-11T15:07:43|used=1|available=60|addons=vf.gf.evaluation
2011-08-13T10:20:44,INFO,ComponentStateChangeEvent,instanceIdType=self|instanceId=self|timestamp=2011-08-13T10:20:44|state=off

View File

@@ -0,0 +1,3 @@
# vf.gf.dmn written Aug 13, 2011 10:20:44 AM EDT
evalStart.G04E0-MFK43-M8E1H-0ZARK-AV25A=1313176063089
instance.self=self,off,1313245244799

View File

@@ -0,0 +1,82 @@
package org.springframework.integration.test.support;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.integration.Message;
import org.springframework.integration.MessageChannel;
import org.springframework.integration.core.PollableChannel;
import org.springframework.integration.core.SubscribableChannel;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Convenience class for testing Spring Integration request-response message scenarios. Users
* create subclasses to execute on or more {@link RequestResponseScenario} tests. each scenario defines:
* <ul>
* <li>An inputChannelName</li>
* <li>An outputChannelName</li>
* <li>A payload or message to send as a request message on the inputChannel</li>
* <li>A handler to validate the response received on the outputChannel</li>
* </ul>
* @author David Turanski
*/
@RunWith(SpringJUnit4ClassRunner.class)
public abstract class AbstractRequestResponseScenarioTest {
private List<RequestResponseScenario> scenarios = null;
@Autowired
private ApplicationContext applicationContext;
@Before
public void setUp(){
scenarios = defineRequestResponseScenarios();
}
/**
* Execute each scenario. Instantiate the message channels, send the request message on the
* input channel and invoke the validator on the response received on the output channel.
* This can handle subscribable or pollable output channels.
*/
@Test
public void testRequestResponseScenarios(){
int i = 1;
for (RequestResponseScenario scenario: scenarios){
String name = scenario.getName() == null? "scenario-"+(i++) : scenario.getName();
scenario.init();
MessageChannel inputChannel = applicationContext.getBean(scenario.getInputChannelName(),MessageChannel.class);
MessageChannel outputChannel = applicationContext.getBean(scenario.getOutputChannelName(),MessageChannel.class);
if (outputChannel instanceof SubscribableChannel){
((SubscribableChannel) outputChannel).subscribe(scenario.getResponseValidator());
}
assertTrue(name + ": message not sent on " + scenario.getInputChannelName()
, inputChannel.send(scenario.getMessage()));
if (outputChannel instanceof PollableChannel){
Message<?> response = ((PollableChannel) outputChannel).receive(10000);
assertNotNull(name + ": receive timeout on " + scenario.getOutputChannelName(),response);
if (scenario.getResponseValidator() instanceof PayloadValidator){
scenario.getResponseValidator().validateResponse(response.getPayload());
} else {
scenario.getResponseValidator().validateResponse(response);
}
}
}
}
/**
* Implement this method to define RequestResponse scenarios
* @return - A List of {@link RequestResponseScenario}
*/
protected abstract List<RequestResponseScenario> defineRequestResponseScenarios();
}

View File

@@ -0,0 +1,27 @@
package org.springframework.integration.test.support;
import org.springframework.integration.Message;
import org.springframework.integration.MessagingException;
import org.springframework.integration.core.MessageHandler;
/**
* The base class for response validators used for {@link RequestResponseScenario}s
* @author David Turanski
*
*/
public abstract class AbstractResponseValidator implements MessageHandler {
public void handleMessage(Message<?> message) throws MessagingException {
validateResponse(extractPayload()? message.getPayload(): message );
}
/**
* Implement this method to validate the response (Message or Payload)
* @param response
*/
protected abstract void validateResponse(Object response);
/**
* If true will extract the payload as the parameter for validateResponse()
* @return true to extract the payload; false to process the message.
*/
protected abstract boolean extractPayload();
}

View File

@@ -0,0 +1,24 @@
package org.springframework.integration.test.support;
import org.springframework.integration.Message;
/**
* Validate a message. Create an anonymous instance or subclass to
* implement the validateMessage() method
* @author David Turanski
*
*/
public abstract class MessageValidator extends AbstractResponseValidator {
protected final boolean extractPayload(){
return false;
}
protected final void validateResponse(Object response){
validateMessage((Message<?>) response);
}
/**
* Implement this method to validate the message
* @param message
*/
protected abstract void validateMessage(Message<?> message);
}

View File

@@ -0,0 +1,12 @@
package org.springframework.integration.test.support;
/**
* Validate a message payload. Create an anonymous instance or subclass this
* to validate a response payload.
* @author David Turanski
*
*/
public abstract class PayloadValidator extends AbstractResponseValidator {
protected final boolean extractPayload(){
return true;
}
}

View File

@@ -0,0 +1,124 @@
package org.springframework.integration.test.support;
import org.springframework.integration.Message;
import org.springframework.integration.message.GenericMessage;
import org.springframework.util.Assert;
/**
* Defines a Spring Integration request response test scenario. All setter methods may
* be chained.
* @author David Turanski
*
*/
public class RequestResponseScenario {
private final String inputChannelName;
private final String outputChannelName;
private Object payload;
private Message<?> message;
private AbstractResponseValidator responseValidator;
private String name;
protected Message<? extends Object> getMessage(){
if (message == null){
return new GenericMessage<Object>(this.payload);
} else {
return message;
}
}
/**
* Create an instance
* @param inputChannelName the input channel name
* @param outputChannelName the output channel name
*/
public RequestResponseScenario(String inputChannelName, String outputChannelName){
this.inputChannelName = inputChannelName;
this.outputChannelName = outputChannelName;
}
/**
*
* @return the input channel name
*/
public String getInputChannelName() {
return inputChannelName;
}
/**
*
* @return the output channel name
*/
public String getOutputChannelName() {
return outputChannelName;
}
/**
*
* @return the request message payload
*/
public Object getPayload() {
return payload;
}
/**
* set the payload of the request message
* @param payload
* @return this
*/
public RequestResponseScenario setPayload(Object payload) {
this.payload = payload;
return this;
}
/**
*
* @return the scenario name
*/
public String getName() {
return name;
}
/**
* set the scenario name (optional)
* @param name the name
* @return this
*/
public RequestResponseScenario setName(String name) {
this.name = name;
return this;
}
/**
*
* @return the response validator
* @see AbstractResponseValidator
*/
public AbstractResponseValidator getResponseValidator(){
return responseValidator;
}
/**
* Set the response validator
* @see AbstractResponseValidator
* @param responseValidator
* @return
*/
public RequestResponseScenario setResponseValidator(AbstractResponseValidator responseValidator) {
this.responseValidator = responseValidator;
return this;
}
/**
* Set the request message (as an alternative to setPayload())
* @param message
* @return
*/
public RequestResponseScenario setMessage(Message<?> message) {
this.message = message;
return this;
}
protected void init(){
Assert.state(message == null || payload == null,"cannot set both message and payload");
}
}

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<int:transformer input-channel="inputChannel" output-channel="outputChannel" expression="payload.toUpperCase()"/>
<int:channel id="outputChannel"/>
<int:transformer input-channel="inputChannel2" output-channel="outputChannel2" expression="payload.toUpperCase()"/>
<int:channel id="outputChannel2">
<int:queue/>
</int:channel>
</beans>

View File

@@ -0,0 +1,61 @@
package org.springframework.integration.test.support;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.List;
import org.springframework.integration.Message;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.test.context.ContextConfiguration;
import static org.springframework.integration.test.matcher.PayloadMatcher.hasPayload;
import static org.springframework.integration.test.matcher.HeaderMatcher.hasHeader;
@ContextConfiguration
public class MessageScenariosTest extends AbstractRequestResponseScenarioTest {
@Override
protected List<RequestResponseScenario> defineRequestResponseScenarios() {
List<RequestResponseScenario> scenarios= new ArrayList<RequestResponseScenario>();
RequestResponseScenario scenario1 = new RequestResponseScenario(
"inputChannel","outputChannel")
.setPayload("hello")
.setResponseValidator(new PayloadValidator() {
@Override
protected void validateResponse(Object response) {
assertEquals("HELLO",response);
}
});
scenarios.add(scenario1);
RequestResponseScenario scenario2 = new RequestResponseScenario(
"inputChannel","outputChannel")
.setMessage(MessageBuilder.withPayload("hello").setHeader("foo", "bar").build())
.setResponseValidator(new MessageValidator() {
@Override
protected void validateMessage(Message<?> message) {
assertThat(message,hasPayload("HELLO"));
assertThat(message,hasHeader("foo","bar"));
}
});
scenarios.add(scenario2);
RequestResponseScenario scenario3 = new RequestResponseScenario(
"inputChannel2","outputChannel2")
.setMessage(MessageBuilder.withPayload("hello").setHeader("foo", "bar").build())
.setResponseValidator(new MessageValidator() {
@Override
protected void validateMessage(Message<?> message) {
assertThat(message,hasPayload("HELLO"));
assertThat(message,hasHeader("foo","bar"));
}
});
scenarios.add(scenario3);
return scenarios;
}
}