You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/04/14 18:07:26 UTC

svn commit: r1739133 - in /qpid/java/trunk: bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/ broker-codegen/src/main/java/org/apache/qpid/server/model/validation/ broker-core/src/main/java/org/apache/qpid/server/model/ broker-c...

Author: kwall
Date: Thu Apr 14 16:07:26 2016
New Revision: 1739133

URL: http://svn.apache.org/viewvc?rev=1739133&view=rev
Log:
QPID-7158: [Java Broker] Support attribute values of type java.util.Date

* Change all attributes that express dates to be of type Date
* Allow for statistics of type Date

Modified:
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNode.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.java
    qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodStatistic.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectStatistic.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Session.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStore.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStore.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStoreImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNode.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNode.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNode.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNode.java Thu Apr 14 16:07:26 2016
@@ -20,6 +20,8 @@
  */
 package org.apache.qpid.server.virtualhostnode.berkeleydb;
 
+import java.util.Date;
+
 import org.apache.qpid.server.model.DerivedAttribute;
 import org.apache.qpid.server.model.ManagedAttribute;
 import org.apache.qpid.server.model.ManagedObject;
@@ -45,7 +47,7 @@ public interface BDBHARemoteReplicationN
     NodeRole getRole();
 
     @DerivedAttribute
-    long getJoinTime();
+    Date getJoinTime();
 
     @DerivedAttribute
     long getLastKnownReplicationTransactionId();

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.java Thu Apr 14 16:07:26 2016
@@ -23,6 +23,7 @@ package org.apache.qpid.server.virtualho
 
 import static org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHAVirtualHostNodeImpl.MUTATE_JE_TIMEOUT_MS;
 
+import java.util.Date;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
@@ -61,7 +62,7 @@ public class BDBHARemoteReplicationNodeI
     private final String _address;
     private final Broker _broker;
 
-    private volatile long _joinTime;
+    private volatile Date _joinTime;
     private volatile long _lastTransactionId;
 
     @ManagedAttributeField(afterSet="afterSetRole")
@@ -101,7 +102,7 @@ public class BDBHARemoteReplicationNodeI
     }
 
     @Override
-    public long getJoinTime()
+    public Date getJoinTime()
     {
         return _joinTime;
     }
@@ -240,7 +241,7 @@ public class BDBHARemoteReplicationNodeI
 
     void setJoinTime(long joinTime)
     {
-        _joinTime = joinTime;
+        _joinTime = new Date(joinTime);
     }
 
     void setLastTransactionId(long lastTransactionId)

Modified: qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java (original)
+++ qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java Thu Apr 14 16:07:26 2016
@@ -201,21 +201,24 @@ public class AttributeAnnotationValidato
             checkMethodTakesNoArgs(annotationElement, methodElement);
             checkMethodName(annotationElement, methodElement);
             checkTypeAgreesWithName(annotationElement, methodElement);
-            checkMethodReturnTypeIsNumber(annotationElement, methodElement);
+            checkMethodReturnTypeIsNumberOrDate(annotationElement, methodElement);
 
         }
     }
 
