Esempio n. 1
1
  public static Calendar createCalendar(CalDavEvent calDavEvent, DateTimeZone timeZone) {
    TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
    TimeZone timezone = registry.getTimeZone(timeZone.getID());

    Calendar calendar = new Calendar();
    calendar.getProperties().add(Version.VERSION_2_0);
    calendar.getProperties().add(new ProdId("openHAB"));
    VEvent vEvent = new VEvent();
    vEvent.getProperties().add(new Summary(calDavEvent.getName()));
    vEvent.getProperties().add(new Description(calDavEvent.getContent()));
    final DtStart dtStart =
        new DtStart(new net.fortuna.ical4j.model.DateTime(calDavEvent.getStart().toDate()));
    dtStart.setTimeZone(timezone);
    vEvent.getProperties().add(dtStart);
    final DtEnd dtEnd =
        new DtEnd(new net.fortuna.ical4j.model.DateTime(calDavEvent.getEnd().toDate()));
    dtEnd.setTimeZone(timezone);
    vEvent.getProperties().add(dtEnd);
    vEvent.getProperties().add(new Uid(calDavEvent.getId()));
    vEvent.getProperties().add(Clazz.PUBLIC);
    vEvent
        .getProperties()
        .add(
            new LastModified(
                new net.fortuna.ical4j.model.DateTime(calDavEvent.getLastChanged().toDate())));
    calendar.getComponents().add(vEvent);

    return calendar;
  }
  @Override
  public void updateAnnotation(
      final UUID annotationId,
      final String annotationText,
      final String client,
      final long time,
      final DateTimeZone timezone)
      throws DataAccessException {

    // Create the transaction.
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("Updating an annotation.");

    try {
      // Begin the transaction.
      PlatformTransactionManager transactionManager =
          new DataSourceTransactionManager(getDataSource());
      TransactionStatus status = transactionManager.getTransaction(def);

      try {
        getJdbcTemplate()
            .update(
                SQL_UPDATE_ANNOTATION,
                time,
                timezone.getID(),
                client,
                annotationText,
                annotationId.toString());
      } catch (org.springframework.dao.DataAccessException e) {

        transactionManager.rollback(status);
        throw new DataAccessException(
            "Error executing SQL '"
                + SQL_UPDATE_ANNOTATION
                + "' with parameters: "
                + time
                + ", "
                + timezone.getID()
                + ", "
                + client
                + ", "
                + annotationText
                + ", "
                + annotationId.toString(),
            e);
      }

      // Commit the transaction.
      try {
        transactionManager.commit(status);
      } catch (TransactionException e) {
        transactionManager.rollback(status);
        throw new DataAccessException("Error while committing the transaction.", e);
      }
    } catch (TransactionException e) {
      throw new DataAccessException("Error while attempting to rollback the transaction.", e);
    }
  }
  public HiveMetadata(
      HiveConnectorId connectorId,
      HiveMetastore metastore,
      HdfsEnvironment hdfsEnvironment,
      DateTimeZone timeZone,
      boolean allowDropTable,
      boolean allowRenameTable,
      boolean allowCorruptWritesForTesting,
      HiveStorageFormat hiveStorageFormat,
      TypeManager typeManager) {
    this.connectorId = checkNotNull(connectorId, "connectorId is null").toString();

    this.allowDropTable = allowDropTable;
    this.allowRenameTable = allowRenameTable;
    this.allowCorruptWritesForTesting = allowCorruptWritesForTesting;

    this.metastore = checkNotNull(metastore, "metastore is null");
    this.hdfsEnvironment = checkNotNull(hdfsEnvironment, "hdfsEnvironment is null");
    this.timeZone = checkNotNull(timeZone, "timeZone is null");
    this.hiveStorageFormat = hiveStorageFormat;
    this.typeManager = checkNotNull(typeManager, "typeManager is null");

    if (!allowCorruptWritesForTesting && !timeZone.equals(DateTimeZone.getDefault())) {
      log.warn(
          "Hive writes are disabled. "
              + "To write data to Hive, your JVM timezone must match the Hive storage timezone. "
              + "Add -Duser.timezone=%s to your JVM arguments",
          timeZone.getID());
    }
  }
 /**
  * Gets a debugging toString.
  *
  * @return a debugging string
  */
 public String toString() {
   String str = "BuddhistChronology";
   DateTimeZone zone = getZone();
   if (zone != null) {
     str = str + '[' + zone.getID() + ']';
   }
   return str;
 }
