You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by ol...@apache.org on 2014/03/18 01:30:21 UTC

svn commit: r1578684 - in /incubator/sirona/trunk: core/src/main/java/org/apache/sirona/store/tracking/ core/src/main/java/org/apache/sirona/tracking/ server/reporting/ server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/...

Author: olamy
Date: Tue Mar 18 00:30:20 2014
New Revision: 1578684

URL: http://svn.apache.org/r1578684
Log:
add a bean to have information on Path tracking

Added:
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/tracking/PathCallInformation.java   (with props)
Modified:
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/PathTrackingDataStore.java
    incubator/sirona/trunk/server/reporting/pom.xml
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/template/Templates.java
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/pathtrackingdetail.vm
    incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java
    incubator/sirona/trunk/server/store/cassandra/src/test/java/org/apache/sirona/cassandra/local/PathTrackingDataStoreTest.java

Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java Tue Mar 18 00:30:20 2014
@@ -17,6 +17,7 @@
 package org.apache.sirona.store.tracking;
 
 import org.apache.sirona.configuration.ioc.IoCs;
+import org.apache.sirona.tracking.PathCallInformation;
 import org.apache.sirona.tracking.PathTrackingEntry;
 
 import java.util.Collection;
@@ -62,7 +63,7 @@ public class DelegatedCollectorPathTrack
     }
 
     @Override
-    public Collection<String> retrieveTrackingIds( Date startTime, Date endTime )
+    public Collection<PathCallInformation> retrieveTrackingIds( Date startTime, Date endTime )
     {
         return this.delegatedPathTrackingDataStore.retrieveTrackingIds( startTime, endTime );
     }

Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java Tue Mar 18 00:30:20 2014
@@ -16,6 +16,7 @@
  */
 package org.apache.sirona.store.tracking;
 
+import org.apache.sirona.tracking.PathCallInformation;
 import org.apache.sirona.tracking.PathTrackingEntry;
 import org.apache.sirona.tracking.PathTrackingEntryComparator;
 import org.apache.sirona.util.SerializeUtils;
@@ -102,9 +103,9 @@ public class InMemoryPathTrackingDataSto
     }
 
     @Override
-    public Collection<String> retrieveTrackingIds( Date startTime, Date endTime )
+    public Collection<PathCallInformation> retrieveTrackingIds( Date startTime, Date endTime )
     {
-        List<String> trackingIds = new ArrayList<String>();
+        Set<PathCallInformation> trackingIds = new TreeSet<PathCallInformation>( PathCallInformation.COMPARATOR );
         for ( List<Pointer> buffers : this.pathTrackingEntries.values() )
         {
             if ( pathTrackingEntries.isEmpty() )
@@ -118,7 +119,8 @@ public class InMemoryPathTrackingDataSto
             if ( first.getStartTime() / 1000000 > startTime.getTime() //
                 && first.getStartTime() / 1000000 < endTime.getTime() )
             {
-                trackingIds.add( first.getTrackingId() );
+                trackingIds.add(
+                    new PathCallInformation( first.getTrackingId(), new Date( startTime.getTime() / 1000000 ) ) );
             }
         }
         return trackingIds;
@@ -233,7 +235,7 @@ public class InMemoryPathTrackingDataSto
             }
         }
 
-        for (String key : entriesToRemove)
+        for ( String key : entriesToRemove )
         {
             pathTrackingEntries.remove( key );
         }

Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/PathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/PathTrackingDataStore.java?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/PathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/PathTrackingDataStore.java Tue Mar 18 00:30:20 2014
@@ -16,6 +16,7 @@
  */
 package org.apache.sirona.store.tracking;
 
+import org.apache.sirona.tracking.PathCallInformation;
 import org.apache.sirona.tracking.PathTrackingEntry;
 
 import java.util.Collection;
@@ -44,9 +45,9 @@ public interface PathTrackingDataStore
     /**
      * @param startTime
      * @param endTime
-     * @return {@link java.lang.String} of all trackingIds available in the system between startTime and endTime
+     * @return {@link org.apache.sirona.tracking.PathCallInformation} of all trackingIds available in the system between startTime and endTime
      */
-    Collection<String> retrieveTrackingIds( Date startTime, Date endTime );
+    Collection<PathCallInformation> retrieveTrackingIds( Date startTime, Date endTime );
 
 
 

