This is an automated email from the ASF dual-hosted git repository. billblough pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-savan.git
commit adc0b8a69676618082331299ee86e002d7a4f7ba Author: Chamikara Madhusanka Jayalath <chamik...@apache.org> AuthorDate: Tue May 22 05:44:15 2007 +0000 Made Savan a multi module project. Changed the package name to org.apache.ws.savan Created modules - core,mar,samples --- modules/core/pom.xml | 37 +++ .../core/src}/main/config/savan-config.xml | 0 .../java/org/apache/savan/MessageInitializer.java | 0 .../main/java/org/apache/savan/SavanConstants.java | 0 .../main/java/org/apache/savan/SavanException.java | 0 .../java/org/apache/savan/SavanMessageContext.java | 0 .../savan/configuration/ConfigurationManager.java | 0 .../org/apache/savan/configuration/FilterBean.java | 0 .../apache/savan/configuration/MappingRules.java | 0 .../org/apache/savan/configuration/Protocol.java | 0 .../apache/savan/configuration/SubscriberBean.java | 0 .../java/org/apache/savan/eventing/Delivery.java | 0 .../apache/savan/eventing/EventingConstants.java | 0 .../eventing/EventingMessageReceiverDeligater.java | 0 .../eventing/EventingSubscriptionProcessor.java | 0 .../apache/savan/eventing/EventingUtilFactory.java | 0 .../savan/eventing/client/EventingClient.java | 0 .../savan/eventing/client/EventingClientBean.java | 0 .../eventing/client/SubscriptionResponseData.java | 0 .../savan/eventing/client/SubscriptionStatus.java | 0 .../eventing/subscribers/EventingSubscriber.java | 0 .../java/org/apache/savan/filters/EmptyFilter.java | 0 .../main/java/org/apache/savan/filters/Filter.java | 0 .../org/apache/savan/filters/XPathBasedFilter.java | 0 .../messagereceiver/MessageReceiverDeligater.java | 0 .../SavanInOnlyMessageReceiver.java | 0 .../messagereceiver/SavanInOutMessageReceiver.java | 0 .../java/org/apache/savan/module/SavanModule.java | 0 .../savan/publication/PublicationReport.java | 0 .../publication/client/PublicationClient.java | 0 .../savan/storage/DefaultSubscriberStore.java | 0 .../org/apache/savan/storage/SubscriberStore.java | 0 .../org/apache/savan/subscribers/Subscriber.java | 0 .../apache/savan/subscribers/SubscriberGroup.java | 0 .../apache/savan/subscription/ExpirationBean.java | 0 .../org/apache/savan/subscription/RenewBean.java | 0 .../savan/subscription/SubscriptionProcessor.java | 0 .../java/org/apache/savan/util/CommonUtil.java | 0 .../org/apache/savan/util/ProtocolManager.java | 0 .../java/org/apache/savan/util/UtilFactory.java | 0 {src => modules/core/src}/site/site.xml | 0 .../core/src}/site/xdoc/savan-tutorial.xml | 0 .../axis2/savan/ConfigurationManagerTest.java | 0 .../axis2/savan/EventingExpirationTypesTest.java | 0 .../savan/EventingSubscripitonProcessorTest.java | 0 .../apache/axis2/savan/XPathBasedFilterTest.java | 0 .../test/resources/eventing-renew-datetime.xml | 0 .../test/resources/eventing-renew-duration.xml | 0 .../src}/test/resources/eventing-subscription.xml | 0 .../core/src}/test/resources/savan-config-test.xml | 0 .../resources/META-INF => modules/mar}/module.xml | 0 modules/mar/pom.xml | 83 ++++++ modules/samples/eventing/build.xml | 86 ++++++ modules/samples/eventing/listner1.services.xml | 13 + modules/samples/eventing/listner2.services.xml | 13 + modules/samples/eventing/publisher.services.xml | 17 ++ modules/samples/eventing/readme.txt | 19 ++ modules/samples/eventing/run.bat | 40 +++ modules/samples/eventing/run.sh | 11 + .../eventing/src/sample/eventing/Client.java | 293 +++++++++++++++++++++ .../src/sample/eventing/ListnerService1.java | 29 +- .../src/sample/eventing/ListnerService2.java | 31 +-- .../src/sample/eventing/PublisherService.java | 93 +++++++ pom.xml | 16 +- 64 files changed, 741 insertions(+), 40 deletions(-) diff --git a/modules/core/pom.xml b/modules/core/pom.xml new file mode 100644 index 0000000..3ba8b93 --- /dev/null +++ b/modules/core/pom.xml @@ -0,0 +1,37 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <groupId>org.apache.ws.savan</groupId> + <artifactId>savan-parent</artifactId> + <version>SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.ws.savan</groupId> + <artifactId>savan-core</artifactId> + <packaging>jar</packaging> + <name>Savan - Core</name> + + <build> + <sourceDirectory>src/main/java</sourceDirectory> + <testSourceDirectory>src/test/java</testSourceDirectory> + <resources> + <resource> + <directory>src/main/resources</directory> + </resource> + </resources> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.4</source> + <target>1.4</target> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/src/main/config/savan-config.xml b/modules/core/src/main/config/savan-config.xml similarity index 100% rename from src/main/config/savan-config.xml rename to modules/core/src/main/config/savan-config.xml diff --git a/src/main/java/org/apache/savan/MessageInitializer.java b/modules/core/src/main/java/org/apache/savan/MessageInitializer.java similarity index 100% rename from src/main/java/org/apache/savan/MessageInitializer.java rename to modules/core/src/main/java/org/apache/savan/MessageInitializer.java diff --git a/src/main/java/org/apache/savan/SavanConstants.java b/modules/core/src/main/java/org/apache/savan/SavanConstants.java similarity index 100% rename from src/main/java/org/apache/savan/SavanConstants.java rename to modules/core/src/main/java/org/apache/savan/SavanConstants.java diff --git a/src/main/java/org/apache/savan/SavanException.java b/modules/core/src/main/java/org/apache/savan/SavanException.java similarity index 100% rename from src/main/java/org/apache/savan/SavanException.java rename to modules/core/src/main/java/org/apache/savan/SavanException.java diff --git a/src/main/java/org/apache/savan/SavanMessageContext.java b/modules/core/src/main/java/org/apache/savan/SavanMessageContext.java similarity index 100% rename from src/main/java/org/apache/savan/SavanMessageContext.java rename to modules/core/src/main/java/org/apache/savan/SavanMessageContext.java diff --git a/src/main/java/org/apache/savan/configuration/ConfigurationManager.java b/modules/core/src/main/java/org/apache/savan/configuration/ConfigurationManager.java similarity index 100% rename from src/main/java/org/apache/savan/configuration/ConfigurationManager.java rename to modules/core/src/main/java/org/apache/savan/configuration/ConfigurationManager.java diff --git a/src/main/java/org/apache/savan/configuration/FilterBean.java b/modules/core/src/main/java/org/apache/savan/configuration/FilterBean.java similarity index 100% rename from src/main/java/org/apache/savan/configuration/FilterBean.java rename to modules/core/src/main/java/org/apache/savan/configuration/FilterBean.java diff --git a/src/main/java/org/apache/savan/configuration/MappingRules.java b/modules/core/src/main/java/org/apache/savan/configuration/MappingRules.java similarity index 100% rename from src/main/java/org/apache/savan/configuration/MappingRules.java rename to modules/core/src/main/java/org/apache/savan/configuration/MappingRules.java diff --git a/src/main/java/org/apache/savan/configuration/Protocol.java b/modules/core/src/main/java/org/apache/savan/configuration/Protocol.java similarity index 100% rename from src/main/java/org/apache/savan/configuration/Protocol.java rename to modules/core/src/main/java/org/apache/savan/configuration/Protocol.java diff --git a/src/main/java/org/apache/savan/configuration/SubscriberBean.java b/modules/core/src/main/java/org/apache/savan/configuration/SubscriberBean.java similarity index 100% copy from src/main/java/org/apache/savan/configuration/SubscriberBean.java copy to modules/core/src/main/java/org/apache/savan/configuration/SubscriberBean.java diff --git a/src/main/java/org/apache/savan/eventing/Delivery.java b/modules/core/src/main/java/org/apache/savan/eventing/Delivery.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/Delivery.java rename to modules/core/src/main/java/org/apache/savan/eventing/Delivery.java diff --git a/src/main/java/org/apache/savan/eventing/EventingConstants.java b/modules/core/src/main/java/org/apache/savan/eventing/EventingConstants.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/EventingConstants.java rename to modules/core/src/main/java/org/apache/savan/eventing/EventingConstants.java diff --git a/src/main/java/org/apache/savan/eventing/EventingMessageReceiverDeligater.java b/modules/core/src/main/java/org/apache/savan/eventing/EventingMessageReceiverDeligater.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/EventingMessageReceiverDeligater.java rename to modules/core/src/main/java/org/apache/savan/eventing/EventingMessageReceiverDeligater.java diff --git a/src/main/java/org/apache/savan/eventing/EventingSubscriptionProcessor.java b/modules/core/src/main/java/org/apache/savan/eventing/EventingSubscriptionProcessor.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/EventingSubscriptionProcessor.java rename to modules/core/src/main/java/org/apache/savan/eventing/EventingSubscriptionProcessor.java diff --git a/src/main/java/org/apache/savan/eventing/EventingUtilFactory.java b/modules/core/src/main/java/org/apache/savan/eventing/EventingUtilFactory.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/EventingUtilFactory.java rename to modules/core/src/main/java/org/apache/savan/eventing/EventingUtilFactory.java diff --git a/src/main/java/org/apache/savan/eventing/client/EventingClient.java b/modules/core/src/main/java/org/apache/savan/eventing/client/EventingClient.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/client/EventingClient.java rename to modules/core/src/main/java/org/apache/savan/eventing/client/EventingClient.java diff --git a/src/main/java/org/apache/savan/eventing/client/EventingClientBean.java b/modules/core/src/main/java/org/apache/savan/eventing/client/EventingClientBean.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/client/EventingClientBean.java rename to modules/core/src/main/java/org/apache/savan/eventing/client/EventingClientBean.java diff --git a/src/main/java/org/apache/savan/eventing/client/SubscriptionResponseData.java b/modules/core/src/main/java/org/apache/savan/eventing/client/SubscriptionResponseData.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/client/SubscriptionResponseData.java rename to modules/core/src/main/java/org/apache/savan/eventing/client/SubscriptionResponseData.java diff --git a/src/main/java/org/apache/savan/eventing/client/SubscriptionStatus.java b/modules/core/src/main/java/org/apache/savan/eventing/client/SubscriptionStatus.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/client/SubscriptionStatus.java rename to modules/core/src/main/java/org/apache/savan/eventing/client/SubscriptionStatus.java diff --git a/src/main/java/org/apache/savan/eventing/subscribers/EventingSubscriber.java b/modules/core/src/main/java/org/apache/savan/eventing/subscribers/EventingSubscriber.java similarity index 100% rename from src/main/java/org/apache/savan/eventing/subscribers/EventingSubscriber.java rename to modules/core/src/main/java/org/apache/savan/eventing/subscribers/EventingSubscriber.java diff --git a/src/main/java/org/apache/savan/filters/EmptyFilter.java b/modules/core/src/main/java/org/apache/savan/filters/EmptyFilter.java similarity index 100% rename from src/main/java/org/apache/savan/filters/EmptyFilter.java rename to modules/core/src/main/java/org/apache/savan/filters/EmptyFilter.java diff --git a/src/main/java/org/apache/savan/filters/Filter.java b/modules/core/src/main/java/org/apache/savan/filters/Filter.java similarity index 100% rename from src/main/java/org/apache/savan/filters/Filter.java rename to modules/core/src/main/java/org/apache/savan/filters/Filter.java diff --git a/src/main/java/org/apache/savan/filters/XPathBasedFilter.java b/modules/core/src/main/java/org/apache/savan/filters/XPathBasedFilter.java similarity index 100% rename from src/main/java/org/apache/savan/filters/XPathBasedFilter.java rename to modules/core/src/main/java/org/apache/savan/filters/XPathBasedFilter.java diff --git a/src/main/java/org/apache/savan/messagereceiver/MessageReceiverDeligater.java b/modules/core/src/main/java/org/apache/savan/messagereceiver/MessageReceiverDeligater.java similarity index 100% rename from src/main/java/org/apache/savan/messagereceiver/MessageReceiverDeligater.java rename to modules/core/src/main/java/org/apache/savan/messagereceiver/MessageReceiverDeligater.java diff --git a/src/main/java/org/apache/savan/messagereceiver/SavanInOnlyMessageReceiver.java b/modules/core/src/main/java/org/apache/savan/messagereceiver/SavanInOnlyMessageReceiver.java similarity index 100% rename from src/main/java/org/apache/savan/messagereceiver/SavanInOnlyMessageReceiver.java rename to modules/core/src/main/java/org/apache/savan/messagereceiver/SavanInOnlyMessageReceiver.java diff --git a/src/main/java/org/apache/savan/messagereceiver/SavanInOutMessageReceiver.java b/modules/core/src/main/java/org/apache/savan/messagereceiver/SavanInOutMessageReceiver.java similarity index 100% rename from src/main/java/org/apache/savan/messagereceiver/SavanInOutMessageReceiver.java rename to modules/core/src/main/java/org/apache/savan/messagereceiver/SavanInOutMessageReceiver.java diff --git a/src/main/java/org/apache/savan/module/SavanModule.java b/modules/core/src/main/java/org/apache/savan/module/SavanModule.java similarity index 100% rename from src/main/java/org/apache/savan/module/SavanModule.java rename to modules/core/src/main/java/org/apache/savan/module/SavanModule.java diff --git a/src/main/java/org/apache/savan/publication/PublicationReport.java b/modules/core/src/main/java/org/apache/savan/publication/PublicationReport.java similarity index 100% rename from src/main/java/org/apache/savan/publication/PublicationReport.java rename to modules/core/src/main/java/org/apache/savan/publication/PublicationReport.java diff --git a/src/main/java/org/apache/savan/publication/client/PublicationClient.java b/modules/core/src/main/java/org/apache/savan/publication/client/PublicationClient.java similarity index 100% rename from src/main/java/org/apache/savan/publication/client/PublicationClient.java rename to modules/core/src/main/java/org/apache/savan/publication/client/PublicationClient.java diff --git a/src/main/java/org/apache/savan/storage/DefaultSubscriberStore.java b/modules/core/src/main/java/org/apache/savan/storage/DefaultSubscriberStore.java similarity index 100% rename from src/main/java/org/apache/savan/storage/DefaultSubscriberStore.java rename to modules/core/src/main/java/org/apache/savan/storage/DefaultSubscriberStore.java diff --git a/src/main/java/org/apache/savan/storage/SubscriberStore.java b/modules/core/src/main/java/org/apache/savan/storage/SubscriberStore.java similarity index 100% rename from src/main/java/org/apache/savan/storage/SubscriberStore.java rename to modules/core/src/main/java/org/apache/savan/storage/SubscriberStore.java diff --git a/src/main/java/org/apache/savan/subscribers/Subscriber.java b/modules/core/src/main/java/org/apache/savan/subscribers/Subscriber.java similarity index 100% rename from src/main/java/org/apache/savan/subscribers/Subscriber.java rename to modules/core/src/main/java/org/apache/savan/subscribers/Subscriber.java diff --git a/src/main/java/org/apache/savan/subscribers/SubscriberGroup.java b/modules/core/src/main/java/org/apache/savan/subscribers/SubscriberGroup.java similarity index 100% rename from src/main/java/org/apache/savan/subscribers/SubscriberGroup.java rename to modules/core/src/main/java/org/apache/savan/subscribers/SubscriberGroup.java diff --git a/src/main/java/org/apache/savan/subscription/ExpirationBean.java b/modules/core/src/main/java/org/apache/savan/subscription/ExpirationBean.java similarity index 100% rename from src/main/java/org/apache/savan/subscription/ExpirationBean.java rename to modules/core/src/main/java/org/apache/savan/subscription/ExpirationBean.java diff --git a/src/main/java/org/apache/savan/subscription/RenewBean.java b/modules/core/src/main/java/org/apache/savan/subscription/RenewBean.java similarity index 100% rename from src/main/java/org/apache/savan/subscription/RenewBean.java rename to modules/core/src/main/java/org/apache/savan/subscription/RenewBean.java diff --git a/src/main/java/org/apache/savan/subscription/SubscriptionProcessor.java b/modules/core/src/main/java/org/apache/savan/subscription/SubscriptionProcessor.java similarity index 100% rename from src/main/java/org/apache/savan/subscription/SubscriptionProcessor.java rename to modules/core/src/main/java/org/apache/savan/subscription/SubscriptionProcessor.java diff --git a/src/main/java/org/apache/savan/util/CommonUtil.java b/modules/core/src/main/java/org/apache/savan/util/CommonUtil.java similarity index 100% rename from src/main/java/org/apache/savan/util/CommonUtil.java rename to modules/core/src/main/java/org/apache/savan/util/CommonUtil.java diff --git a/src/main/java/org/apache/savan/util/ProtocolManager.java b/modules/core/src/main/java/org/apache/savan/util/ProtocolManager.java similarity index 100% rename from src/main/java/org/apache/savan/util/ProtocolManager.java rename to modules/core/src/main/java/org/apache/savan/util/ProtocolManager.java diff --git a/src/main/java/org/apache/savan/util/UtilFactory.java b/modules/core/src/main/java/org/apache/savan/util/UtilFactory.java similarity index 100% rename from src/main/java/org/apache/savan/util/UtilFactory.java rename to modules/core/src/main/java/org/apache/savan/util/UtilFactory.java diff --git a/src/site/site.xml b/modules/core/src/site/site.xml similarity index 100% rename from src/site/site.xml rename to modules/core/src/site/site.xml diff --git a/src/site/xdoc/savan-tutorial.xml b/modules/core/src/site/xdoc/savan-tutorial.xml similarity index 100% rename from src/site/xdoc/savan-tutorial.xml rename to modules/core/src/site/xdoc/savan-tutorial.xml diff --git a/src/test/java/org/apache/axis2/savan/ConfigurationManagerTest.java b/modules/core/src/test/java/org/apache/axis2/savan/ConfigurationManagerTest.java similarity index 100% rename from src/test/java/org/apache/axis2/savan/ConfigurationManagerTest.java rename to modules/core/src/test/java/org/apache/axis2/savan/ConfigurationManagerTest.java diff --git a/src/test/java/org/apache/axis2/savan/EventingExpirationTypesTest.java b/modules/core/src/test/java/org/apache/axis2/savan/EventingExpirationTypesTest.java similarity index 100% rename from src/test/java/org/apache/axis2/savan/EventingExpirationTypesTest.java rename to modules/core/src/test/java/org/apache/axis2/savan/EventingExpirationTypesTest.java diff --git a/src/test/java/org/apache/axis2/savan/EventingSubscripitonProcessorTest.java b/modules/core/src/test/java/org/apache/axis2/savan/EventingSubscripitonProcessorTest.java similarity index 100% rename from src/test/java/org/apache/axis2/savan/EventingSubscripitonProcessorTest.java rename to modules/core/src/test/java/org/apache/axis2/savan/EventingSubscripitonProcessorTest.java diff --git a/src/test/java/org/apache/axis2/savan/XPathBasedFilterTest.java b/modules/core/src/test/java/org/apache/axis2/savan/XPathBasedFilterTest.java similarity index 100% rename from src/test/java/org/apache/axis2/savan/XPathBasedFilterTest.java rename to modules/core/src/test/java/org/apache/axis2/savan/XPathBasedFilterTest.java diff --git a/src/test/resources/eventing-renew-datetime.xml b/modules/core/src/test/resources/eventing-renew-datetime.xml similarity index 100% rename from src/test/resources/eventing-renew-datetime.xml rename to modules/core/src/test/resources/eventing-renew-datetime.xml diff --git a/src/test/resources/eventing-renew-duration.xml b/modules/core/src/test/resources/eventing-renew-duration.xml similarity index 100% rename from src/test/resources/eventing-renew-duration.xml rename to modules/core/src/test/resources/eventing-renew-duration.xml diff --git a/src/test/resources/eventing-subscription.xml b/modules/core/src/test/resources/eventing-subscription.xml similarity index 100% rename from src/test/resources/eventing-subscription.xml rename to modules/core/src/test/resources/eventing-subscription.xml diff --git a/src/test/resources/savan-config-test.xml b/modules/core/src/test/resources/savan-config-test.xml similarity index 100% rename from src/test/resources/savan-config-test.xml rename to modules/core/src/test/resources/savan-config-test.xml diff --git a/src/main/resources/META-INF/module.xml b/modules/mar/module.xml similarity index 100% rename from src/main/resources/META-INF/module.xml rename to modules/mar/module.xml diff --git a/modules/mar/pom.xml b/modules/mar/pom.xml new file mode 100644 index 0000000..a8f1f32 --- /dev/null +++ b/modules/mar/pom.xml @@ -0,0 +1,83 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <groupId>org.apache.ws.savan</groupId> + <artifactId>savan-parent</artifactId> + <version>SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.ws.savan</groupId> + <artifactId>savan</artifactId> + <packaging>mar</packaging> + <name>Savan - Mar</name> + + <build> + <sourceDirectory>src/main/java</sourceDirectory> + <testSourceDirectory>src/main/java</testSourceDirectory> + <resources> + <resource> + <directory>src/main/resources</directory> + </resource> + </resources> + + <plugins> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.1</version> + <executions> + <execution> + <id>create-test-resources</id> + <phase>process-test-resources</phase> + <configuration> + <tasks> + <!--copying classes from the core module--> + <copydir src="../core/target/classes" + dest="target/classes"/> + </tasks> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.4</source> + <target>1.4</target> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-mar-maven-plugin</artifactId> + <version>SNAPSHOT</version> + <extensions>true</extensions> + + <configuration> + <includeDependencies>false</includeDependencies> + <moduleXmlFile>module.xml</moduleXmlFile> + </configuration> + </plugin> + </plugins> + + </build> + + <dependencies> + <dependency> + <groupId>org.apache.sandesha2</groupId> + <artifactId>sandesha2-core</artifactId> + <version>SNAPSHOT</version> + </dependency> + </dependencies> + +</project> diff --git a/modules/samples/eventing/build.xml b/modules/samples/eventing/build.xml new file mode 100644 index 0000000..c20bf5b --- /dev/null +++ b/modules/samples/eventing/build.xml @@ -0,0 +1,86 @@ +<project default="build.sample"> + + + <!--<classpath id="classpath1"> + <pathelement location="lib/*.jar"/> + </classpath>--> + + <target name="build.sample"> + <property name="eventing.temp.dir" value="build/temp" /> + <property name="listner1.temp.dir" value="${eventing.temp.dir}/listner1" /> + <property name="listner2.temp.dir" value="${eventing.temp.dir}/listner2" /> + <property name="publisher.temp.dir" value="${eventing.temp.dir}/publisher" /> + + <mkdir dir="${listner1.temp.dir}" /> + <mkdir dir="${listner1.temp.dir}/META-INF" /> + <mkdir dir="${listner2.temp.dir}" /> + <mkdir dir="${listner2.temp.dir}/META-INF" /> + <mkdir dir="${publisher.temp.dir}" /> + <mkdir dir="${publisher.temp.dir}/META-INF" /> + + <mkdir dir="build/classes" /> + <mkdir dir="build/lib" /> + + <javac srcdir="src" destdir="build/classes"> + <classpath> + <fileset dir="build/lib"> + <include name="*.jar"/> + </fileset> + </classpath> + </javac> + + <copy toFile="${listner1.temp.dir}/META-INF/services.xml" file="listner1.services.xml"/> + <copy toFile="${listner2.temp.dir}/META-INF/services.xml" file="listner2.services.xml"/> + <copy toFile="${publisher.temp.dir}/META-INF/services.xml" file="publisher.services.xml"/> + + <jar destfile="build/ListnerService1.aar"> + <fileset dir="build/classes"> + <include name="sample/eventing/**/**/*ListnerService1*" /> + </fileset> + <fileset dir="${listner1.temp.dir}"> + <include name="META-INF/**"/> + </fileset> + </jar> + + <jar destfile="build/ListnerService2.aar"> + <fileset dir="build/classes"> + <include name="sample/eventing/**/**/*ListnerService2*" /> + </fileset> + <fileset dir="${listner2.temp.dir}"> + <include name="META-INF/**"/> + </fileset> + </jar> + + <jar destfile="build/PublisherService.aar"> + <fileset dir="build/classes"> + <include name="sample/eventing/**/**/*PublisherService*" /> + </fileset> + <fileset dir="${publisher.temp.dir}"> + <include name="META-INF/**"/> + </fileset> + </jar> + + <jar destfile="build/ListnerService1.aar"> + <fileset dir="build/classes"> + <include name="sample/eventing/**/**/*ListnerService1*" /> + </fileset> + <fileset dir="${listner1.temp.dir}"> + <include name="META-INF/**"/> + </fileset> + </jar> + + <jar destfile="build/EventingSample.jar"> + <fileset dir="build/classes"> + <include name="sample/eventing/**"/> + </fileset> + </jar> + + <copy todir="build"> + <fileset dir="."> + <include name="*.sh"/> + <include name="*.bat"/> + </fileset> + </copy> + </target> + +</project> \ No newline at end of file diff --git a/modules/samples/eventing/listner1.services.xml b/modules/samples/eventing/listner1.services.xml new file mode 100644 index 0000000..cb050c5 --- /dev/null +++ b/modules/samples/eventing/listner1.services.xml @@ -0,0 +1,13 @@ +<service name="ListnerService1"> + + <parameter name="ServiceClass" locked="xsd:false">sample.eventing.ListnerService1</parameter> + + <description> + The Listner Service 1 of the Axis2 Eventing sample. + </description> + + <operation name="publish" mep="http://www.w3.org/2004/08/wsdl/in-only"> + <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" /> + </operation> + +</service> \ No newline at end of file diff --git a/modules/samples/eventing/listner2.services.xml b/modules/samples/eventing/listner2.services.xml new file mode 100644 index 0000000..0e5c9be --- /dev/null +++ b/modules/samples/eventing/listner2.services.xml @@ -0,0 +1,13 @@ +<service name="ListnerService2"> + + <parameter name="ServiceClass" locked="xsd:false">sample.eventing.ListnerService2</parameter> + + <description> + The Listner Service 2 of the Axis2 Eventing sample. + </description> + + <operation name="publish" mep="http://www.w3.org/2004/08/wsdl/in-only"> + <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" /> + </operation> + +</service> \ No newline at end of file diff --git a/modules/samples/eventing/publisher.services.xml b/modules/samples/eventing/publisher.services.xml new file mode 100644 index 0000000..31f729a --- /dev/null +++ b/modules/samples/eventing/publisher.services.xml @@ -0,0 +1,17 @@ +<service name="PublisherService"> + + <parameter name="ServiceClass" locked="xsd:false">sample.eventing.PublisherService</parameter> + + <description> + The Publisher Service of the Axis2 Eventing sample. + </description> + + <module ref="savan" /> + <module ref="addressing" /> + + <operation name="dummyMethod" mep="http://www.w3.org/2004/08/wsdl/in-only"> + <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" /> + <actionMapping>uuid:DummyMethodAction</actionMapping> + </operation> + +</service> \ No newline at end of file diff --git a/modules/samples/eventing/readme.txt b/modules/samples/eventing/readme.txt new file mode 100644 index 0000000..396d0a4 --- /dev/null +++ b/modules/samples/eventing/readme.txt @@ -0,0 +1,19 @@ +Steps to build and run the Savan-Eventing sample +------------------------------------------------ + +To build +-------- + +1. Move to the sample folder. +2. Create a subfolders 'build/lib'. +3. Copy all the jars from a compatible Axis2 distribution to 'build/lib'. +4. Copy the savan jar file to 'build/lib'. +5. Run 'ant' to build the sample. + + +To run +------ +1. Start a Axis2 server. +2. Deploy savan and addressing modules. +3. Deploy the three services that were created in the 'build' folder. +4. Run the 'samples.eventing.Client' class, you can pass the repository with a '-r' parameter and the server port with a '-p' parameter. diff --git a/modules/samples/eventing/run.bat b/modules/samples/eventing/run.bat new file mode 100644 index 0000000..65cd786 --- /dev/null +++ b/modules/samples/eventing/run.bat @@ -0,0 +1,40 @@ +@echo off +rem --------------------------------------------------------------------------- +rem Start script for running the Eventing Sample Client +rem +rem --------------------------------------------------------------------------- + +rem store the current directory +set CURRENT_DIR=%cd% + +rem check the AXIS2_HOME environment variable +if not "%AXIS2_HOME%" == "" goto gotHome + +rem guess the home. Jump two directories up and take that as the home +cd .. +cd .. +set AXIS2_HOME=%cd% + +echo using Axis Home %AXIS2_HOME% + + +:gotHome +if EXIST "%AXIS2_HOME%\lib\axis2*.jar" goto okHome +echo The AXIS2_HOME environment variable seems not to point to the correct loaction! +echo This environment variable is needed to run this program +pause +goto end + +:okHome +cd %CURRENT_DIR% + +setlocal EnableDelayedExpansion +rem loop through the libs and add them to the class path +set AXIS2_CLASS_PATH=%AXIS2_HOME% +FOR %%c in (%AXIS2_HOME%\lib\*.jar) DO set AXIS2_CLASS_PATH=!AXIS2_CLASS_PATH!;%%c + +set AXIS2_CLASS_PATH=%AXIS2_CLASS_PATH%;"%CURRENT_DIR%\EventingSample.jar" + +java -cp %AXIS2_CLASS_PATH% -Daxis2.repo=%AXIS2_HOME% sample.eventing.Client +endlocal +:end \ No newline at end of file diff --git a/modules/samples/eventing/run.sh b/modules/samples/eventing/run.sh new file mode 100755 index 0000000..9436d88 --- /dev/null +++ b/modules/samples/eventing/run.sh @@ -0,0 +1,11 @@ +#!/bin/sh +export AXIS2_HOME=../.. +AXIS2_CLASSPATH=$AXIS2_CLASSPATH:SGCCalculator.jar +for f in $AXIS2_HOME/lib/*.jar +do + AXIS2_CLASSPATH=$AXIS2_CLASSPATH:$f +done +export AXIS2_CLASSPATH +echo classpath: $AXIS2_CLASSPATH + +java -classpath $AXIS2_CLASSPATH -Daxis2.repo=$AXIS2_HOME sample.sgccalculator.CalcClient diff --git a/modules/samples/eventing/src/sample/eventing/Client.java b/modules/samples/eventing/src/sample/eventing/Client.java new file mode 100644 index 0000000..e0365eb --- /dev/null +++ b/modules/samples/eventing/src/sample/eventing/Client.java @@ -0,0 +1,293 @@ +/* + * Copyright 2004,2005 The Apache Software Foundation. + * + * 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 sample.eventing; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Date; + +import javax.xml.namespace.QName; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMNamespace; +import org.apache.axis2.AxisFault; +import org.apache.axis2.addressing.EndpointReference; +import org.apache.axis2.client.Options; +import org.apache.axis2.client.ServiceClient; +import org.apache.axis2.context.ConfigurationContext; +import org.apache.axis2.context.ConfigurationContextFactory; +import org.apache.savan.eventing.client.EventingClient; +import org.apache.savan.eventing.client.EventingClientBean; +import org.apache.savan.eventing.client.SubscriptionStatus; + +public class Client { + + BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); + + private final int MIN_OPTION = 1; + private final int MAX_OPTION = 9; + + private final String SUBSCRIBER_1_ID = "subscriber1"; + private final String SUBSCRIBER_2_ID = "subscriber2"; + + private ServiceClient serviceClient = null; + private Options options = null; + private EventingClient eventingClient = null; + + private String toAddressPart = "/axis2/services/PublisherService"; + private String listner1AddressPart = "/axis2/services/ListnerService1"; + private String listner2AddressPart = "/axis2/services/ListnerService2"; + + private final String applicationNamespaceName = "http://tempuri.org/"; + private final String dummyMethod = "dummyMethod"; + + private static String repo = null; + private static int port = 8080; + private static String serverIP = "127.0.0.1"; + + private static final String portParam = "-p"; + private static final String repoParam = "-r"; + private static final String helpParam = "-h"; + + public static void main (String[] args) throws Exception { + + for (int i=0;i<args.length;i++) { + if (helpParam.equalsIgnoreCase(args[i])) { + displayHelp (); + System.exit(0); + } + } + + String portStr = getParam(portParam,args); + if (portStr!=null) { + port = Integer.parseInt(portStr); + System.out.println("Server Port was set to:" + port); + } + + String repoStr = getParam(repoParam,args); + if (repoStr!=null) { + repo = repoStr; + System.out.println("Client Repository was set to:" + repo); + } + + Client c = new Client (); + c.run (); + } + + private static void displayHelp () { + System.out.println("Help page for the Eventing Client"); + System.out.println("---------------------------------"); + System.out.println("Set the client reposiory using the parameter -r"); + System.out.println("Set the server port using the parameter -p"); + } + + /** + * This will check the given parameter in the array and will return, if available + * + * @param param + * @param args + * @return + */ + private static String getParam(String param, String[] args) { + if (param == null || "".equals(param)) { + return null; + } + + for (int i = 0; i < args.length; i = i + 2) { + String arg = args[i]; + if (param.equalsIgnoreCase(arg) && (args.length >= (i + 1))) { + return args[i + 1]; + } + } + return null; + } + + public void run () throws Exception { + + System.out.println("\n"); + System.out.println("Welcome to Axis2 Eventing Sample"); + System.out.println("================================\n"); + + boolean validOptionSelected = false; + int selectedOption = -1; + while (!validOptionSelected) { + displayMenu(); + selectedOption = getIntInput(); + if (selectedOption>=MIN_OPTION && selectedOption<=MAX_OPTION) + validOptionSelected = true; + else + System.out.println("\nInvalid Option \n\n"); + } + + initClient (); + performAction (selectedOption); + + //TODO publish + + System.out.println("Press enter to initialize the publisher service."); + reader.readLine(); + + options.setAction("uuid:DummyMethodAction"); + serviceClient.fireAndForget(getDummyMethodRequestElement ()); + + while (true) { + + validOptionSelected = false; + selectedOption = -1; + while (!validOptionSelected) { + displayMenu(); + selectedOption = getIntInput(); + if (selectedOption>=MIN_OPTION && selectedOption<=MAX_OPTION) + validOptionSelected = true; + else + System.out.println("\nInvalid Option \n\n"); + } + + performAction (selectedOption); + + } + } + + private void displayMenu () { + System.out.println("Press 1 to subscribe Listner Service 1"); + System.out.println("Press 2 to subscribe Listner Service 2"); + System.out.println("Press 3 to subscribe both listner services"); + System.out.println("Press 4 to unsubscribe Listner Service 1"); + System.out.println("Press 5 to unsubscribe Listner Service 2"); + System.out.println("Press 6 to unsubscribe both listner services"); + System.out.println("Press 7 to to get the status of the subscription to Service 1"); + System.out.println("Press 8 to to get the status of the subscription to Service 2"); + System.out.println("Press 9 to Exit"); + } + + private int getIntInput () throws IOException { + String option = reader.readLine(); + try { + return Integer.parseInt(option); + } catch (NumberFormatException e) { + //invalid option + return -1; + } + } + + private void initClient () throws AxisFault { + + String CLIENT_REPO = null; + String AXIS2_XML = null; + + if (repo!=null) { + CLIENT_REPO = repo; + AXIS2_XML = repo + File.separator + "axis2.xml"; + } else { +// throw new AxisFault ("Please specify the client repository as a program argument.Use '-h' for help."); + } + + ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(CLIENT_REPO,null); + serviceClient = new ServiceClient (configContext,null); //TODO give a repo + + options = new Options (); + serviceClient.setOptions(options); + serviceClient.engageModule(new QName ("addressing")); + + eventingClient = new EventingClient (serviceClient); + + String toAddress = "http://" + serverIP + ":" + port + toAddressPart; + options.setTo(new EndpointReference (toAddress)); + } + + private void performAction (int action) throws Exception { + + switch (action) { + case 1: + doSubscribe(SUBSCRIBER_1_ID); + break; + case 2: + doSubscribe(SUBSCRIBER_2_ID); + break; + case 3: + doSubscribe(SUBSCRIBER_1_ID); + doSubscribe(SUBSCRIBER_2_ID); + break; + case 4: + doUnsubscribe(SUBSCRIBER_1_ID); + break; + case 5: + doUnsubscribe(SUBSCRIBER_2_ID); + break; + case 6: + doUnsubscribe(SUBSCRIBER_1_ID); + doUnsubscribe(SUBSCRIBER_2_ID); + break; + case 7: + doGetStatus(SUBSCRIBER_1_ID); + break; + case 8: + doGetStatus(SUBSCRIBER_2_ID); + break; + case 9: + System.exit(0); + break; + default: + break; + } + } + + private void doSubscribe (String ID) throws Exception { + EventingClientBean bean = new EventingClientBean (); + + String subscribingAddress = null; + if (SUBSCRIBER_1_ID.equals(ID)) { + subscribingAddress = "http://" + serverIP + ":" + port + listner1AddressPart; + } else if (SUBSCRIBER_2_ID.equals(ID)) { + subscribingAddress = "http://" + serverIP + ":" + port + listner2AddressPart; + } + + bean.setDeliveryEPR(new EndpointReference (subscribingAddress)); + + //uncomment following to set an expiration time of 10 minutes. +// Date date = new Date (); +// date.setMinutes(date.getMinutes()+10); +// bean.setExpirationTime(date); + + eventingClient.subscribe(bean,ID); + Thread.sleep(1000); //TODO remove if not sequired + } + + private void doUnsubscribe (String ID) throws Exception { + eventingClient.unsubscribe(ID); + Thread.sleep(1000); //TODO remove if not sequired + } + + private void doGetStatus (String ID) throws Exception { + SubscriptionStatus status = eventingClient.getSubscriptionStatus(ID); + Thread.sleep(1000); //TODO remove if not sequired + + String statusValue = status.getExpirationValue(); + System.out.println("Status of the subscriber '" + ID +"' is" + statusValue); + } + + private OMElement getDummyMethodRequestElement() { + OMFactory fac = OMAbstractFactory.getOMFactory(); + OMNamespace namespace = fac.createOMNamespace(applicationNamespaceName,"ns1"); + return fac.createOMElement(dummyMethod, namespace); + } + +} diff --git a/src/main/java/org/apache/savan/configuration/SubscriberBean.java b/modules/samples/eventing/src/sample/eventing/ListnerService1.java similarity index 65% copy from src/main/java/org/apache/savan/configuration/SubscriberBean.java copy to modules/samples/eventing/src/sample/eventing/ListnerService1.java index cad25d0..5ac7c4b 100644 --- a/src/main/java/org/apache/savan/configuration/SubscriberBean.java +++ b/modules/samples/eventing/src/sample/eventing/ListnerService1.java @@ -14,26 +14,19 @@ * limitations under the License. */ -package org.apache.savan.configuration; +package sample.eventing; -public class SubscriberBean { - - String name; - String clazz; +import org.apache.axiom.om.OMElement; + +public class ListnerService1 { - public String getClazz() { - return clazz; - } - public String getName() { - return name; - } + String name = "ListnerService1"; - public void setClazz(String clazz) { - this.clazz = clazz; + public void publish(OMElement param) throws Exception { + System.out.println("\n"); + System.out.println("'" + name + "' got a new publication..."); + System.out.println(param); + System.out.println("\n"); } - public void setName(String name) { - this.name = name; - } - - + } diff --git a/src/main/java/org/apache/savan/configuration/SubscriberBean.java b/modules/samples/eventing/src/sample/eventing/ListnerService2.java similarity index 64% rename from src/main/java/org/apache/savan/configuration/SubscriberBean.java rename to modules/samples/eventing/src/sample/eventing/ListnerService2.java index cad25d0..d2b7657 100644 --- a/src/main/java/org/apache/savan/configuration/SubscriberBean.java +++ b/modules/samples/eventing/src/sample/eventing/ListnerService2.java @@ -14,26 +14,19 @@ * limitations under the License. */ -package org.apache.savan.configuration; +package sample.eventing; -public class SubscriberBean { - - String name; - String clazz; - - public String getClazz() { - return clazz; - } - public String getName() { - return name; - } +import org.apache.axiom.om.OMElement; - public void setClazz(String clazz) { - this.clazz = clazz; +public class ListnerService2 { + + String name = "ListnerService2"; + + public void publish(OMElement param) throws Exception { + System.out.println("\n"); + System.out.println("'" + name + "' got a new publication..."); + System.out.println(param); + System.out.println("\n"); } - public void setName(String name) { - this.name = name; - } - - + } diff --git a/modules/samples/eventing/src/sample/eventing/PublisherService.java b/modules/samples/eventing/src/sample/eventing/PublisherService.java new file mode 100644 index 0000000..6eacefb --- /dev/null +++ b/modules/samples/eventing/src/sample/eventing/PublisherService.java @@ -0,0 +1,93 @@ +/* + * Copyright 2004,2005 The Apache Software Foundation. + * + * 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 sample.eventing; + +import java.net.URI; +import java.util.Random; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMNamespace; +import org.apache.axis2.AxisFault; +import org.apache.axis2.context.ServiceContext; +import org.apache.savan.publication.client.PublicationClient; +import org.apache.savan.storage.SubscriberStore; +import org.apache.savan.util.CommonUtil; + +public class PublisherService { + + ServiceContext serviceContext = null; + + public void init(ServiceContext serviceContext) throws AxisFault { + System.out.println("Eventing Service INIT called"); + this.serviceContext = serviceContext; + + PublisherThread thread = new PublisherThread (); + thread.start(); + } + + public void dummyMethod(OMElement param) throws Exception { + System.out.println("Eventing Service dummy method called"); + } + + private class PublisherThread extends Thread { + + String Publication = "Publication"; + String publicationNamespaceValue = "http://tempuri/publication/"; + Random r = new Random (); + + public void run () { + try { + while (true) { + + Thread.sleep(5000); + + //publishing + System.out.println("Publishing next publication..."); + + SubscriberStore store = CommonUtil.getSubscriberStore(serviceContext.getAxisService()); + if (store==null) + throw new Exception ("Cant find the Savan subscriber store"); + + OMElement data = getNextPublicationData (); + + PublicationClient publicationClient = new PublicationClient (serviceContext.getConfigurationContext()); + publicationClient.sendPublication(data,serviceContext.getAxisService(),null); + } + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public OMElement getNextPublicationData () { + OMFactory factory = OMAbstractFactory.getOMFactory(); + OMNamespace namespace = factory.createOMNamespace(publicationNamespaceValue,"ns1"); + OMElement publicationElement = factory.createOMElement(Publication,namespace); + + int value = r.nextInt(); + publicationElement.setText(Integer.toString(value)); + + OMElement data = factory.createOMElement("publish",namespace); + data.addChild(publicationElement); + + + return data; + } + } +} diff --git a/pom.xml b/pom.xml index b55550a..6faa6e0 100644 --- a/pom.xml +++ b/pom.xml @@ -3,10 +3,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <groupId>org.apache.savan</groupId> + <groupId>org.apache.ws.savan</groupId> <modelVersion>4.0.0</modelVersion> - <artifactId>savan</artifactId> - <packaging>jar</packaging> + <artifactId>savan-parent</artifactId> + <packaging>pom</packaging> <version>SNAPSHOT</version> <name>Apache Savan</name> @@ -103,6 +103,7 @@ <artifactId>maven-surefire-plugin</artifactId> <version>2.2</version> </plugin> + <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> @@ -145,6 +146,7 @@ </execution> </executions> </plugin> + --> </plugins> </build> @@ -225,6 +227,14 @@ </distributionManagement> + <modules> + <module>modules/core</module> + <module>modules/mar</module> + <!-- <module>modules/samples</module> --> +<!-- <module>modules/eventing-client</module> + <module>modules/distribution</module>--> + </modules> + <properties> <axis2.version>1.2</axis2.version> <savan.version>SNAPSHOT</savan.version>