Search in sources :

Example 66 with FieldPosition

use of java.text.FieldPosition in project dbeaver by serge-rider.

the class DateTimeDataFormatter method init.

@Override
public void init(Locale locale, Map<Object, Object> properties) {
    pattern = CommonUtils.toString(properties.get(PROP_PATTERN));
    dateFormat = new ExtendedDateFormat(pattern, locale);
    buffer = new StringBuffer();
    position = new FieldPosition(0);
}
Also used : ExtendedDateFormat(org.jkiss.utils.time.ExtendedDateFormat) FieldPosition(java.text.FieldPosition)

Example 67 with FieldPosition

use of java.text.FieldPosition in project ACS by ACS-Community.

the class LogEntry method toString.

/**
	 * Return a string representation of this entry
	 */
public String toString() {
    StringBuffer sb = new StringBuffer("--- LogEntry ---\n");
    /* Attributes */
    for (LogField f : LogField.values()) {
        if (getField(f) != null) {
            sb.append(f.getName() + ": ");
            if (f == LogField.ENTRYTYPE) {
                sb.append(type.logEntryType);
            } else if (f == LogField.TIMESTAMP) {
                SimpleDateFormat df = new IsoDateFormat();
                FieldPosition pos = new FieldPosition(0);
                df.format(date, sb, pos);
            } else {
                sb.append(getField(f));
            }
            sb.append("\n");
        }
    }
    /* Data(s) */
    if (additionalData != null) {
        sb.append("Datas: \n");
        for (int t = 0; t < additionalData.size(); t++) {
            AdditionalData temp = additionalData.get(t);
            sb.append("\t" + temp.name + " : " + temp.value);
        }
    }
    return sb.toString();
}
Also used : IsoDateFormat(alma.acs.util.IsoDateFormat) FieldPosition(java.text.FieldPosition) SimpleDateFormat(java.text.SimpleDateFormat)

Example 68 with FieldPosition

use of java.text.FieldPosition in project ACS by ACS-Community.

the class EngineAudienceTest method testOperatorModeFiltering.

/**
	 * Test the filtering for OPERATOR.
	 * 
	 * The logs that should not be filtered are those that:
	 *  - have a level of WARINING or greater
	 *  - have the audience set to OPERATOR 
	 *  
	 *  The test is done in 2 times:
	 *   1. a collection of logs with no audience is tested
	 *   2. a collection of logs with different values for audience 
	 *      is tested
	 *  
	 * @throws Exception
	 */