Added: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/tracking/PathCallInformation.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/tracking/PathCallInformation.java?rev=1578684&view=auto
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/tracking/PathCallInformation.java (added)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/tracking/PathCallInformation.java Tue Mar 18 00:30:20 2014
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.sirona.tracking;
+
+import java.io.Serializable;
+import java.util.Comparator;
+import java.util.Date;
+
+/**
+ *
+ */
+public class PathCallInformation
+    implements Serializable
+{
+
+    // use a default value here
+    private static final long serialVersionUID = 4L;
+
+    private String trackingId;
+
+    /**
+     * start time for the path in in nano seconds
+     */
+    private Date startTime;
+
+    public PathCallInformation( String trackingId, Date startTime )
+    {
+        this.trackingId = trackingId;
+        this.startTime = startTime;
+    }
+
+    public String getTrackingId()
+    {
+        return trackingId;
+    }
+
+    public void setTrackingId( String trackingId )
+    {
+        this.trackingId = trackingId;
+    }
+
+    public Date getStartTime()
+    {
+        return startTime;
+    }
+
+    public void setStartTime( Date startTime )
+    {
+        this.startTime = startTime;
+    }
+
+    @Override
+    public String toString()
+    {
+        return "PathCallInformation{" +
+            "trackingId='" + trackingId + '\'' +
+            ", startTime=" + startTime +
+            '}';
+    }
+
+    /**
+     * start time comparaison
+     */
+    public static final Comparator<PathCallInformation> COMPARATOR = new Comparator<PathCallInformation>()
+    {
+        @Override
+        public int compare( PathCallInformation o1, PathCallInformation o2 )
+        {
+            return o1.getStartTime().compareTo( o2.getStartTime() );
+        }
+    };
+}

Propchange: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/tracking/PathCallInformation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/tracking/PathCallInformation.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: incubator/sirona/trunk/server/reporting/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/pom.xml?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/pom.xml (original)
+++ incubator/sirona/trunk/server/reporting/pom.xml Tue Mar 18 00:30:20 2014
@@ -69,6 +69,17 @@
       <artifactId>velocity</artifactId>
       <version>1.7</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.velocity</groupId>
+      <artifactId>velocity-tools</artifactId>
+      <version>2.0</version>
+      <exclusions>
+        <exclusion>
+          <groupId>javax.servlet</groupId>
+          <artifactId>servlet-api</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
 
     <dependency>
       <groupId>junit</groupId>

Modified: incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java (original)
+++ incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java Tue Mar 18 00:30:20 2014
@@ -22,6 +22,7 @@ import org.apache.sirona.reporting.web.p
 import org.apache.sirona.reporting.web.plugin.api.Template;
 import org.apache.sirona.reporting.web.plugin.report.format.HTMLFormat;
 import org.apache.sirona.store.tracking.PathTrackingDataStore;
+import org.apache.sirona.tracking.PathCallInformation;
 import org.apache.sirona.tracking.PathTrackingEntry;
 import org.apache.sirona.util.Environment;
 
@@ -53,9 +54,10 @@ public class PathTrackingEndpoints
         Calendar cal = Calendar.getInstance();
         cal.add( Calendar.DATE, -1 );
 
-        Collection<String> ids = PATH_TRACKING_DATA_STORE.retrieveTrackingIds( cal.getTime(), new Date() );
+        Collection<PathCallInformation> pathCallInformations =
+            PATH_TRACKING_DATA_STORE.retrieveTrackingIds( cal.getTime(), new Date() );
 
-        params.put( "trackingIds", ids );
+        params.put( "pathCallInformations", pathCallInformations );
 
         return new Template( "pathtracking/home.vm", params );
     }
@@ -64,13 +66,19 @@ public class PathTrackingEndpoints
     public String startend( final long start, final long end )
     {
 
-        Collection<String> entries = PATH_TRACKING_DATA_STORE.retrieveTrackingIds( new Date( start ), new Date( end ) );
+        Collection<PathCallInformation> entries =
+            PATH_TRACKING_DATA_STORE.retrieveTrackingIds( new Date( start ), new Date( end ) );
 
         MapBuilder<String, String> mapBuilder = new MapBuilder<String, String>();
 
-        for ( String entry : entries )
+        for ( PathCallInformation entry : entries )
         {
-            mapBuilder = mapBuilder.set( "trackingId", entry );
+            mapBuilder = mapBuilder.set( //
+                                         new MapBuilder<String, String>() //
+                                             .set( "trackingId", entry.getTrackingId() ) //
+                                             .set( "startTime", Long.toString( entry.getStartTime() ) ) //
+                                             .build()
+            );
         }
 
         return toJson( mapBuilder.build() );

Modified: incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/template/Templates.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/template/Templates.java?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/template/Templates.java (original)
+++ incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/template/Templates.java Tue Mar 18 00:30:20 2014
@@ -105,7 +105,7 @@ public final class Templates
         {
             context = new VelocityContext( variables );
         }
-        context.put( "date", new DateTool() );
+        context.put( "dateTool", new DateTool() );
         return context;
     }
 

Modified: incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm (original)
+++ incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm Tue Mar 18 00:30:20 2014
@@ -18,8 +18,8 @@
     <div class="row">
         <div class="col-lg-3">
             <ul>
-            #foreach( $id in $trackingIds )
-                <li><a href="$mapping/pathtracking/pathtrackingdetail/$id">$id</a></li>
+            #foreach( $pathCallInformation in $pathCallInformations )
+                <li><a href="$mapping/pathtracking/pathtrackingdetail/$pathCallInformation.trackingId">$pathCallInformation.trackingId:  $dateTool.format("yyyy-MM-dd'T'HH:mm:ssz", $pathCallInformation.startTime.time)</a></li>
             #end
             </ul>
         </div>

