You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2010/01/05 14:17:50 UTC
svn commit: r896032 - in
/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl:
AbstractRepositoryEventHandler.java JobEventHandler.java TimedJobHandler.java
Author: cziegeler
Date: Tue Jan 5 13:17:49 2010
New Revision: 896032
URL: http://svn.apache.org/viewvc?rev=896032&view=rev
Log:
Minor performance improvement: get root node only once and store it
Modified:
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java?rev=896032&r1=896031&r2=896032&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java Tue Jan 5 13:17:49 2010
@@ -97,6 +97,9 @@
* Sling settings service. */
protected SlingSettingsService settingsService;
+ /** The root node for writing. */
+ private Node writeRootNode;
+
public static String APPLICATION_ID;
/**
@@ -164,6 +167,7 @@
} catch (InterruptedException e) {
this.ignoreException(e);
}
+ this.writeRootNode = null;
}
/**
@@ -187,9 +191,10 @@
*/
protected void startWriterSession() throws RepositoryException {
this.writerSession = this.createSession();
- if ( this.repositoryPath != null ) {
- this.ensureRepositoryPath();
- }
+ this.writeRootNode = JcrResourceUtil.createPath(this.repositoryPath,
+ EventHelper.NODETYPE_FOLDER,
+ EventHelper.NODETYPE_ORDERED_FOLDER,
+ this.writerSession, true);
}
/**
@@ -209,23 +214,17 @@
}
/**
- * Check if the repository path already exists. If not, create it.
+ * Return the node type for the event.
*/
- protected Node ensureRepositoryPath()
- throws RepositoryException {
- final Node node = JcrResourceUtil.createPath(this.repositoryPath,
- EventHelper.NODETYPE_FOLDER,
- EventHelper.NODETYPE_ORDERED_FOLDER,
- this.writerSession, true);
-
- return node;
+ protected String getEventNodeType() {
+ return EventHelper.EVENT_NODE_TYPE;
}
/**
- * Return the node type for the event.
+ * Get the root node from the writer session.
*/
- protected String getEventNodeType() {
- return EventHelper.EVENT_NODE_TYPE;
+ protected Node getWriterRootNode() {
+ return this.writeRootNode;
}
/**
@@ -238,7 +237,7 @@
protected Node writeEvent(Event e, String suggestedName)
throws RepositoryException {
// create new node with name of topic
- final Node rootNode = this.ensureRepositoryPath();
+ final Node rootNode = this.getWriterRootNode();
final String nodeType = this.getEventNodeType();
final String nodeName;
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java?rev=896032&r1=896031&r2=896032&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java Tue Jan 5 13:17:49 2010
@@ -463,7 +463,7 @@
}
try {
// let's first search for an existing node with the same id
- final Node parentNode = this.ensureRepositoryPath();
+ final Node parentNode = this.getWriterRootNode();
Node foundNode = null;
if ( parentNode.hasNode(nodePath) ) {
foundNode = parentNode.getNode(nodePath);
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java?rev=896032&r1=896031&r2=896032&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java Tue Jan 5 13:17:49 2010
@@ -195,7 +195,7 @@
protected String persistEvent(final Event event, final ScheduleInfo scheduleInfo) {
try {
// get parent node
- final Node parentNode = this.ensureRepositoryPath();
+ final Node parentNode = this.getWriterRootNode();
final String nodeName = scheduleInfo.jobId;
// is there already a node?
final Node foundNode = parentNode.hasNode(nodeName) ? parentNode.getNode(nodeName) : null;