public void testOperatorModeFiltering() throws Exception {
    audience = AudienceInfo.OPERATOR.getAudience();
    logRetieval.setAudience(audience);
    //
    // Step 1: generate a collection of logs with no audience
    //
    // Generate 1000 log of each type
    Collection<ILogEntry> logs = new Vector<ILogEntry>();
    for (LogTypeHelper logType : LogTypeHelper.values()) {
        if (logType != LogTypeHelper.OFF) {
            Collection<ILogEntry> tempLogs = CacheUtils.generateLogsType(1000, logType);
            logs.addAll(tempLogs);
        }
    }
    assertEquals(1000 * (LogTypeHelper.values().length - 1), logs.size());
    for (ILogEntry log : logs) {
        logRetieval.addLog(log.toXMLString());
    }
    // Wait until logRetrieval publish all the logs
    assertFalse("Timeout waiting for logs", waitForLogs());
    // Check the received logs
    assertEquals(logs.size(), numOfReceivedXMLLogs);
    assertEquals(1000 * 5, numOfReceivedLogs);
    // 
    // Step 2: test a collection of logs with the audience
    //
    ACSLogParser parser = ACSLogParserFactory.getParser();
    assertNotNull(parser);
    SimpleDateFormat df = new IsoDateFormat();
    assertNotNull(df);
    // Generate 2 logs for each type.
    // only one of them with audience OPERATOR
    logs.clear();
    for (LogTypeHelper logType : LogTypeHelper.values()) {
        if (logType == LogTypeHelper.OFF) {
            continue;
        }
        Date dt = new Date(System.currentTimeMillis());
        StringBuffer dateSB = new StringBuffer();
        FieldPosition pos = new FieldPosition(0);
        df.format(dt, dateSB, pos);
        StringBuilder logOperatorStr = new StringBuilder("<");
        StringBuilder logNoOperatorStr = new StringBuilder();
        // (see COMP-3749 : JDK levels FINER and FINEST were previously mapped to TRACE, while now FINER maps to DELOUSE).
        if (logType == LogTypeHelper.TRACE || logType == LogTypeHelper.DELOUSE) {
            logType = LogTypeHelper.INFO;
        }
        logOperatorStr.append(logType.logEntryType);
        logOperatorStr.append(logHeaderStr);
        logOperatorStr.append(dateSB.toString());
        logOperatorStr.append(logBodyStr);
        // Insert the audience
        logNoOperatorStr = new StringBuilder(logOperatorStr);
        logOperatorStr.append(alma.log_audience.OPERATOR.value);
        logNoOperatorStr.append(alma.log_audience.DEVELOPER.value);
        logOperatorStr.append(logEndOfBodyStr);
        logNoOperatorStr.append(logEndOfBodyStr);
        logOperatorStr.append("LOG Txt>");
        logNoOperatorStr.append("LOG Txt>");
        logOperatorStr.append(logFooterStr);
        logNoOperatorStr.append(logFooterStr);
        logOperatorStr.append(logType.logEntryType);
        logNoOperatorStr.append(logType.logEntryType);
        logOperatorStr.append('>');
        logNoOperatorStr.append('>');
        ILogEntry logOp = parser.parse(logOperatorStr.toString());
        logs.add(logOp);
        ILogEntry logNoOp = parser.parse(logNoOperatorStr.toString());
        logs.add(logNoOp);
    }
    assertEquals(2 * (LogTypeHelper.values().length - 1), logs.size());
    numOfReceivedLogs = 0;
    numOfReceivedXMLLogs = 0;
    for (ILogEntry log : logs) {
        logRetieval.addLog(log.toXMLString());
    }
    assertFalse("Timeout waiting for logs", waitForLogs());
    assertEquals(logs.size(), numOfReceivedXMLLogs);
    assertEquals(10, numOfReceivedLogs);
}
Also used : ILogEntry(com.cosylab.logging.engine.log.ILogEntry) LogTypeHelper(com.cosylab.logging.engine.log.LogTypeHelper) ACSLogParser(alma.acs.logging.engine.parser.ACSLogParser) IsoDateFormat(alma.acs.util.IsoDateFormat) FieldPosition(java.text.FieldPosition) Vector(java.util.Vector) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date)

Example 69 with FieldPosition

use of java.text.FieldPosition in project ACS by ACS-Community.

the class CacheUtils method generateLogs.

/**
	 * Generate a set of logs to be used for testing
	 * Each log has 
	 *    - a different time stamp.
	 *    - the message contains the key of the log
	 *    - the log type is random (all types but Trace because trace
	 *      has no body)
	 *
	 * @param numOfLogs The number of logs to put in the collection
	 * @return The collection with the logs
	 */
public static Collection<ILogEntry> generateLogs(int numOfLogs) throws Exception {
    Random rnd = new Random(Calendar.getInstance().getTimeInMillis());
    // Yesterday
    long now = Calendar.getInstance().getTimeInMillis() - 1000 * 60 * 60 * 24;
    SimpleDateFormat df = new IsoDateFormat();
    Vector<ILogEntry> v = new Vector<ILogEntry>(numOfLogs);
    for (int t = 0; t < numOfLogs; t++) {
        Date dt = new Date(now + t * 1000);
        StringBuffer dateSB = new StringBuffer();
        FieldPosition pos = new FieldPosition(0);
        df.format(dt, dateSB, pos);
        StringBuilder logStr = new StringBuilder("<");
        int typePos = rnd.nextInt(LogTypeHelper.values().length - 1);
        LogTypeHelper type = LogTypeHelper.values()[typePos];
        if (type == LogTypeHelper.TRACE) {
            type = LogTypeHelper.INFO;
        }
        logStr.append(type.logEntryType);
        logStr.append(logHeaderStr);
        logStr.append(dateSB.toString());
        logStr.append(logBodyStr);
        logStr.append(t);
        logStr.append(logFooterStr);
        logStr.append(type.logEntryType);
        logStr.append('>');
        if (parser == null) {
            parser = ACSLogParserFactory.getParser();
        }
        ILogEntry log = parser.parse(logStr.toString());
        v.add(log);
    }
    return v;
}
Also used : ILogEntry(com.cosylab.logging.engine.log.ILogEntry) IsoDateFormat(alma.acs.util.IsoDateFormat) FieldPosition(java.text.FieldPosition) Date(java.util.Date) Random(java.util.Random) LogTypeHelper(com.cosylab.logging.engine.log.LogTypeHelper) SimpleDateFormat(java.text.SimpleDateFormat) Vector(java.util.Vector)

