You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by be...@apache.org on 2009/05/22 22:29:51 UTC

svn commit: r777697 - in /mina/sandbox/vysper/trunk/src/main: config/ java/org/apache/vysper/xmpp/datetime/ java/org/apache/vysper/xmpp/modules/extension/xep0202_entity_time/

Author: berndf
Date: Fri May 22 20:29:50 2009
New Revision: 777697

URL: http://svn.apache.org/viewvc?rev=777697&view=rev
Log:
[vysper] implement date time profile (XEP-0082 as a utility (VYSPER-66)

Added:
    mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/datetime/
    mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/datetime/DateTimeProfile.java
Modified:
    mina/sandbox/vysper/trunk/src/main/config/spring-config.xml
    mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0202_entity_time/EntityTimeIQHandler.java

Modified: mina/sandbox/vysper/trunk/src/main/config/spring-config.xml
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/config/spring-config.xml?rev=777697&r1=777696&r2=777697&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/config/spring-config.xml (original)
+++ mina/sandbox/vysper/trunk/src/main/config/spring-config.xml Fri May 22 20:29:50 2009
@@ -103,6 +103,8 @@
                 <bean class="org.apache.vysper.xmpp.modules.servicediscovery.ServiceDiscoveryModule" />
                 <bean class="org.apache.vysper.xmpp.modules.roster.RosterModule" />
                 <bean class="org.apache.vysper.xmpp.modules.extension.xep0092_software_version.SoftwareVersionModule" />
+                <bean class="org.apache.vysper.xmpp.modules.extension.xep0202_entity_time.EntityTimeModule" />
+                <bean class="org.apache.vysper.xmpp.modules.extension.xep0054_vcardtemp.VcardTempModule" />
                 <bean class="org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PublishSubscribeModule" />
             </list>
         </property>

Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/datetime/DateTimeProfile.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/datetime/DateTimeProfile.java?rev=777697&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/datetime/DateTimeProfile.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/datetime/DateTimeProfile.java Fri May 22 20:29:50 2009
@@ -0,0 +1,52 @@
+package org.apache.vysper.xmpp.datetime;
+
+import org.apache.vysper.compliance.SpecCompliant;
+import static org.apache.vysper.compliance.SpecCompliant.ComplianceCoverage.COMPLETE;
+import static org.apache.vysper.compliance.SpecCompliant.ComplianceStatus.IN_PROGRESS;
+
+import java.util.TimeZone;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+
+/**
+ * provides dates and times in XMPP conform formats
+ */
+@SpecCompliant(spec = "XEP-0082", status = IN_PROGRESS, coverage = COMPLETE)
+public class DateTimeProfile {
+
+    protected static final SimpleDateFormat utcDateFormatter;
+    protected static final SimpleDateFormat utcDateTimeFormatter;
+    protected static final SimpleDateFormat utcTimeFormatter;
+    
+    static {
+        utcDateTimeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+        utcDateTimeFormatter.setTimeZone(TimeZone.getTimeZone("UTC")); // convert to UTC
+        utcDateFormatter = new SimpleDateFormat("yyyy-MM-dd");
+        utcDateFormatter.setTimeZone(TimeZone.getTimeZone("UTC")); // convert to UTC
+        utcTimeFormatter = new SimpleDateFormat("HH:mm:ss'Z'");
+        utcTimeFormatter.setTimeZone(TimeZone.getTimeZone("UTC")); // convert to UTC
+    }
+    
+    private final static DateTimeProfile SINGLETON = new DateTimeProfile();
+
+    public static DateTimeProfile getInstance() {
+        return SINGLETON;     
+    }
+    
+    protected DateTimeProfile() {
+        // empty
+    }
+
+    public String getDateTimeInUTC(Date time) {
+        return utcDateTimeFormatter.format(time);
+    }
+
+    public String getDateInUTC(Date time) {
+        return utcDateFormatter.format(time);
+    }
+
+    public String getTimeInUTC(Date time) {
+        return utcTimeFormatter.format(time);
+    }
+
+}

Modified: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0202_entity_time/EntityTimeIQHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0202_entity_time/EntityTimeIQHandler.java?rev=777697&r1=777696&r2=777697&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0202_entity_time/EntityTimeIQHandler.java (original)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0202_entity_time/EntityTimeIQHandler.java Fri May 22 20:29:50 2009
@@ -28,10 +28,10 @@
 import org.apache.vysper.xmpp.stanza.IQStanzaType;
 import org.apache.vysper.xmpp.stanza.Stanza;
 import org.apache.vysper.xmpp.stanza.StanzaBuilder;
+import org.apache.vysper.xmpp.datetime.DateTimeProfile;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.TimeZone;
 
 /**
  *
@@ -40,11 +40,7 @@
 @SpecCompliant(spec="xep-0202", status= SpecCompliant.ComplianceStatus.FINISHED, coverage = SpecCompliant.ComplianceCoverage.COMPLETE)
 public class EntityTimeIQHandler extends DefaultIQHandler {
 
-    protected SimpleDateFormat utcDateFormatter;
-
     public EntityTimeIQHandler() {
-        utcDateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
-        utcDateFormatter.setTimeZone(TimeZone.getTimeZone("UTC")); // convert to UTC
     }
 
     @Override
@@ -65,7 +61,7 @@
         String timeZone = new SimpleDateFormat("Z").format(now);
         timeZone = timeZone.substring(0, 3) + ":" + timeZone.substring(3, 5); // adjust to required formatting "-00:08"
 
-        String utcTime = utcDateFormatter.format(now);
+        String utcTime = DateTimeProfile.getInstance().getDateTimeInUTC(now);
 
         StanzaBuilder stanzaBuilder = StanzaBuilder.createIQStanza(stanza.getTo(), stanza.getFrom(), IQStanzaType.RESULT, stanza.getID()).
             startInnerElement("time").