-    private void checkMethodReturnTypeIsNumber(final TypeElement annotationElement,
-                                               final ExecutableElement methodElement)
+    private void checkMethodReturnTypeIsNumberOrDate(final TypeElement annotationElement,
+                                                     final ExecutableElement methodElement)
     {
         TypeMirror numberType = elementUtils.getTypeElement("java.lang.Number").asType();
-        if(!typeUtils.isAssignable(methodElement.getReturnType(),numberType))
+        TypeMirror dateType = elementUtils.getTypeElement("java.util.Date").asType();
+        if(!typeUtils.isAssignable(methodElement.getReturnType(),numberType)
+                && !typeUtils.isSameType(methodElement.getReturnType(), dateType))
         {
             messager.printMessage(Diagnostic.Kind.ERROR,
                                   "@"
                                   + annotationElement.getSimpleName()
-                                  + " return type does not extend Number: "
+                                  + " return type does not extend java.lang.Number"
+                                  + " and is not java.util.Date : "
                                   + methodElement.getReturnType().toString(),
                                   methodElement
                                  );
@@ -380,6 +383,11 @@ public class AttributeAnnotationValidato
         {
             return true;
         }
+
+        if(typeUtils.isSameType(type,elementUtils.getTypeElement("java.util.Date").asType()))
+        {
+            return true;
+        }
 
         if(typeUtils.isSameType(type,elementUtils.getTypeElement("java.net.URI").asType()))
         {

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java Thu Apr 14 16:07:26 2016
@@ -2711,13 +2711,13 @@ public abstract class AbstractConfigured
 
 
     @Override
-    public Map<String,Number> getStatistics()
+    public Map<String, Object> getStatistics()
     {
         Collection<ConfiguredObjectStatistic> stats = _model.getTypeRegistry().getStatistics(getClass());
-        Map<String,Number> map = new HashMap<String,Number>();
+        Map<String,Object> map = new HashMap<>();
         for(ConfiguredObjectStatistic stat : stats)
         {
-            map.put(stat.getName(), (Number) stat.getValue(this));
+            map.put(stat.getName(), stat.getValue(this));
         }
         return map;
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java Thu Apr 14 16:07:26 2016
@@ -206,7 +206,7 @@ public interface ConfiguredObject<X exte
      *
      * @return the current statistics for the ConfiguredObject
      */
-    Map<String,Number> getStatistics();
+    Map<String, Object> getStatistics();
 
     /**
      * Return children of the ConfiguredObject of the given class

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodStatistic.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodStatistic.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodStatistic.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodStatistic.java Thu Apr 14 16:07:26 2016
@@ -21,8 +21,9 @@
 package org.apache.qpid.server.model;
 
 import java.lang.reflect.Method;
+import java.util.Date;
 
-public final class ConfiguredObjectMethodStatistic<C extends ConfiguredObject, T extends Number>
+public final class ConfiguredObjectMethodStatistic<C extends ConfiguredObject, T extends Object>
         extends ConfiguredObjectMethodAttributeOrStatistic<C,T> implements ConfiguredObjectStatistic<C, T>
 {
     private final ManagedStatistic _annotation;
@@ -36,9 +37,9 @@ public final class ConfiguredObjectMetho
             throw new IllegalArgumentException("ManagedStatistic annotation should only be added to no-arg getters");
         }
 
-        if(!Number.class.isAssignableFrom(getType()))
+        if(!Number.class.isAssignableFrom(getType()) && !Date.class.equals(getType()))
         {
-            throw new IllegalArgumentException("ManagedStatistic annotation should only be added to getters returning a Number type");
+            throw new IllegalArgumentException("ManagedStatistic annotation should only be added to getters returning a Number or Date type");
         }
     }
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectStatistic.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectStatistic.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectStatistic.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectStatistic.java Thu Apr 14 16:07:26 2016
@@ -20,7 +20,7 @@
  */
 package org.apache.qpid.server.model;
 
-public interface ConfiguredObjectStatistic<C extends ConfiguredObject, T extends Number> extends ConfiguredObjectAttributeOrStatistic<C,T>
+public interface ConfiguredObjectStatistic<C extends ConfiguredObject, T extends Object> extends ConfiguredObjectAttributeOrStatistic<C,T>
 {
     String getDescription();
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java Thu Apr 14 16:07:26 2016
@@ -21,6 +21,7 @@
 package org.apache.qpid.server.model;
 
 import java.util.Collection;
+import java.util.Date;
 
 import org.apache.qpid.server.transport.AMQPConnection;
 
@@ -113,7 +114,7 @@ public interface Connection<X extends Co
     long getMessagesOut();
 
     @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.ABSOLUTE_TIME, label = "Last I/O time")
-    long getLastIoTime();
+    Date getLastIoTime();
 
     @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.COUNT, label = "Sessions")
     int getSessionCount();

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Session.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Session.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Session.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Session.java Thu Apr 14 16:07:26 2016
@@ -21,6 +21,7 @@
 package org.apache.qpid.server.model;
 
 import java.util.Collection;
+import java.util.Date;
 
 @ManagedObject
 public interface Session<X extends Session<X>> extends ConfiguredObject<X>
@@ -61,7 +62,7 @@ public interface Session<X extends Sessi
      * @return the time this transaction started or 0 if not in a transaction
      */
     @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.ABSOLUTE_TIME, label = "Last Transaction Start")
-    long getTransactionStartTime();
+    Date getTransactionStartTime();
 
     /**
      * Return the time of the last activity on the current transaction.
@@ -69,5 +70,5 @@ public interface Session<X extends Sessi
      * @return the time of the last activity or 0 if not in a transaction
      */
     @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.ABSOLUTE_TIME, label = "Last Transaction Update")
-    long getTransactionUpdateTime();
+    Date getTransactionUpdateTime();
 }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java Thu Apr 14 16:07:26 2016
