// todo: Evaluate the actual needs to keep this override.
  @SuppressWarnings("rawtypes")
  @Override
  public FieldPanel<Date> setNewModel(final ListItem item) {
    final FastDateFormat formatter =
        datePattern == null
            ? FastDateFormat.getInstance(
                SyncopeConstants.DEFAULT_DATE_PATTERN, SyncopeConsoleSession.get().getLocale())
            : FastDateFormat.getInstance(datePattern, SyncopeConsoleSession.get().getLocale());

    IModel<Date> model =
        new Model<Date>() {

          private static final long serialVersionUID = 6799404673615637845L;

          @Override
          public Date getObject() {
            Date date = null;

            final Object obj = item.getModelObject();

            if (obj != null && !obj.toString().isEmpty()) {
              if (obj instanceof String) {
                // Parse string using datePattern
                try {
                  date = formatter.parse(obj.toString());
                } catch (ParseException e) {
                  LOG.error("While parsing date", e);
                }
              } else if (obj instanceof Date) {
                // Don't parse anything
                date = (Date) obj;
              } else {
                // consider Long
                date = new Date((Long) obj);
              }
            }

            return date;
          }

          @Override
          @SuppressWarnings("unchecked")
          public void setObject(final Date object) {
            item.setModelObject(object != null ? formatter.format(object) : null);
          }
        };

    field.setModel(model);
    return this;
  }
Example #2
0
/**
 * Transforms a {@link String} to a {@link Date}
 *
 * @author Esteban Robles Luna
 */
public class StringToDate extends AbstractTransformer {

  protected FastDateFormat format = FastDateFormat.getInstance("dd/MM/yyyy");

  @Override
  protected Object primTransform(Object anObject) throws Exception {
    return format.parse((String) anObject);
  }
}
/**
 * Contains constants naming the Lucene index fields used by this Plugin and some helper methods for
 * proper handling of special field values like dates.
 *
 * @version $Id: c5240610a807da9be47eebfeb002872449773cb6 $
 */
public abstract class IndexFields {
  /**
   * Keyword field, holds a string uniquely identifying a document across the index. this is used
   * for finding old versions of a document to be indexed.
   */
  public static final String DOCUMENT_ID = "_docid";

  /** Keyword field, holds the name of the virtual wiki a document belongs to */
  public static final String DOCUMENT_WIKI = "wiki";

  /** Title of the document */
  public static final String DOCUMENT_TITLE = "title";

  /** Name of the document */
  public static final String DOCUMENT_NAME = "name";

  /** Name of the web the document belongs to */
  @Deprecated public static final String DOCUMENT_WEB = "web";

  /** Name of the space the document belongs to */
  public static final String DOCUMENT_SPACE = "space";

  /** FullName of the document (example : Main.WebHome) */
  public static final String DOCUMENT_FULLNAME = "fullname";

  /** Version of the document */
  public static final String DOCUMENT_VERSION = "version";

  /** Language of the document */
  public static final String DOCUMENT_LANGUAGE = "lang";

  /**
   * Type of a document, "attachment", "wikipage" or "objects", used to control presentation of
   * searchresults. See {@link SearchResult}and xdocs/searchResult.vm.
   */
  public static final String DOCUMENT_TYPE = "type";

  /** Filename, only used for attachments */
  public static final String FILENAME = "filename";

  /** XWiki object type, only used for objects */
  public static final String OBJECT = "object";

  /** Last modifier */
  public static final String DOCUMENT_AUTHOR = "author";

  /** Creator of the document */
  public static final String DOCUMENT_CREATOR = "creator";

  /** Date of last modification */
  public static final String DOCUMENT_DATE = "date";

  /** Date of creation */
  public static final String DOCUMENT_CREATIONDATE = "creationdate";

  /** Document hidden flag. */
  public static final String DOCUMENT_HIDDEN = "hidden";

  /** Fulltext content, not stored (and can therefore not be restored from the index). */
  public static final String FULLTEXT = "ft";

  /** not in use */
  public static final String KEYWORDS = "kw";

  /**
   * Format for date storage in the index, and therefore the format which has to be used for
   * date-queries.
   */
  public static final String DATE_FORMAT = "yyyyMMddHHmm";

  private static final FastDateFormat DF = FastDateFormat.getInstance(IndexFields.DATE_FORMAT);

  public static final String dateToString(Date date) {
    return DF.format(date);
  }

  public static final Date stringToDate(String dateValue) {
    SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
    try {
      return sdf.parse(dateValue);
    } catch (Exception e) {
      // silently ignore
    }

    return null;
  }

  public static final boolean stringToBoolean(String booleanValue) {
    return Boolean.parseBoolean(booleanValue);
  }

  private IndexFields() {}
}
 static {
   TimeZone gmt = TimeZone.getTimeZone("GMT");
   TIME_FORMAT_DATE = FastDateFormat.getInstance("yyyy-MM-dd", gmt);
   TIME_FORMAT_TIME = FastDateFormat.getInstance("hh:mm:ss", gmt);
   TIME_FORMAT_TIMESTAMP = FastDateFormat.getInstance("yyyy-MM-dd hh:mm:ss", gmt);
 }
/**
 * Record and output test-suite & test-case results.
 *
 * <p>It expected that this is parsed by Jenkins.
 *
 * @see <a
 *     href="https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/tasks/junit/SuiteResult.java">Jenkins
 *     SuiteResult class.</a>
 * @see <a
 *     href="https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/tasks/junit/CaseResult.java">Jenkins
 *     CaseResult class.</a>
 */
