commit
f17cffa21e
4 changed files with 106 additions and 63 deletions
55
pom.xml
55
pom.xml
|
@ -13,9 +13,9 @@
|
|||
<description>A PubSubHubub implementation for Java based on ROME</description>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://rometools.jira.com/svn/INCUBATOR/trunk/pubsubhubub/certiorem/</connection>
|
||||
<developerConnection>scm:svn:https://rometools.jira.com/svn/INCUBATOR/trunk/pubsubhubub/certiorem/</developerConnection>
|
||||
<url>https://rometools.jira.com/svn/INCUBATOR/trunk/pubsubhubub/certiorem/</url>
|
||||
<connection>scm:git:git@github.com:rometools/rome-certiorem.git</connection>
|
||||
<developerConnection>scm:git:git@github.com:rometools/rome-certiorem.git</developerConnection>
|
||||
<url>https://github.com/rometools/rome-certiorem/</url>
|
||||
</scm>
|
||||
|
||||
<licenses>
|
||||
|
@ -99,6 +99,25 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>3.3</version>
|
||||
<configuration>
|
||||
<port>9000</port>
|
||||
<tempWebappDirectory>${basedir}/target/site/tempdir</tempWebappDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-scm-publish-plugin</artifactId>
|
||||
<version>1.0-beta-2</version>
|
||||
<configuration>
|
||||
<scmBranch>gh-pages</scmBranch>
|
||||
<pubScmUrl>scm:git:git@github.com:rometools/rome-certiorem.git</pubScmUrl>
|
||||
<content>${project.build.directory}/site</content>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
@ -142,4 +161,34 @@
|
|||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<reporting>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
<version>2.7</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>2.9.1</version>
|
||||
<reportSets>
|
||||
<reportSet>
|
||||
<reports>
|
||||
<report>javadoc</report>
|
||||
<report>test-javadoc</report>
|
||||
</reports>
|
||||
</reportSet>
|
||||
<reportSet>
|
||||
<id>aggregate</id>
|
||||
<inherited>false</inherited>
|
||||
<reports>
|
||||
<report>aggregate</report>
|
||||
</reports>
|
||||
</reportSet>
|
||||
</reportSets>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</reporting>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
-----
|
||||
certiorem
|
||||
-----
|
||||
kebernet
|
||||
-----
|
||||
2011-03-19 10:30:35.292
|
||||
-----
|
||||
|
||||
Certiorem
|
||||
|
||||
Certiorem is an implementation of the {{{http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub\-core\-0.3.html}PubSubHubub }}protocol for ROME.
|
||||
|
||||
It is dependent on ROME and ROME\-Fetcher for the base implementations, and will provide standard plugins for Propono to allow for publish eventing, where applicable.
|
||||
|
||||
*Primary Components
|
||||
|
||||
*Hub Implementation and Scaffolding (Done)
|
||||
|
||||
The first part of Certiorem is a basic set of scaffolding classes that can be used to create a PSH notification hub. Initially, this will include a non\-guaranteed delivery hub, with standard implementations suitable for deployment on most JavaEE application servers or Google App Engine. It is intended that there should be at least one simple, drop in WAR file, utilizing JavaEE classes that can work in a default configuration for various standard web containers. Subsequently, each of the classes in the PSH implementation up through the primary Controller class use constructor\-time composition/configuration so that the user/developer can easily construct a custom configuration of the Hub.
|
||||
|
||||
**Client Implementation Integrated with ROME\-Fetcher (Done)
|
||||
|
||||
For web\-based applications that use ROME\-Fetcher, an extended push\-notified store wrapper that will update based on callbacks from a Hub of change notifications. This will include a highly configurable callback servlet to write into the Fetcher cache as changes are made. Additionally, the system should support (semi\-)real time notifications of changes in the form of a listener that exectutes in a TBD thread state relative to the callback servlet. This should be packaged as a simple JAR with no more deps than fetcher that defines the callback servlet, and automagically does subscribes where link\=rel appropriate.
|
||||
|
||||
**Notification Implementation for Propono based and JAX\-RS based Servers (In Progress)
|
||||
|
||||
This should be a simple API call to notify a Hub of changes to topics. Again, this should provide real\-time notifications either synchronously or asynchronously. Importantly for Asynchronous notifications, they should block subsequent change notifications pending a notification to the Hub.
|
||||
|
||||
References:
|
||||
|
||||
{{{https://github.com/nlothian/RTUpdates/blob/master/src/com/nicklothian/pubsubhub/PubSubHubSubscriptionServlet.java}https://github.com/nlothian/RTUpdates/blob/master/src/com/nicklothian/pubsubhub/PubSubHubSubscriptionServlet.java}}
|
||||
|
||||
{{{http://grack.com/blog/2009/09/09/parsing\-the\-pubsubhubbub\-notifications/}http://grack.com/blog/2009/09/09/parsing\-the\-pubsubhubbub\-notifications/}}
|
||||
|
||||
Notes on the Code
|
||||
|
||||
It is still mostly a rough sketch, but the big outlines are there:
|
||||
|
||||
There are three main packages: pub, sub and hub.
|
||||
|
||||
The pub package is basically just a single utility class for pushing notifications to a hub.
|
||||
|
||||
The hub package contains the Hub class. This is a general business controller that is intended to allow you to build a servlet around it with a very, very thin veneer, but you could also use it to drive an XMPP or JMS version too. It is basically built by composition of a number of classes, for which there are some default implementations: A Verifier, which makes the callback to verify new subscriptions, the HubDAO which stores the current subscriptions and subscriber statistics, and a Notifier which actually sends notifications to the subscribers. There are a couple of implementations of each of these (though the JPA HubDAO is still in process). Mostly the implementations for the Verifier and Notifier support threadpooling or no\-threads (for App Engine use).
|
||||
|
||||
I have just started sketching out the sub package, but it basically has a "Subscriptions" class that will take in notifications (using the same "thin veneer" pattern that the Hub class uses). It is also constructed with some impls: A SubscriptionDAO that stores you current subscription information, a FeedFetcherCache that holds the received data, and a Requester that makes the subscription requests to hubs.
|
||||
|
||||
I am hoping to have a basic end to end example working sometime in the next week or so, but if anyone wants to look over what is there, feel free.
|
|
@ -1,15 +1,47 @@
|
|||
-----
|
||||
Home
|
||||
certiorem
|
||||
-----
|
||||
kebernet
|
||||
-----
|
||||
2011-02-28 21:38:15.537
|
||||
2011-03-19 10:30:35.292
|
||||
-----
|
||||
|
||||
ROME Incubator
|
||||
Certiorem
|
||||
|
||||
This is the home of the Incubator space.
|
||||
Certiorem is an implementation of the {{{http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub\-core\-0.3.html}PubSubHubub }}protocol for ROME.
|
||||
|
||||
To help you on your way, we've inserted some of our favourite macros on this home page. As you start creating pages, blogging and commenting you'll see the macros below fill up with all the activity in your space.
|
||||
It is dependent on ROME and ROME\-Fetcher for the base implementations, and will provide standard plugins for Propono to allow for publish eventing, where applicable.
|
||||
|
||||
{{{./Certiorem.html}certiorem (incubator)}} The Certiorem project – A PubSubHubub implementation for ROME
|
||||
*Primary Components
|
||||
|
||||
*Hub Implementation and Scaffolding (Done)
|
||||
|
||||
The first part of Certiorem is a basic set of scaffolding classes that can be used to create a PSH notification hub. Initially, this will include a non\-guaranteed delivery hub, with standard implementations suitable for deployment on most JavaEE application servers or Google App Engine. It is intended that there should be at least one simple, drop in WAR file, utilizing JavaEE classes that can work in a default configuration for various standard web containers. Subsequently, each of the classes in the PSH implementation up through the primary Controller class use constructor\-time composition/configuration so that the user/developer can easily construct a custom configuration of the Hub.
|
||||
|
||||
**Client Implementation Integrated with ROME\-Fetcher (Done)
|
||||
|
||||
For web\-based applications that use ROME\-Fetcher, an extended push\-notified store wrapper that will update based on callbacks from a Hub of change notifications. This will include a highly configurable callback servlet to write into the Fetcher cache as changes are made. Additionally, the system should support (semi\-)real time notifications of changes in the form of a listener that exectutes in a TBD thread state relative to the callback servlet. This should be packaged as a simple JAR with no more deps than fetcher that defines the callback servlet, and automagically does subscribes where link\=rel appropriate.
|
||||
|
||||
**Notification Implementation for Propono based and JAX\-RS based Servers (In Progress)
|
||||
|
||||
This should be a simple API call to notify a Hub of changes to topics. Again, this should provide real\-time notifications either synchronously or asynchronously. Importantly for Asynchronous notifications, they should block subsequent change notifications pending a notification to the Hub.
|
||||
|
||||
References:
|
||||
|
||||
{{{https://github.com/nlothian/RTUpdates/blob/master/src/com/nicklothian/pubsubhub/PubSubHubSubscriptionServlet.java}https://github.com/nlothian/RTUpdates/blob/master/src/com/nicklothian/pubsubhub/PubSubHubSubscriptionServlet.java}}
|
||||
|
||||
{{{http://grack.com/blog/2009/09/09/parsing\-the\-pubsubhubbub\-notifications/}http://grack.com/blog/2009/09/09/parsing\-the\-pubsubhubbub\-notifications/}}
|
||||
|
||||
Notes on the Code
|
||||
|
||||
It is still mostly a rough sketch, but the big outlines are there:
|
||||
|
||||
There are three main packages: pub, sub and hub.
|
||||
|
||||
The pub package is basically just a single utility class for pushing notifications to a hub.
|
||||
|
||||
The hub package contains the Hub class. This is a general business controller that is intended to allow you to build a servlet around it with a very, very thin veneer, but you could also use it to drive an XMPP or JMS version too. It is basically built by composition of a number of classes, for which there are some default implementations: A Verifier, which makes the callback to verify new subscriptions, the HubDAO which stores the current subscriptions and subscriber statistics, and a Notifier which actually sends notifications to the subscribers. There are a couple of implementations of each of these (though the JPA HubDAO is still in process). Mostly the implementations for the Verifier and Notifier support threadpooling or no\-threads (for App Engine use).
|
||||
|
||||
I have just started sketching out the sub package, but it basically has a "Subscriptions" class that will take in notifications (using the same "thin veneer" pattern that the Hub class uses). It is also constructed with some impls: A SubscriptionDAO that stores you current subscription information, a FeedFetcherCache that holds the received data, and a Requester that makes the subscription requests to hubs.
|
||||
|
||||
I am hoping to have a basic end to end example working sometime in the next week or so, but if anyone wants to look over what is there, feel free.
|
||||
|
|
|
@ -2,14 +2,24 @@
|
|||
<project xmlns="http://maven.apache.org/DECORATION/1.3.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
|
||||
name="ROME Incubator">
|
||||
name="ROME Certiorem">
|
||||
|
||||
<skin>
|
||||
<groupId>org.apache.maven.skins</groupId>
|
||||
<artifactId>maven-fluido-skin</artifactId>
|
||||
<version>1.3.0</version>
|
||||
</skin>
|
||||
|
||||
|
||||
<custom>
|
||||
<fluidoSkin>
|
||||
<gitHub>
|
||||
<projectId>rometools/rome-certiorem</projectId>
|
||||
<ribbonOrientation>right</ribbonOrientation>
|
||||
<ribbonColor>gray</ribbonColor>
|
||||
</gitHub>
|
||||
</fluidoSkin>
|
||||
</custom>
|
||||
|
||||
<bannerLeft>
|
||||
<name>ROME</name>
|
||||
<src>images/romelogo.png</src>
|
||||
|
@ -18,14 +28,13 @@
|
|||
|
||||
<publishDate position="right" />
|
||||
|
||||
<version position="right" />
|
||||
<version position="left" />
|
||||
|
||||
<body>
|
||||
<menu name="ROME Incubator">
|
||||
<menu name="ROME Certiorem">
|
||||
<item name="Overview" href="index.html" />
|
||||
<item name="Certiorem" href="Certiorem.html">
|
||||
<item name="Tutorial" href="CertioremTutorial.html" />
|
||||
</item>
|
||||
<item name="Tutorial" href="CertioremTutorial.html" />
|
||||
<item name="Example project" href="http://github.com/rometools/rome-certiorem-webapp/"/>
|
||||
</menu>
|
||||
<menu ref="reports" />
|
||||
</body>
|
||||
|
|
Loading…
Reference in a new issue