@@ -22,6 +22,7 @@ package org.apache.qpid.server.model.ada
 
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
@@ -163,15 +164,15 @@ public final class SessionAdapter extend
     }
 
     @Override
-    public long getTransactionStartTime()
+    public Date getTransactionStartTime()
     {
-        return _session.getTransactionStartTime();
+        return new Date(_session.getTransactionStartTime());
     }
 
     @Override
-    public long getTransactionUpdateTime()
+    public Date getTransactionUpdateTime()
     {
-        return _session.getTransactionUpdateTime();
+        return new Date(_session.getTransactionUpdateTime());
     }
 
     @StateTransition(currentState = State.ACTIVE, desiredState = State.DELETED)

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStore.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStore.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStore.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStore.java Thu Apr 14 16:07:26 2016
@@ -20,6 +20,8 @@
  */
 package org.apache.qpid.server.security;
 
+import java.util.Date;
+
 import org.apache.qpid.server.model.DerivedAttribute;
 import org.apache.qpid.server.model.KeyStore;
 import org.apache.qpid.server.model.ManagedAttribute;
@@ -44,8 +46,8 @@ public interface NonJavaKeyStore<X exten
     String getSubjectName();
 
     @DerivedAttribute
-    public long getCertificateValidEnd();
+    public Date getCertificateValidEnd();
 
     @DerivedAttribute
-    public long getCertificateValidStart();
+    public Date getCertificateValidStart();
 }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java Thu Apr 14 16:07:26 2016
@@ -150,15 +150,15 @@ public class NonJavaKeyStoreImpl extends
     }
 
     @Override
-    public long getCertificateValidEnd()
+    public Date getCertificateValidEnd()
     {
-        return _certificate == null ? 0 : _certificate.getNotAfter().getTime();
+        return _certificate == null ? new Date(0) : _certificate.getNotAfter();
     }
 
     @Override
-    public long getCertificateValidStart()
+    public Date getCertificateValidStart()
     {
-        return _certificate == null ? 0 : _certificate.getNotBefore().getTime();
+        return _certificate == null ? new Date(0) : _certificate.getNotBefore();
     }
 
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStore.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStore.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStore.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStore.java Thu Apr 14 16:07:26 2016
@@ -20,6 +20,8 @@
  */
 package org.apache.qpid.server.security;
 
+import java.util.Date;
+
 import org.apache.qpid.server.model.DerivedAttribute;
 import org.apache.qpid.server.model.ManagedAttribute;
 import org.apache.qpid.server.model.ManagedObject;
@@ -50,10 +52,10 @@ public interface SiteSpecificTrustStore<
     String getCertificateSignature();
 
     @DerivedAttribute
-    String getCertificateValidFromDate();
+    Date getCertificateValidFromDate();
 
     @DerivedAttribute
-    String getCertificateValidUntilDate();
+    Date getCertificateValidUntilDate();
 
     @ManagedOperation
     void refreshCertificate();

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStoreImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStoreImpl.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStoreImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SiteSpecificTrustStoreImpl.java Thu Apr 14 16:07:26 2016
@@ -29,12 +29,11 @@ import java.security.cert.CertificateEnc
 import java.security.cert.CertificateException;
 import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.TimeZone;
 
 import javax.net.ssl.KeyManager;
 import javax.net.ssl.SSLContext;
@@ -333,20 +332,16 @@ public class SiteSpecificTrustStoreImpl
     }
 
     @Override
-    public String getCertificateValidFromDate()
+    public Date getCertificateValidFromDate()
     {
-        SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, MMM d, YYYY 'at' HH:mm:ss z");
-        dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
-        return _x509Certificate == null ? null : dateFormat.format(_x509Certificate.getNotBefore());
+        return _x509Certificate == null ? null : _x509Certificate.getNotBefore();
     }
 
 
     @Override
