From 81d36161ce5367fa7aa9a5d99dc8b80eacfa7cdf Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 24 Jan 2014 14:43:46 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1288 : Migrate I18n and logging support to i18n framework and SLF4J
---
opendj3-server-dev/replace.rb | 154 ++++++++++++++++++++++++++-------------------------
1 files changed, 78 insertions(+), 76 deletions(-)
diff --git a/opendj3-server-dev/replace.rb b/opendj3-server-dev/replace.rb
index a36f14a..18d0d22 100755
--- a/opendj3-server-dev/replace.rb
+++ b/opendj3-server-dev/replace.rb
@@ -27,62 +27,53 @@
#
class Replace
+ # Messages map : contains for each message its associated level
+ MESSAGES_MAP = {}
+
+ # Mapping of opendj2 log levels to opendj3 logging method
+ LOG_LEVELS = {
+ 'INFO' => 'debug',
+ 'MILD_WARN' => 'warn',
+ 'SEVERE_WARN' => 'warn',
+ 'MILD_ERR' => 'error',
+ 'SEVERE_ERR' => 'error',
+ 'FATAL_ERR' => 'error',
+ 'DEBUG' => 'trace',
+ 'NOTICE' => 'info',
+ }
+
# All directories that contains java code
JAVA_DIRS = ["src/server", "src/quicksetup", "src/ads", "src/guitools", "tests/unit-tests-testng/src"]
-
- # Replacement for Validator
- # Modify 88 files, for a total of 227 replacements - leaves 21 compilation errors
- VALIDATOR = {
- :dirs => JAVA_DIRS,
- :extensions => ["java"],
- :replacements =>
- [
- /import org.opends.server.util.\*;/,
- "import org.opends.server.util.*;\nimport org.forgerock.util.Reject;",
-
- /import static org.opends.server.util.Validator.ensureNotNull;/,
- 'import static org.forgerock.util.Reject.ifNull;',
-
- /import static org.opends.server.util.Validator.ensureTrue;/,
- 'import static org.forgerock.util.Reject.ifFalse;',
-
- /import static org.opends.server.util.Validator.\*;/,
- 'import static org.forgerock.util.Reject.*;',
-
- /import org.opends.server.util.Validator;/,
- 'import org.forgerock.util.Reject;',
-
- /(Validator\.| )ensureNotNull\((.*)$/,
- '\1ifNull(\2',
-
- /(Validator\.| )ensureTrue\((.*)$/,
- '\1ifFalse(\2',
-
- / Validator\./,
- ' Reject.'
- ]
- }
+ SNMP_DIR = ["src/snmp/src"]
+ DSML_DIR = ["src/dsml/org"]
# Replacement for messages
# Modify 1052 files, for a total of 2366 replacements - leaves 10274 compilation errors mostly due to generated messages
MESSAGES = {
- :dirs => JAVA_DIRS,
- :extensions => ["java"],
- :replacements =>
- [
- /import org.opends.messages.Message;/,
- 'import org.forgerock.i18n.LocalizableMessage;',
+ :dirs => DSML_DIR,
+ :extensions => ["java"],
+ :stopwords => ['org/opends/messages'],
+ :replacements =>
+ [
+ /import org.opends.messages.(\bMessage(Builder)?(Descriptor)?\b|\*)(\.Arg..?)?;/,
+ 'import org.forgerock.i18n.Localizable\1\4;',
- /([ <(])Message([ >)(.]|$)/,
- '\1LocalizableMessage\2',
+ /\bMessage\b/,
+ 'LocalizableMessage',
- /import org.opends.messages.MessageBuilder;/,
- 'import org.forgerock.i18n.LocalizableMessageBuilder;',
+ /\bMessageBuilder\b/,
+ 'LocalizableMessageBuilder',
- /([ <(])MessageBuilder([ >)(.]|$)/,
- '\1LocalizableMessageBuilder\2'
- ]
- }
+ /\bMessageDescriptor\b/,
+ 'LocalizableMessageDescriptor',
+
+ /LocalizableMessage.raw\((\n\s+)?Category.\w+,\s+(\n\s+)?Severity.\w+,\s?/,
+ 'LocalizableMessage.raw(',
+
+ /msg.getDescriptor().equals\((\w)+\)/,
+ "msg.resourceName().equals(\\1.resourceName())\n && msg.ordinal().equals(\\1.ordinal())"
+ ]
+ }
# Replacement for types
TYPES = {
@@ -99,34 +90,24 @@
]
}
- BYTESTRING_TYPE = {
- :dirs => JAVA_DIRS,
+ # Replacement for types
+ DN_TYPE = {
+ :dirs => JAVA_DIRS + ["src/admin/generated"],
:extensions => ["java"],
:replacements =>
[
- /package org.opends.server.types;/,
- "package org.opends.server.types;\n\n" +
- "import org.forgerock.opendj.ldap.ByteString;\n" +
- "import org.forgerock.opendj.ldap.ByteStringBuilder;\n" +
- "import org.forgerock.opendj.ldap.ByteSequence;\n" +
- "import org.forgerock.opendj.ldap.ByteSequenceReader;",
+ /package org.opends.server.types.(\b\w\b);/,
+ "package org.opends.server.types.\\1;\n\n" +
+ 'import org.forgerock.opendj.ldap.DN;',
+
+ /import org.opends.server.types.DN;/,
+ 'import org.forgerock.opendj.ldap.DN;',
/import org.opends.server.types.\*;/,
- "import org.opends.server.types.*;\n" +
- "import org.forgerock.opendj.ldap.ByteString;\n" +
- "import org.forgerock.opendj.ldap.ByteStringBuilder;\n" +
- "import org.forgerock.opendj.ldap.ByteSequence;\n" +
- "import org.forgerock.opendj.ldap.ByteSequenceReader;",
+ "import org.opends.server.types.*;\nimport org.forgerock.opendj.ldap.DN;",
- /import org.opends.server.types.(ByteString|ByteStringBuilder|ByteSequence|ByteSequenceReader);/,
- 'import org.forgerock.opendj.ldap.\1;',
-
- /package org.opends.server.protocols.asn1;/,
- "package org.opends.server.protocols.asn1;\n\n" +
- "import com.forgerock.opendj.util.ByteSequenceOutputStream;",
-
- /import org.opends.server.protocols.asn1.ByteSequenceOutputStream;/,
- "import com.forgerock.opendj.util.ByteSequenceOutputStream;",
+ /DN.NULL_DN/,
+ "DN.rootDN()"
]
}
@@ -179,8 +160,8 @@
/import org.opends.server.types.DebugLogLevel;\n/,
'',
- /import (static )?org.opends.server.loggers.debug.DebugLogger.*;\n/,
- '',
+ #/import (static )?org.opends.server.loggers.debug.DebugLogger.*;\n/,
+ #'',
/DebugTracer TRACER = (DebugLogger.)?getTracer\(\)/,
"Logger debugLogger = LoggerFactory.getLogger({CLASSNAME}.class)",
@@ -245,10 +226,13 @@
}
# List of replacements to run
- REPLACEMENTS = [ BYTESTRING_TYPE ]
- #REPLACEMENTS = [ VALIDATOR, MESSAGES, TYPES, EXCEPTIONS, LOGGERS, I18N_LOGGERS ]
+ REPLACEMENTS = [ MESSAGES ]
+ #REPLACEMENTS = [ MESSAGES, TYPES, DN_TYPES, EXCEPTIONS, LOGGERS, I18N_LOGGERS ]
- # Run replacements
+
+ ################################### Processing methods ########################################
+
+ # Main method : run replacements defined in REPLACEMENTS constant
def run
REPLACEMENTS.each { |repl|
puts "Replacing " + Replace.constants.find{ |name| Replace.const_get(name)==repl }.to_s
@@ -257,6 +241,7 @@
}
end
+ # Process replacements on the provided directories
def replace_dirs(replacements, dirs, stopwords, extensions)
count_files = 0
count_total = 0
@@ -275,6 +260,7 @@
puts "Replaced in #{count_files} files, for a total of #{count_total} replacements"
end
+ # Process replacement on the provided file
def replace_file(file, replacements)
count = 0
File.open(file) { |source|
@@ -291,17 +277,33 @@
count
end
+ # Return java class name from java filename
def classname(file)
name = file.gsub(/.*\/(.*).java$/, '\1')
if name.nil? then '' else name end
end
+ # Return all files with provided extensions under the provided directory
+ # and all its subdirectories recursively
def files_under_directory(directory, extensions)
Dir[directory + '/**/*.{' + extensions.join(",") + '}']
end
+ # Build a map of error messages and error level
+ def messages(message_file)
+ File.open(message_file).each { |line|
+ line = line.chomp
+ next if line.size==0 || line[0..0]=="#" || line[0..0]==" " || line[0..0]!=line[0..0].upcase || line[0..5]=="global"
+ first, *rest = line.split "_"
+ label = rest.join "_"
+ level_label = if %w(INFO DEBUG NOTICE).include?(first) then first else first.to_s + "_" + rest[0].to_s end
+ level = LOG_LEVELS[level_label]
+ puts "level #{level}, line #{line}"
+ }
+ end
+
end
-# Launch replacement
+# Launch all replacements defined in the REPLACEMENTS constant
+#Replace.new.messages("src/messages/messages/admin.properties")
Replace.new.run
-
--
Gitblit v1.10.0