Example 70 with FieldPosition

use of java.text.FieldPosition in project ACS by ACS-Community.

the class CacheUtils method generateLogsType.

/**
	 * Generate a set of logs of a given type
	 * Each log has 
	 *    - a different time stamp.
	 *    - the message contains the key of the log
	 *
	 * @param numOfLogs The number of logs to put in the collection
	 * @return The collection with the logs
	 */
public static Collection<ILogEntry> generateLogsType(int numOfLogs, LogTypeHelper logType) throws Exception {
    if (logType == LogTypeHelper.OFF) {
        throw new IllegalArgumentException("Cannot publish logs with level OFF");
    }
    Random rnd = new Random(Calendar.getInstance().getTimeInMillis());
    // Yesterday
    long now = Calendar.getInstance().getTimeInMillis() - 1000 * 60 * 60 * 24;
    SimpleDateFormat df = new IsoDateFormat();
    Vector<ILogEntry> v = new Vector<ILogEntry>(numOfLogs);
    for (int t = 0; t < numOfLogs; t++) {
        Date dt = new Date(now + t * 1000);
        StringBuffer dateSB = new StringBuffer();
        FieldPosition pos = new FieldPosition(0);
        df.format(dt, dateSB, pos);
        StringBuilder logStr = new StringBuilder("<");
        if (logType == LogTypeHelper.TRACE) {
            logType = LogTypeHelper.INFO;
        }
        logStr.append(logType.logEntryType);
        logStr.append(logHeaderStr);
        logStr.append(dateSB.toString());
        logStr.append(logBodyStr);
        logStr.append(t);
        logStr.append(logFooterStr);
        logStr.append(logType.logEntryType);
        logStr.append('>');
        if (parser == null) {
            parser = ACSLogParserFactory.getParser();
        }
        ILogEntry log = parser.parse(logStr.toString());
        v.add(log);
    }
    return v;
}
Also used : ILogEntry(com.cosylab.logging.engine.log.ILogEntry) IsoDateFormat(alma.acs.util.IsoDateFormat) FieldPosition(java.text.FieldPosition) Date(java.util.Date) Random(java.util.Random) SimpleDateFormat(java.text.SimpleDateFormat) Vector(java.util.Vector)

Aggregations

FieldPosition (java.text.FieldPosition)100 Date (java.util.Date)31 SimpleDateFormat (java.text.SimpleDateFormat)28 DecimalFormat (java.text.DecimalFormat)12 NumberFormat (java.text.NumberFormat)12 ParsePosition (java.text.ParsePosition)12 IsoDateFormat (alma.acs.util.IsoDateFormat)9 Test (org.junit.Test)9 ILogEntry (com.cosylab.logging.engine.log.ILogEntry)8 Format (java.text.Format)8 MessageFormat (java.text.MessageFormat)8 DateFormat (java.text.DateFormat)6 ACSLogParser (alma.acs.logging.engine.parser.ACSLogParser)5 IOException (java.io.IOException)3 ParseException (java.text.ParseException)3 Calendar (java.util.Calendar)3 GregorianCalendar (java.util.GregorianCalendar)3 Vector (java.util.Vector)3 ExtendedDateFormat (org.jkiss.utils.time.ExtendedDateFormat)3 LogTypeHelper (com.cosylab.logging.engine.log.LogTypeHelper)2