public final class JUnitResult {

  /** level info. */
  public static String INFO = "INFO";

  /** level error. */
  public static String ERROR = "ERROR";

  private static final FastDateFormat DATE_TIME_FORMAT =
      FastDateFormat.getInstance("[yyyy-MM-dd HH:mm:ss.SSS] ");

  private static JAXBContext context = initContext();

  private static final Map<Object, TestResult> map = new ConcurrentHashMap<Object, TestResult>();

  private static String resultDir = null;

  private static PrintStream ps = null;

  private static JAXBContext initContext() {
    try {
      return JAXBContext.newInstance(ObjectFactory.class);
    } catch (JAXBException e) {
      throw new RuntimeException(e);
    }
  }

  /**
   * Set directory for storing results.
   *
   * @param dir directory.
   */
  public static void setResultDir(String dir) {
    resultDir = dir;
  }

  /**
   * Set PrintStream instance.
   *
   * @param ps PrintStream instance.
   */
  public static void setPrintStream(PrintStream ps) {
    JUnitResult.ps = ps;
  }

  /**
   * Start test-suite.
   *
   * @param testSuite test-suite instance.
   */
  public static void startTestSuite(ITestSuite testSuite) {
    map.put(testSuite, factory.createTestSuiteResult(testSuite.getName()));
  }

  /**
   * End test-suite.
   *
   * @param testSuite test-suite instatnce.
   */
  public static void endTestSuite(ITestSuite testSuite) {
    TestSuiteResult suiteResult = (TestSuiteResult) map.remove(testSuite);
    suiteResult.endTestSuite();
    if (resultDir == null) return;
    try {
      Marshaller marshaller = context.createMarshaller();
      marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
      // marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
      marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
      File file = new File(resultDir, "TEST-" + suiteResult.getName() + ".xml");
      marshaller.marshal(suiteResult, file);
    } catch (JAXBException e) {
      throw new RuntimeException(e);
    }
  }

  /**
   * Add property in test-suite.
   *
   * @param testSuite test-suite instatnce.
   * @param name property name.
   * @param value property value.
   */
  public static void addProperty(ITestSuite testSuite, String name, String value) {
    TestSuiteResult suiteResult = (TestSuiteResult) map.get(testSuite);
    suiteResult.addProperty(name, value);
  }

  /**
   * Start test-case.
   *
   * @param testSuite test-suite instance.
   * @param testCase test-case instance.
   */
  public static void startTestCase(ITestSuite testSuite, ITestCase testCase) {
    TestCaseResult caseResult = factory.createTestCaseResult(testCase.getName());
    map.put(testCase, caseResult);
    if (testSuite != null) {
      TestSuiteResult suiteResult = (TestSuiteResult) map.get(testSuite);
      suiteResult.addTestCaseResult(caseResult);
    }
  }

  /**
   * End test-case.
   *
   * @param testCase test-case instance.
   */
  public static void endTestCase(ITestCase testCase) {
    TestCaseResult caseResult = (TestCaseResult) map.remove(testCase);
    caseResult.endTestCase();
  }

  /**
   * Set success.
   *
   * @param testCase test-case instance.
   */
  public static void setSuccess(ITestCase testCase) {
    TestCaseResult caseResult = (TestCaseResult) map.get(testCase);
    caseResult.setSuccess();
  }

  /**
   * Set error in test-case.
   *
   * @param testCase test-case instance.
   * @param message error message.
   * @param trace error trace.
   */
  public static void setError(ITestCase testCase, String message, String trace) {
    TestCaseResult caseResult = (TestCaseResult) map.get(testCase);
    caseResult.setError(message, trace);
  }

  /**
   * Set failure in test-case.
   *
   * @param testCase test-case instance.
   * @param message error message.
   * @param trace error trace.
   */
  public static void setFailure(ITestCase testCase, String message, String trace) {
    TestCaseResult caseResult = (TestCaseResult) map.get(testCase);
    caseResult.setFailure(message, trace);
  }

  /**
   * Add System.out'ed message string.
   *
   * @param testCase test-case instance.
   * @param message system-out message.
   */
  public static void addSystemOut(ITestCase testCase, String message) {
    TestCaseResult caseResult = (TestCaseResult) map.get(testCase);
    caseResult.addSystemOut(message);
  }

  /**
   * Add System.err'ed message string.
   *
   * @param testCase test-case instance.
   * @param message system-err message.
   */
  public static void addSystemErr(ITestCase testCase, String message) {
    TestCaseResult caseResult = (TestCaseResult) map.get(testCase);
    caseResult.addSystemErr(message);
  }

  private static String logFormat(String level, String message) {
    return DATE_TIME_FORMAT.format(System.currentTimeMillis()) + "[" + level + "] " + message;
  }

  /**
   * Add System.out'ed message string.
   *
   * @param testCase test-case instance.
   * @param level level string.
   * @param message info log message.
   */
  public static void sysOutLog(ITestCase testCase, String level, String message) {
    String msg = logFormat(level, message);
    if (testCase != null) addSystemOut(testCase, msg);
    if (ps != null) ps.println(msg);
  }

  /**
   * Add System.err'ed message string.
   *
   * @param testCase test-case instance.
   * @param level level string.
   * @param message error log message.
   */
  public static void sysErrLog(ITestCase testCase, String level, String message) {
    String msg = logFormat(level, message);
    if (testCase != null) {
      addSystemOut(testCase, msg);
      addSystemErr(testCase, msg);
    }
    if (ps != null) ps.println(msg);
  }
}