Esempio n. 5
0
  public void test_dataFlowCheck() throws Exception {
    DateTimeZone tz1 = DateTimeZone.forID("Europe/Athens");
    tz1.getID();

    Long n = System.currentTimeMillis();
    DateTimeZone tz2 = DateTimeZone.forID("Europe/Amsterdam");
    tz2.getName(n, null);
  }
 private void verifyJvmTimeZone() {
   if (!allowCorruptWritesForTesting && !timeZone.equals(DateTimeZone.getDefault())) {
     throw new PrestoException(
         HIVE_TIMEZONE_MISMATCH,
         format(
             "To write Hive data, your JVM timezone must match the Hive storage timezone. Add -Duser.timezone=%s to your JVM arguments.",
             timeZone.getID()));
   }
 }
Esempio n. 7
0
 public void test_timeZoneFromString() throws Exception {
   Long nn = System.currentTimeMillis();
   String tz = "Europe/Berlin";
   DateTimeZone tzz = DateTimeZone.forID(tz);
   DateTime inberl = DateTimeOperations.convert(nn, DateTimeZone.forID(tz));
   Assert.assertEquals(inberl, DateTimeOperations.convert(nn, tzz));
   Assert.assertEquals("Europe/Berlin", tzz.getID());
   Assert.assertEquals("Europe/Moscow", DateTimeZone.forID("Europe/Moscow").getID());
 }
Esempio n. 8
0
 public void test_prague() throws Exception {
   DateTimeZone prg = DateTimeZone.forID("Europe/Prague");
   Assert.assertEquals(prg, DateTimeZone.forID(prg.getID()));
   Assert.assertEquals("Europe/Prague", prg.getID());
   Assert.assertEquals(
       "Central European Time",
       prg.getName(DateTimeOperations.convert(new DateTime(2008, 1, 1, 12, 0, 0, 0, prg)), null));
   Assert.assertEquals(
       "CET",
       prg.getShortName(
           DateTimeOperations.convert(new DateTime(2008, 1, 1, 12, 0, 0, 0, prg)), null));
   Assert.assertEquals(
       "Central European Summer Time",
       prg.getName(DateTimeOperations.convert(new DateTime(2008, 7, 1, 12, 0, 0, 0, prg)), null));
   Assert.assertEquals(
       "CEST",
       prg.getShortName(
           DateTimeOperations.convert(new DateTime(2008, 7, 1, 12, 0, 0, 0, prg)), null));
 }
 public CreateUserRequest(User user) {
   this.username = user.getName();
   this.fullname = user.getFullName();
   this.email = user.getEmail();
   this.password = "";
   this.permissions = user.getPermissions();
   final DateTimeZone timeZone = user.getTimeZone();
   if (timezone != null) {
     this.timezone = timeZone.getID();
   }
   this.sessionTimeoutMs = user.getSessionTimeoutMs();
 }
Esempio n. 10
0
 public void test_london() throws Exception {
   DateTimeZone london = DateTimeZone.forID("Europe/London");
   Assert.assertEquals(london, DateTimeZone.forID(london.getID()));
   Assert.assertEquals("Europe/London", london.getID());
   Assert.assertEquals(
       "Greenwich Mean Time",
       london.getName(
           DateTimeOperations.convert(new DateTime(2008, 1, 1, 12, 0, 0, 0, london)), null));
   Assert.assertEquals(
       "GMT",
       london.getShortName(
           DateTimeOperations.convert(new DateTime(2008, 1, 1, 12, 0, 0, 0, london)), null));
   Assert.assertEquals(
       "British Summer Time",
       london.getName(
           DateTimeOperations.convert(new DateTime(2008, 7, 1, 12, 0, 0, 0, london)), null));
   Assert.assertEquals(
       "BST",
       london.getShortName(
           DateTimeOperations.convert(new DateTime(2008, 7, 1, 12, 0, 0, 0, london)), null));
 }
 public long set(long instant, int value) {
   long localInstant = iZone.convertUTCToLocal(instant);
   localInstant = iField.set(localInstant, value);
   long result = iZone.convertLocalToUTC(localInstant, false, instant);
   if (get(result) != value) {
     throw new IllegalFieldValueException(
         iField.getType(),
         Integer.valueOf(value),
         "Illegal instant due to time zone offset transition: "
             + DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS")
                 .print(new Instant(localInstant))
             + " ("
             + iZone.getID()
             + ")");
   }
   return result;
 }