-    public String getCertificateValidUntilDate()
+    public Date getCertificateValidUntilDate()
     {
-        SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, MMM d, YYYY 'at' HH:mm:ss z");
-        dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
-        return _x509Certificate == null ? null : dateFormat.format(_x509Certificate.getNotAfter());
+        return _x509Certificate == null ? null :_x509Certificate.getNotAfter();
     }
 
     @Override

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java Thu Apr 14 16:07:26 2016
@@ -27,6 +27,7 @@ import java.security.AccessController;
 import java.security.Principal;
 import java.security.PrivilegedAction;
 import java.util.Collection;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -222,9 +223,9 @@ public abstract class AbstractAMQPConnec
     }
 
     @Override
-    public final long getLastIoTime()
+    public final Date getLastIoTime()
     {
-        return Math.max(getLastReadTime(), getLastWriteTime());
+        return new Date(Math.max(getLastReadTime(), getLastWriteTime()));
     }
 
     @Override

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java Thu Apr 14 16:07:26 2016
@@ -306,7 +306,7 @@ public class InjectedAttributeTest exten
 
         TestCar<?> testCar = new TestStandardCarImpl(Collections.<String,Object>singletonMap("name", "Arthur"), model);
 
-        final Map<String, Number> statistics = testCar.getStatistics();
+        final Map<String, Object> statistics = testCar.getStatistics();
         assertEquals("incorrect number of statistics", 1, statistics.size());
         assertEquals("incorrect statistic value", 42, statistics.get("meaningOfLife"));
     }
@@ -346,7 +346,7 @@ public class InjectedAttributeTest exten
 
         TestCar<?> testCar = new TestStandardCarImpl(Collections.<String,Object>singletonMap("name", "Arthur"), model);
 
-        final Map<String, Number> statistics = testCar.getStatistics();
+        final Map<String, Object> statistics = testCar.getStatistics();
         assertEquals("incorrect number of statistics", 2, statistics.size());
         assertEquals("incorrect statistic value", 1, statistics.get("whatISent1"));
         assertEquals("incorrect statistic value", 2, statistics.get("whatISent2"));

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java Thu Apr 14 16:07:26 2016
@@ -845,6 +845,20 @@ public class AbstractConfiguredObjectTes
         assertTrue("Last update time should be updated by update", object.getLastUpdatedTime().compareTo(createdTime) > 0);
     }
 
+    public void testStatistics() throws Exception
+    {
+        final String objectName = "myName";
+
+        Map<String, Object> attributes = new HashMap<>();
+        attributes.put(TestSingleton.NAME, objectName);
+
+        TestSingleton object = _model.getObjectFactory().create(TestSingleton.class, attributes);
+
+        final Map<String, Object> stats = object.getStatistics();
+        assertEquals("Unexpected number of statistics", 1, stats.size());
+        assertTrue("Expected statistic not found", stats.containsKey("longStatistic"));
+    }
+
     private static class NoopConfigurationChangeListener implements ConfigurationChangeListener
     {
         @Override

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java Thu Apr 14 16:07:26 2016
@@ -28,6 +28,9 @@ import org.apache.qpid.server.model.Deri
 import org.apache.qpid.server.model.ManagedAttribute;
 import org.apache.qpid.server.model.ManagedContextDefault;
 import org.apache.qpid.server.model.ManagedObject;
+import org.apache.qpid.server.model.ManagedStatistic;
+import org.apache.qpid.server.model.StatisticType;
+import org.apache.qpid.server.model.StatisticUnit;
 
 @ManagedObject( defaultType = TestSingletonImpl.TEST_SINGLETON_TYPE)
 public interface TestSingleton<X extends TestSingleton<X>> extends ConfiguredObject<X>
@@ -105,4 +108,7 @@ public interface TestSingleton<X extends
     @ManagedAttribute(immutable = true)
     String getImmutableValue();
 
+    @ManagedStatistic(units = StatisticUnit.ABSOLUTE_TIME, statisticType = StatisticType.POINT_IN_TIME)
+    Long getLongStatistic();
+
 }

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java?rev=1739133&r1=1739132&r2=1739133&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java Thu Apr 14 16:07:26 2016
@@ -200,4 +200,10 @@ public class TestSingletonImpl extends A
     {
         return _dateValue;
     }
+
+    @Override
+    public Long getLongStatistic()
+    {
+        return System.currentTimeMillis();
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org