diff --git a/src/org/apache/jackrabbit/util/ISO8601.java b/src/org/apache/jackrabbit/util/ISO8601.java
deleted file mode 100644
index 3f3c85a..0000000
--- a/src/org/apache/jackrabbit/util/ISO8601.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * 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.jackrabbit.util;
-
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.TimeZone;
-
-/**
- * The ISO8601
utility class provides helper methods
- * to deal with date/time formatting using a specific ISO8601-compliant
- * format (see ISO 8601).
- *
- * ±YYYY-MM-DDThh:mm:ss.SSSTZD - *- * where: - *
- * ±YYYY = four-digit year with optional sign where values <= 0 are - * denoting years BCE and values > 0 are denoting years CE, - * e.g. -0001 denotes the year 2 BCE, 0000 denotes the year 1 BCE, - * 0001 denotes the year 1 CE, and so on... - * MM = two-digit month (01=January, etc.) - * DD = two-digit day of month (01 through 31) - * hh = two digits of hour (00 through 23) (am/pm NOT allowed) - * mm = two digits of minute (00 through 59) - * ss = two digits of second (00 through 59) - * SSS = three digits of milliseconds (000 through 999) - * TZD = time zone designator, Z for Zulu (i.e. UTC) or an offset from UTC - * in the form of +hh:mm or -hh:mm - *- */ -public final class ISO8601 { - /** - * Parses an ISO8601-compliant date/time string. - * - * @param text the date/time string to be parsed - * @return a
Calendar
, or null
if the input could
- * not be parsed
- * @throws IllegalArgumentException if a null
argument is passed
- */
- public static Calendar parse(String text) {
- if (text == null) {
- throw new IllegalArgumentException("argument can not be null");
- }
-
- // check optional leading sign
- char sign;
- int start;
- if (text.startsWith("-")) {
- sign = '-';
- start = 1;
- } else if (text.startsWith("+")) {
- sign = '+';
- start = 1;
- } else {
- sign = '+'; // no sign specified, implied '+'
- start = 0;
- }
-
- /**
- * the expected format of the remainder of the string is:
- * YYYY-MM-DDThh:mm:ss.SSSTZD
- *
- * note that we cannot use java.text.SimpleDateFormat for
- * parsing because it can't handle years <= 0 and TZD's
- */
-
- int year, month, day, hour, min, sec, ms;
- String tzID;
- try {
- // year (YYYY)
- year = Integer.parseInt(text.substring(start, start + 4));
- start += 4;
- // delimiter '-'
- if (text.charAt(start) != '-') {
- return null;
- }
- start++;
- // month (MM)
- month = Integer.parseInt(text.substring(start, start + 2));
- start += 2;
- // delimiter '-'
- if (text.charAt(start) != '-') {
- return null;
- }
- start++;
- // day (DD)
- day = Integer.parseInt(text.substring(start, start + 2));
- start += 2;
- // delimiter 'T'
- if (text.charAt(start) != 'T') {
- return null;
- }
- start++;
- // hour (hh)
- hour = Integer.parseInt(text.substring(start, start + 2));
- start += 2;
- // delimiter ':'
- if (text.charAt(start) != ':') {
- return null;
- }
- start++;
- // minute (mm)
- min = Integer.parseInt(text.substring(start, start + 2));
- start += 2;
- // delimiter ':'
- if (text.charAt(start) != ':') {
- return null;
- }
- start++;
- // second (ss)
- sec = Integer.parseInt(text.substring(start, start + 2));
- start += 2;
- // delimiter '.'
- if (text.charAt(start) != '.') {
- return null;
- }
- start++;
- // millisecond (SSS)
- ms = Integer.parseInt(text.substring(start, start + 3));
- start += 3;
- // time zone designator (Z or +00:00 or -00:00)
- if (text.charAt(start) == '+' || text.charAt(start) == '-') {
- // offset to UTC specified in the format +00:00/-00:00
- tzID = "GMT" + text.substring(start);
- } else if (text.substring(start).equals("Z")) {
- tzID = "GMT";
- } else {
- // invalid time zone designator
- return null;
- }
- } catch (IndexOutOfBoundsException e) {
- return null;
- } catch (NumberFormatException e) {
- return null;
- }
-
- TimeZone tz = TimeZone.getTimeZone(tzID);
- // verify id of returned time zone (getTimeZone defaults to "GMT")
- if (!tz.getID().equals(tzID)) {
- // invalid time zone
- return null;
- }
-
- // initialize Calendar object
- Calendar cal = Calendar.getInstance(tz);
- cal.setLenient(false);
- // year and era
- if (sign == '-' || year == 0) {
- // not CE, need to set era (BCE) and adjust year
- cal.set(Calendar.YEAR, year + 1);
- cal.set(Calendar.ERA, GregorianCalendar.BC);
- } else {
- cal.set(Calendar.YEAR, year);
- cal.set(Calendar.ERA, GregorianCalendar.AD);
- }
- // month (0-based!)
- cal.set(Calendar.MONTH, month - 1);
- // day of month
- cal.set(Calendar.DAY_OF_MONTH, day);
- // hour
- cal.set(Calendar.HOUR_OF_DAY, hour);
- // minute
- cal.set(Calendar.MINUTE, min);
- // second
- cal.set(Calendar.SECOND, sec);
- // millisecond
- cal.set(Calendar.MILLISECOND, ms);
-
- try {
- /**
- * the following call will trigger an IllegalArgumentException
- * if any of the set values are illegal or out of range
- */
- cal.getTime();
- /**
- * in addition check the validity of the year
- */
- getYear(cal);
- } catch (IllegalArgumentException e) {
- return null;
- }
-
- return cal;
- }
-
- /**
- * Formats a Calendar
value into an ISO8601-compliant
- * date/time string.
- *
- * @param cal the time value to be formatted into a date/time string.
- * @return the formatted date/time string.
- * @throws IllegalArgumentException if a null
argument is passed
- * or the calendar cannot be represented as defined by ISO 8601 (i.e. year
- * with more than four digits).
- */
- public static String format(Calendar cal) throws IllegalArgumentException {
- if (cal == null) {
- throw new IllegalArgumentException("argument can not be null");
- }
-
- /**
- * the format of the date/time string is:
- * YYYY-MM-DDThh:mm:ss.SSSTZD
- *
- * note that we cannot use java.text.SimpleDateFormat for
- * formatting because it can't handle years <= 0 and TZD's
- */
- StringBuffer buf = new StringBuffer();
- // year ([-]YYYY)
- appendZeroPaddedInt(buf, getYear(cal), 4);
- buf.append('-');
- // month (MM)
- appendZeroPaddedInt(buf, cal.get(Calendar.MONTH) + 1, 2);
- buf.append('-');
- // day (DD)
- appendZeroPaddedInt(buf, cal.get(Calendar.DAY_OF_MONTH), 2);
- buf.append('T');
- // hour (hh)
- appendZeroPaddedInt(buf, cal.get(Calendar.HOUR_OF_DAY), 2);
- buf.append(':');
- // minute (mm)
- appendZeroPaddedInt(buf, cal.get(Calendar.MINUTE), 2);
- buf.append(':');
- // second (ss)
- appendZeroPaddedInt(buf, cal.get(Calendar.SECOND), 2);
- buf.append('.');
- // millisecond (SSS)
- appendZeroPaddedInt(buf, cal.get(Calendar.MILLISECOND), 3);
- // time zone designator (Z or +00:00 or -00:00)
- TimeZone tz = cal.getTimeZone();
- // determine offset of timezone from UTC (incl. daylight saving)
- int offset = tz.getOffset(cal.getTimeInMillis());
- if (offset != 0) {
- int hours = Math.abs((offset / (60 * 1000)) / 60);
- int minutes = Math.abs((offset / (60 * 1000)) % 60);
- buf.append(offset < 0 ? '-' : '+');
- appendZeroPaddedInt(buf, hours, 2);
- buf.append(':');
- appendZeroPaddedInt(buf, minutes, 2);
- } else {
- buf.append('Z');
- }
- return buf.toString();
- }
-
- /**
- * Returns the astronomical year of the given calendar.
- *
- * @param cal a calendar instance.
- * @return the astronomical year.
- * @throws IllegalArgumentException if calendar cannot be represented as
- * defined by ISO 8601 (i.e. year with more
- * than four digits).
- */
- public static int getYear(Calendar cal) throws IllegalArgumentException {
- // determine era and adjust year if necessary
- int year = cal.get(Calendar.YEAR);
- if (cal.isSet(Calendar.ERA)
- && cal.get(Calendar.ERA) == GregorianCalendar.BC) {
- /**
- * calculate year using astronomical system:
- * year n BCE => astronomical year -n + 1
- */
- year = 0 - year + 1;
- }
-
- if (year > 9999 || year < -9999) {
- throw new IllegalArgumentException("Calendar has more than four " +
- "year digits, cannot be formatted as ISO8601: " + year);
- }
- return year;
- }
-
- /**
- * Appends a zero-padded number to the given string buffer.
- *
- * This is an internal helper method which doesn't perform any
- * validation on the given arguments.
- *
- * @param buf String buffer to append to
- * @param n number to append
- * @param precision number of digits to append
- */
- private static void appendZeroPaddedInt(StringBuffer buf, int n, int precision) {
- if (n < 0) {
- buf.append('-');
- n = -n;
- }
-
- for (int exp = precision - 1; exp > 0; exp--) {
- if (n < Math.pow(10, exp)) {
- buf.append('0');
- } else {
- break;
- }
- }
- buf.append(n);
- }
-}
diff --git a/src/org/apache/jackrabbit/util/note b/src/org/apache/jackrabbit/util/note
deleted file mode 100644
index 558093b..0000000
--- a/src/org/apache/jackrabbit/util/note
+++ /dev/null
@@ -1 +0,0 @@
-Extract from jackrabbit-2.1.1-src.zip
\ No newline at end of file