Modified: incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/pathtrackingdetail.vm
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/pathtrackingdetail.vm?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/pathtrackingdetail.vm (original)
+++ incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/pathtrackingdetail.vm Tue Mar 18 00:30:20 2014
@@ -19,7 +19,7 @@
         <div class="col-lg-9">
             <ul>
               #foreach( $entry in $entries)
-                <li>$entry.className:$entry.methodName</li>
+                <li>$entry.className:$entry.methodName:$entry.level:$entry.executionTime</li>
               #end
             </ul>
         </div>

Modified: incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java Tue Mar 18 00:30:20 2014
@@ -32,6 +32,7 @@ import org.apache.sirona.configuration.i
 import org.apache.sirona.store.tracking.BatchPathTrackingDataStore;
 import org.apache.sirona.store.tracking.CollectorPathTrackingDataStore;
 import org.apache.sirona.store.tracking.PathTrackingDataStore;
+import org.apache.sirona.tracking.PathCallInformation;
 import org.apache.sirona.tracking.PathTrackingEntry;
 import org.apache.sirona.tracking.PathTrackingEntryComparator;
 
@@ -39,7 +40,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -185,7 +185,7 @@ public class CassandraPathTrackingDataSt
     }
 
     @Override
-    public Collection<String> retrieveTrackingIds( Date startTime, Date endTime )
+    public Collection<PathCallInformation> retrieveTrackingIds( Date startTime, Date endTime )
     {
 
         final QueryResult<OrderedRows<String, String, Long>> cResult = //
@@ -200,7 +200,7 @@ public class CassandraPathTrackingDataSt
 
         int size = cResult.get().getList().size();
 
-        Set<String> ids = new HashSet<String>( size );
+        Set<PathCallInformation> ids = new TreeSet<PathCallInformation>( PathCallInformation.COMPARATOR );
 
         OrderedRows<String, String, Long> rows = cResult.get();
 
@@ -215,7 +215,8 @@ public class CassandraPathTrackingDataSt
 
             PathTrackingEntry pathTrackingEntry = map( columnSlice );
 
-            ids.add( pathTrackingEntry.getTrackingId() );
+            ids.add( new PathCallInformation( pathTrackingEntry.getTrackingId(),
+                                              new Date( pathTrackingEntry.getStartTime() / 1000000 ) ) );
         }
 
         return ids;

Modified: incubator/sirona/trunk/server/store/cassandra/src/test/java/org/apache/sirona/cassandra/local/PathTrackingDataStoreTest.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/store/cassandra/src/test/java/org/apache/sirona/cassandra/local/PathTrackingDataStoreTest.java?rev=1578684&r1=1578683&r2=1578684&view=diff
==============================================================================
--- incubator/sirona/trunk/server/store/cassandra/src/test/java/org/apache/sirona/cassandra/local/PathTrackingDataStoreTest.java (original)
+++ incubator/sirona/trunk/server/store/cassandra/src/test/java/org/apache/sirona/cassandra/local/PathTrackingDataStoreTest.java Tue Mar 18 00:30:20 2014
@@ -23,6 +23,7 @@ import org.apache.sirona.cassandra.colle
 import org.apache.sirona.cassandra.framework.CassandraRunner;
 import org.apache.sirona.cassandra.framework.CassandraTestInject;
 import org.apache.sirona.configuration.ioc.IoCs;
+import org.apache.sirona.tracking.PathCallInformation;
 import org.apache.sirona.tracking.PathTrackingEntry;
 import org.junit.Assert;
 import org.junit.Test;
@@ -136,11 +137,11 @@ public class PathTrackingDataStoreTest
             Calendar yesterday = Calendar.getInstance();
             yesterday.add( Calendar.DATE, -1 );
 
-            Collection<String> trackingIds = getStore().retrieveTrackingIds( yesterday.getTime(), new Date() );
+            Collection<PathCallInformation> trackingIds = getStore().retrieveTrackingIds( yesterday.getTime(), new Date() );
 
             Assert.assertEquals( 1, trackingIds.size() );
 
-            Assert.assertEquals( first.getTrackingId(), trackingIds.iterator().next() );
+            Assert.assertEquals( first.getTrackingId(), trackingIds.iterator().next().getTrackingId() );
 
 
         }
@@ -213,12 +214,12 @@ public class PathTrackingDataStoreTest
             Calendar yesterday = Calendar.getInstance();
             yesterday.add( Calendar.DATE, -1 );
 
-            Collection<String> trackingIds = getStore().retrieveTrackingIds( yesterday.getTime(), new Date() );
+            Collection<PathCallInformation> trackingIds = getStore().retrieveTrackingIds( yesterday.getTime(), new Date() );
 
 
             Assert.assertEquals( 1, trackingIds.size() );
 
-            Assert.assertEquals( first.getTrackingId(), trackingIds.iterator().next() );
+            Assert.assertEquals( first.getTrackingId(), trackingIds.iterator().next().getTrackingId() );
 
             Collection<PathTrackingEntry> entries = getStore().retrieve( firstuuid );