Esempio n. 12
0
  @Test
  public void testTimeZones() {
    DateTimeZone aDTZ = PDTConfig.getDefaultDateTimeZone();
    assertNotNull(aDTZ);

    aDTZ = PDTConfig.getDateTimeZoneUTC();
    assertNotNull(aDTZ);
    assertEquals("UTC", aDTZ.getID());

    assertNotNull(PDTConfig.getDefaultChronologyUTC());
    assertEquals(PDTConfig.getDateTimeZoneUTC(), PDTConfig.getDefaultChronologyUTC().getZone());

    assertNotNull(PDTConfig.getDefaultChronologyWithoutDateTimeZone());
    assertEquals(
        DateTimeZone.getDefault(), PDTConfig.getDefaultChronologyWithoutDateTimeZone().getZone());

    try {
      // Invalid
      assertFalse(PDTConfig.setDefaultDateTimeZoneID("does not exist").isSuccess());

      // Regular
      assertTrue(PDTConfig.setDefaultDateTimeZoneID("Europe/Berlin").isSuccess());
      assertEquals("Europe/Berlin", PDTConfig.getDefaultDateTimeZone().getID());

      // I hope this is not the standard time zone anywhere
      assertTrue(PDTConfig.setDefaultDateTimeZoneID("UTC").isSuccess());
      assertEquals("UTC", PDTConfig.getDefaultDateTimeZone().getID());

      // The default date time zone was not modified
      assertEquals(
          DateTimeZone.getDefault(), PDTConfig.getDefaultChronologyWithoutDateTimeZone().getZone());

      if (!DateTimeZone.getDefault().getID().equals("UTC")) {
        // And therefore this must not be equal
        assertTrue(
            !PDTConfig.getDefaultDateTimeZone()
                .equals(PDTConfig.getDefaultChronologyWithoutDateTimeZone().getZone()));
      }
    } finally {
      assertTrue(PDTConfig.setDefaultDateTimeZoneID(PDTConfig.DEFAULT_DATETIMEZONEID).isSuccess());
    }
  }
  /** @return false if error. */
  static boolean test(String id, DateTimeZone tz) {
    if (!id.equals(tz.getID())) {
      return true;
    }

    // Test to ensure that reported transitions are not duplicated.

    long millis = ISOChronology.getInstanceUTC().year().set(0, 1850);
    long end = ISOChronology.getInstanceUTC().year().set(0, 2050);

    int offset = tz.getOffset(millis);
    String key = tz.getNameKey(millis);

    List<Long> transitions = new ArrayList<Long>();

    while (true) {
      long next = tz.nextTransition(millis);
      if (next == millis || next > end) {
        break;
      }

      millis = next;

      int nextOffset = tz.getOffset(millis);
      String nextKey = tz.getNameKey(millis);

      if (offset == nextOffset && key.equals(nextKey)) {
        System.out.println(
            "*d* Error in "
                + tz.getID()
                + " "
                + new DateTime(millis, ISOChronology.getInstanceUTC()));
        return false;
      }

      if (nextKey == null || (nextKey.length() < 3 && !"??".equals(nextKey))) {
        System.out.println(
            "*s* Error in "
                + tz.getID()
                + " "
                + new DateTime(millis, ISOChronology.getInstanceUTC())
                + ", nameKey="
                + nextKey);
        return false;
      }

      transitions.add(Long.valueOf(millis));

      offset = nextOffset;
      key = nextKey;
    }

    // Now verify that reverse transitions match up.

    millis = ISOChronology.getInstanceUTC().year().set(0, 2050);
    end = ISOChronology.getInstanceUTC().year().set(0, 1850);

    for (int i = transitions.size(); --i >= 0; ) {
      long prev = tz.previousTransition(millis);
      if (prev == millis || prev < end) {
        break;
      }

      millis = prev;

      long trans = transitions.get(i).longValue();

      if (trans - 1 != millis) {
        System.out.println(
            "*r* Error in "
                + tz.getID()
                + " "
                + new DateTime(millis, ISOChronology.getInstanceUTC())
                + " != "
                + new DateTime(trans - 1, ISOChronology.getInstanceUTC()));

        return false;
      }
    }

    return true;
  }
 @Override
 public void serialize(DateTimeZone value, JsonGenerator gen, SerializerProvider provider)
     throws IOException {
   gen.writeString(value.getID());
 }
 @Override
 public void writeTo(StreamOutput out) throws IOException {
   out.writeByte(unit.id());
   out.writeSharedString(preTz.getID());
   out.writeSharedString(postTz.getID());
 }
  @Override
  public void createPromptResponseAnnotation(
      final UUID annotationId,
      final String client,
      final Long time,
      final DateTimeZone timezone,
      final String annotationText,
      Integer promptResponseId,
      String user)
      throws DataAccessException {

    // Create the transaction.
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("Creating a new prompt response annotation.");

    try {
      // Begin the transaction.
      PlatformTransactionManager transactionManager =
          new DataSourceTransactionManager(getDataSource());
      TransactionStatus status = transactionManager.getTransaction(def);
      long id = 0;

      try {
        id = insertAnnotation(annotationId, time, timezone, client, annotationText, user);
      } catch (org.springframework.dao.DataAccessException e) {

        transactionManager.rollback(status);
        throw new DataAccessException(
            "Error while executing SQL '"
                + SQL_INSERT_ANNOTATION
                + "' with parameters: "
                + annotationId
                + ", "
                + time
                + ", "
                + timezone.getID()
                + ", "
                + client
                + ", "
                + ((annotationText.length() > 25)
                    ? annotationText.substring(0, 25) + "..."
                    : annotationText),
            e);
      }
      try {
        // Insert the link between the prompt_response and its annotation
        getJdbcTemplate().update(SQL_INSERT_PROMPT_RESPONSE_ANNOTATION, promptResponseId, id);

      } catch (org.springframework.dao.DataAccessException e) {

        transactionManager.rollback(status);
        throw new DataAccessException(
            "Error while executing SQL '"
                + SQL_INSERT_PROMPT_RESPONSE_ANNOTATION
                + "' with parameters: "
                + promptResponseId
                + ", "
                + id,
            e);
      }

      // Commit the transaction.
      try {
        transactionManager.commit(status);
      } catch (TransactionException e) {
        transactionManager.rollback(status);
        throw new DataAccessException("Error while committing the transaction.", e);
      }

    } catch (TransactionException e) {
      throw new DataAccessException("Error while attempting to rollback the transaction.", e);
    }
  }
 @Override
 public void writeTo(StreamOutput out) throws IOException {
   out.writeVLong(interval);
   out.writeSharedString(preTz.getID());
   out.writeSharedString(postTz.getID());
 }
  /**
   * Returns a map of ids to DateTimeZones.
   *
   * @param outputDir optional directory to write compiled data files to
   * @param sources optional list of source files to parse
   */
  public Map<String, DateTimeZone> compile(File outputDir, File[] sources) throws IOException {
    if (sources != null) {
      for (int i = 0; i < sources.length; i++) {
        BufferedReader in = new BufferedReader(new FileReader(sources[i]));
        parseDataFile(in);
        in.close();
      }
    }

    if (outputDir != null) {
      if (!outputDir.exists()) {
        if (!outputDir.mkdirs()) {
          throw new IOException(
              "Destination directory doesn't exist and cannot be created: " + outputDir);
        }
      }
      if (!outputDir.isDirectory()) {
        throw new IOException("Destination is not a directory: " + outputDir);
      }
    }

    Map<String, DateTimeZone> map = new TreeMap<String, DateTimeZone>();

    System.out.println("Writing zoneinfo files");
    for (int i = 0; i < iZones.size(); i++) {
      Zone zone = iZones.get(i);
      DateTimeZoneBuilder builder = new DateTimeZoneBuilder();
      zone.addToBuilder(builder, iRuleSets);
      final DateTimeZone original = builder.toDateTimeZone(zone.iName, true);
      DateTimeZone tz = original;
      if (test(tz.getID(), tz)) {
        map.put(tz.getID(), tz);
        if (outputDir != null) {
          if (ZoneInfoCompiler.verbose()) {
            System.out.println("Writing " + tz.getID());
          }
          File file = new File(outputDir, tz.getID());
          if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
          }
          OutputStream out = new FileOutputStream(file);
          try {
            builder.writeTo(zone.iName, out);
          } finally {
            out.close();
          }

          // Test if it can be read back.
          InputStream in = new FileInputStream(file);
          DateTimeZone tz2 = DateTimeZoneBuilder.readFrom(in, tz.getID());
          in.close();

          if (!original.equals(tz2)) {
            System.out.println("*e* Error in " + tz.getID() + ": Didn't read properly from file");
          }
        }
      }
    }

    for (int pass = 0; pass < 2; pass++) {
      for (int i = 0; i < iLinks.size(); i += 2) {
        String id = iLinks.get(i);
        String alias = iLinks.get(i + 1);
        DateTimeZone tz = map.get(id);
        if (tz == null) {
          if (pass > 0) {
            System.out.println(
                "Cannot find time zone '" + id + "' to link alias '" + alias + "' to");
          }
        } else {
          map.put(alias, tz);
        }
      }
    }

    if (outputDir != null) {
      System.out.println("Writing ZoneInfoMap");
      File file = new File(outputDir, "ZoneInfoMap");
      if (!file.getParentFile().exists()) {
        file.getParentFile().mkdirs();
      }

      OutputStream out = new FileOutputStream(file);
      DataOutputStream dout = new DataOutputStream(out);
      try {
        // Sort and filter out any duplicates that match case.
        Map<String, DateTimeZone> zimap =
            new TreeMap<String, DateTimeZone>(String.CASE_INSENSITIVE_ORDER);
        zimap.putAll(map);
        writeZoneInfoMap(dout, zimap);
      } finally {
        dout.close();
      }
    }

    return map;
  }
Esempio n. 19
0
 public void setTimezone(DateTimeZone timezone) {
   this.timezone = (timezone == null ? null : timezone.getID());
 }