You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/07/06 15:43:21 UTC
zest-qi4j git commit: Metrics gets a little bit of care.
Repository: zest-qi4j
Updated Branches:
refs/heads/develop bbeb69e4b -> 579090ed6
Metrics gets a little bit of care.
Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/579090ed
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/579090ed
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/579090ed
Branch: refs/heads/develop
Commit: 579090ed640d9b9ca5e2949a84208894988773d8
Parents: bbeb69e
Author: Niclas Hedhman <he...@betfair.com>
Authored: Mon Jul 6 16:43:11 2015 +0300
Committer: Niclas Hedhman <he...@betfair.com>
Committed: Mon Jul 6 16:43:11 2015 +0300
----------------------------------------------------------------------
libraries/metrics/dev-status.xml | 2 +-
libraries/metrics/src/docs/metrics.txt | 26 ++++++-
.../library/metrics/DocumentationSupport.java | 79 ++++++++++++++++++++
.../org/qi4j/library/metrics/MetricsTest.java | 3 +-
4 files changed, 106 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/579090ed/libraries/metrics/dev-status.xml
----------------------------------------------------------------------
diff --git a/libraries/metrics/dev-status.xml b/libraries/metrics/dev-status.xml
index d3fd848..4ad3244 100644
--- a/libraries/metrics/dev-status.xml
+++ b/libraries/metrics/dev-status.xml
@@ -24,7 +24,7 @@
<codebase>early</codebase>
<!-- none, brief, good, complete -->
- <documentation>none</documentation>
+ <documentation>brief</documentation>
<!-- none, some, good, complete -->
<unittests>none</unittests>
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/579090ed/libraries/metrics/src/docs/metrics.txt
----------------------------------------------------------------------
diff --git a/libraries/metrics/src/docs/metrics.txt b/libraries/metrics/src/docs/metrics.txt
index 3072992..7ac1061 100644
--- a/libraries/metrics/src/docs/metrics.txt
+++ b/libraries/metrics/src/docs/metrics.txt
@@ -25,8 +25,8 @@ include::../../build/docs/buildinfo/artifact.txt[]
== Usage ==
There are currently the following possibilities available;
- * @TimingCapture
- * @Counting
+ * @TimingCapture - capture timing on a single method
+ * TimingCaptureAll - capture timing on all methods of a composite
Before looking at the details of these, we need to point out that there are some pre-conditions for Metrics to be
working. First of all, you need to install a Metrics Extensions, most likely the
@@ -39,3 +39,25 @@ production plant and likewise a good front-end to view this. See your chosen Met
There is a TimingCaptureAllConcern, which when added to a composite will install a _Timer_ for every method call
in the composite.
+== @TimingCapture ==
+The +@TimingCapture+ annotation can be placed on any method of the composite, to indicate that
+a Timer is wanted on that method.
+
+Example;
+
+[snippet,java]
+----
+source=libraries/metrics/src/test/java/org/qi4j/library/metrics/DocumentationSupport.java
+tag=capture
+----
+
+== Which method? ==
+It is valid to annotate either the composite interface methods or the mixin implementation methods.
+Any of the method declarations should work. From the testcases we have the following example;
+
+[snippet,java]
+----
+source=libraries/metrics/src/test/java/org/qi4j/library/metrics/MetricsTest.java
+tag=complex-capture
+----
+
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/579090ed/libraries/metrics/src/test/java/org/qi4j/library/metrics/DocumentationSupport.java
----------------------------------------------------------------------
diff --git a/libraries/metrics/src/test/java/org/qi4j/library/metrics/DocumentationSupport.java b/libraries/metrics/src/test/java/org/qi4j/library/metrics/DocumentationSupport.java
new file mode 100644
index 0000000..bd5dc4e
--- /dev/null
+++ b/libraries/metrics/src/test/java/org/qi4j/library/metrics/DocumentationSupport.java
@@ -0,0 +1,79 @@
+/*
+ * 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.qi4j.library.metrics;
+
+
+import java.util.List;
+import org.qi4j.bootstrap.Assembler;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+
+public class DocumentationSupport
+{
+// START SNIPPET: capture
+ public interface Router
+ {
+ @TimingCapture
+ List<Coordinate> route( String source, String destination );
+ }
+
+ public class RouterAlgorithm1
+ implements Router
+ {
+ @Override
+ public List<Coordinate> route( String source, String destination )
+ {
+// END SNIPPET: capture
+ return null;
+// START SNIPPET: capture
+ }
+ }
+
+ public class RouterAlgorithm2
+ implements Router
+ {
+ @Override
+ public List<Coordinate> route( String source, String destination )
+ {
+// END SNIPPET: capture
+ return null;
+// START SNIPPET: capture
+ }
+
+// END SNIPPET: capture
+ public class MyAsembler implements Assembler
+ {
+// START SNIPPET: capture
+ @Override
+ public void assemble( ModuleAssembly module )
+ throws AssemblyException
+ {
+ module.addServices( Router.class ).identifiedBy( "router1" ).withMixins( RouterAlgorithm1.class );
+ module.addServices( Router.class ).identifiedBy( "router2" ).withMixins( RouterAlgorithm2.class );
+// END SNIPPET: capture
+// START SNIPPET: capture
+ }
+ }
+ }
+// END SNIPPET: capture
+
+ public class Coordinate
+ {
+ }
+}
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/579090ed/libraries/metrics/src/test/java/org/qi4j/library/metrics/MetricsTest.java
----------------------------------------------------------------------
diff --git a/libraries/metrics/src/test/java/org/qi4j/library/metrics/MetricsTest.java b/libraries/metrics/src/test/java/org/qi4j/library/metrics/MetricsTest.java
index 9b4f1cc..2ec08be 100644
--- a/libraries/metrics/src/test/java/org/qi4j/library/metrics/MetricsTest.java
+++ b/libraries/metrics/src/test/java/org/qi4j/library/metrics/MetricsTest.java
@@ -133,6 +133,7 @@ public class MetricsTest extends AbstractQi4jTest
return result.toString();
}
+// START SNIPPET: complex-capture
public interface Country extends TransientComposite
{
@Optional
@@ -183,7 +184,6 @@ public class MetricsTest extends AbstractQi4jTest
public static abstract class Country3Mixin
implements Country3
{
-
@Override
@TimingCapture
public void updateName( String newName )
@@ -191,4 +191,5 @@ public class MetricsTest extends AbstractQi4jTest
name().set( newName );
}
}
+// END SNIPPET: complex-capture
}