summaryrefslogtreecommitdiff
path: root/java/broker/src/main/java/org/apache/qpid/server/logging/messages/LogMessages.properties
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/server/logging/messages/LogMessages.properties')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/messages/LogMessages.properties323
1 files changed, 323 insertions, 0 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/messages/LogMessages.properties b/java/broker/src/main/java/org/apache/qpid/server/logging/messages/LogMessages.properties
new file mode 100644
index 0000000000..7159c6b02c
--- /dev/null
+++ b/java/broker/src/main/java/org/apache/qpid/server/logging/messages/LogMessages.properties
@@ -0,0 +1,323 @@
+#
+# 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.
+#
+# Default File used for all non-defined locales.
+#
+# LogMessages used within the Java Broker as originally defined on the wiki:
+# http://cwiki.apache.org/confluence/display/qpid/Status+Update+Design#StatusUpdateDesign-InitialStatusMessages
+#
+# Technical Notes:
+# This is a standard Java Properties file so white space is respected at the
+# end of the lines. This file is processed in a number of ways.
+# 1) ResourceBundle
+# This file is loaded through a ResourceBundle named LogMessages. the en_US
+# addition to the file is the localisation. Additional localisations can be
+# provided and will automatically be selected based on the <locale> value in
+# the config.xml. The default is en_US.
+#
+# 2) MessasgeFormat
+# Each entry is prepared with the Java Core MessageFormat methods. Therefore
+# most functionality you can do via MessageFormat can be done here:
+#
+# http://java.sun.com/javase/6/docs/api/java/text/MessageFormat.html
+#
+# The cavet here is that only default String and number FormatTypes can be used.
+# This is due to the processing described in 3 below. If support for date, time
+# or choice is requried then the GenerateLogMessages class should be updated to
+# provide support.
+#
+# Format Note:
+# As mentioned earlier white space in this file is very important. One thing
+# in particular to note is the way MessageFormat peforms its replacements.
+# The replacement text will totally replace the {xxx} section so there will be
+# no addtion of white space or removal e.g.
+# MSG = Text----{0}----
+# When given parameter 'Hello' result in text:
+# Text----Hello----
+#
+# For simple arguments this is expected however when using Style formats then
+# it can be a little unexepcted. In particular a common pattern is used for
+# number replacements : {0,number,#}. This is used in the Broker to display an
+# Integer simply as the Integer with no formating. e.g new Integer(1234567)
+# becomes the String "1234567" which is can be contrasted with the pattern
+# without a style format field : {0,number} which becomes string "1,234,567".
+#
+# What you may not expect is that {0,number, #} would produce the String " 1234567"
+# note the space after the ',' here /\ has resulted in a space /\ in
+# the output.
+#
+# More details on the SubformatPattern can be found on the API link above.
+#
+# 3) GenerateLogMessage/Velocity Macro
+# This is the first and final stage of processing that this file goes through.
+# 1) Class Generation:
+# The GenerateLogMessage processes this file and uses the velocity Macro
+# to create classes with static methods to perform the logging and give us
+# compile time validation.
+#
+# 2) Property Processing:
+# During the class generation the message properties ({x}) are identified
+# and used to create the method signature.
+#
+# 3) Option Processing:
+# The Classes perform final formatting of the messages at runtime based on
+# optional parameters that are defined within the message. Optional
+# paramters are enclosed in square brackets e.g. [optional].
+#
+# To provide fixed log messages as required by the Technical Specification:
+# http://cwiki.apache.org/confluence/display/qpid/Operational+Logging+-+Status+Update+-+Technical+Specification#OperationalLogging-StatusUpdate-TechnicalSpecification-Howtoprovidefixedlogmessages
+#
+# This file is processed by Velocity to create a number of classes that contain
+# static methods that provide LogMessages in the code to provide compile time
+# validation.
+#
+# For details of what processing is done see GenerateLogMessages.
+#
+# What a localiser or developer need know is the following:
+#
+# The Property structure is important is it defines how the class and methods
+# will be built.
+#
+# Class Generation:
+# =================
+#
+# Each class of messages will be split in to their own <Class>Messages.java
+# Currently the following classes are created and are populated with the
+# messages that bear their 3-digit type identifier:
+#
+# Class | Type
+# ---------------------|--------
+# Broker | BKR
+# ManagementConsole | MNG
+# VirtualHost | VHT
+# MessageStore | MST
+# ConfigStore | CFG
+# TransactionLog | TXN
+# Connection | CON
+# Channel | CHN
+# Queue | QUE
+# Exchange | EXH
+# Binding | BND
+# Subscription | SUB
+#
+# Property Format
+# ===============
+# The property format MUST adhere to the follow format to make it easier to
+# use the logging API as a developer but also so that operations staff can
+# easily locate log messages in the output.
+#
+# The property file should contain entries in the following format
+#
+# <Log Identifier, developer focused> = <Log Identifier, Operate focus> : <Log Message>
+#
+# eg:
+# BRK_SHUTTING_DOWN = BRK-1003 : Shuting down : {0} port {1,number,#}
+#
+# Note: the developer focused identifier will become a method name so only a
+# valid method name should be used. Currently only '-' are converted to '_'.
+#
+# That said properties generate the logging code at build time so any error
+# can be easily identified.
+#
+# Property Processing:
+# ====================
+#
+# Each property is then processed by the GenerateLogMessages class to identify
+# The number and type of parameters, {x} entries. Parameters are defaulted to
+# String types but the use of FormatType number (e.g.{0,number}) will result
+# in a Number type being used. These parameters are then used to build the
+# method parameter list. e.g:
+# Property:
+# BRK_SHUTTING_DOWN = BRK-1003 : Shuting down : {0} port {1,number,#}
+# becomes Method:
+# public static LogMessage BRK_SHUTTING_DOWN(String param1, Number param2)
+#
+# This improves our compile time validation of log message content and
+# ensures that change in the message format does not accidentally cause
+# erroneous messages.
+#
+# Option Processing:
+# ====================
+#
+# Options are identified in the log message as being surrounded by square
+# brackets ([ ]). These optional values can themselves contain paramters
+# however nesting of options is not permitted. Identification is performed on
+# first matchings so give the message:
+# Msg = Log Message [option1] [option2]
+# Two options will be identifed and enabled to select text 'option1 and
+# 'option2'.
+#
+# The nesting of a options is not supported and will provide
+# unexpected results. e.g. Using Message:
+# Msg = Log Message [option1 [sub-option2]]
+#
+# The options will be 'option1 [sub-option2' and 'sub-option2'. The first
+# option includes the second option as the nesting is not detected.
+#
+# The detected options are presented in the method signature as boolean options
+# numerically identified by their position in the message. e.g.
+# Property:
+# CON-1001 = Open : Client ID {0} [: Protocol Version : {1}]
+# becomes Method:
+# public static LogMessage CON_1001(String param1, String param2, boolean opt1)
+#
+# The value of 'opt1' will show/hide the option in the message. Note that
+# 'param2' is still required however a null value can be used if the optional
+# section is not desired.
+#
+# Again here the importance of white space needs to be highlighted.
+# Looking at the QUE-1001 message as an example. The first thought on how this
+# would look would be as follows:
+# QUE-1001 = Create : Owner: {0} [AutoDelete] [Durable] [Transient] [Priority: {1,number,#}]
+# Each option is correctly defined so the text that is defined will appear when
+# selected. e.g. 'AutoDelete'. However, what may not be immediately apparent is
+# the white space. Using the above definition of QUE-1001 if we were to print
+# the message with only the Priority option displayed it would appear as this:
+# "Create : Owner: guest Priority: 1"
+# Note the spaces here /\ This is because only the text between the brackets
+# has been removed.
+#
+# Each option needs to include white space to correctly format the message. So
+# the correct definition of QUE-1001 is as follows:
+# QUE-1001 = Create : Owner: {0}[ AutoDelete][ Durable][ Transient][ Priority: {1,number,#}]
+# Note that white space is included with each option and there is no extra
+# white space between the options. As a result the output with just Priority
+# enabled is as follows:
+# "Create : Owner: guest Priority: 1"
+#
+# The final processing that is done in the generation is the conversion of the
+# property name. As a '-' is an illegal character in the method name it is
+# converted to '_' This processing gives the final method signature as follows:
+# <Class>Message.<Type>_<Number>(<parmaters>,<options>)
+#
+#
+# Default File used for all non-defined locales.
+#Broker
+# 0 - Version
+# 1 = Build
+BRK_STARTUP = BRK-1001 : Startup : Version: {0} Build: {1}
+# 0 - Transport
+# 1 - Port
+BRK_LISTENING = BRK-1002 : Starting : Listening on {0} port {1,number,#}
+# 0 - Transport
+# 1 - Port
+BRK_SHUTTING_DOWN = BRK-1003 : Shuting down : {0} port {1,number,#}
+BRK_READY = BRK-1004 : Ready
+BRK_STOPPED = BRK-1005 : Stopped
+# 0 - path
+BRK_CONFIG = BRK-1006 : Using configuration : {0}
+# 0 - path
+BRK_LOG_CONFIG = BRK-1007 : Using logging configuration : {0}
+
+#ManagementConsole
+MNG_STARTUP = MNG-1001 : Startup
+# 0 - Service
+# 1 - Port
+MNG_LISTENING = MNG-1002 : Starting : {0} : Listening on port {1,number,#}
+# 0 - Service
+# 1 - Port
+MNG_SHUTTING_DOWN = MNG-1003 : Shuting down : {0} : port {1,number,#}
+MNG_READY = MNG-1004 : Ready
+MNG_STOPPED = MNG-1005 : Stopped
+# 0 - Path
+MNG_SSL_KEYSTORE = MNG-1006 : Using SSL Keystore : {0}
+MNG_OPEN = MNG-1007 : Open : User {0}
+MNG_CLOSE = MNG-1008 : Close
+
+
+#VirtualHost
+# 0 - name
+VHT_CREATED = VHT-1001 : Created : {0}
+VHT_CLOSED = VHT-1002 : Closed
+
+#MessageStore
+# 0 - name
+MST_CREATED = MST-1001 : Created : {0}
+# 0 - path
+MST_STORE_LOCATION = MST-1002 : Store location : {0}
+MST_CLOSED = MST-1003 : Closed
+MST_RECOVERY_START = MST-1004 : Recovery Start
+MST_RECOVERED = MST-1005 : Recovered {0,number} messages
+MST_RECOVERY_COMPLETE = MST-1006 : Recovery Complete
+
+#ConfigStore
+# 0 - name
+CFG-1001 = CFG-1001 : Created : {0}
+# 0 - path
+CFG-1002 = CFG-1002 : Store location : {0}
+CFG-1003 = CFG-1003 : Closed
+CFG-1004 = CFG-1004 : Recovery Start
+CFG-1005 = CFG-1005 : Recovery Complete
+
+#TransactionLog
+# 0 - name
+TXN-1001 = TXN-1001 : Created : {0}
+# 0 - path
+TXN-1002 = TXN-1002 : Store location : {0}
+TXN-1003 = TXN-1003 : Closed
+# 0 - queue name
+TXN-1004 = TXN-1004 : Recovery Start[ : {0}]
+# 0 - count
+# 1 - queue count
+TXN-1005 = TXN-1005 : Recovered {0,number} messages for queue {1}
+# 0 - queue name
+TXN-1006 = TXN-1006 : Recovery Complete[ : {0}]
+
+#Connection
+# 0 - Client id
+# 1 - Protocol Version
+CON_OPEN = CON-1001 : Open[ : Client ID : {0}][ : Protocol Version : {1}]
+CON_CLOSE = CON-1002 : Close
+
+#Channel
+CHN_CREATE = CHN-1001 : Create
+# 0 - flow
+CHN_FLOW = CHN-1002 : Flow {0}
+CHN_CLOSE = CHN-1003 : Close
+# 0 - bytes allowed in prefetch
+# 1 - number of messagse.
+CHN_PREFETCH_SIZE = CHN-1004 : Prefetch Size (bytes) {0,number} : Count {1,number}
+# 0 - queue causing flow control
+CHN_FLOW_ENFORCED = CHN-1005 : Flow Control Enforced (Queue {0})
+CHN_FLOW_REMOVED = CHN-1006 : Flow Control Removed
+
+#Queue
+# 0 - owner
+# 1 - priority
+QUE_CREATED = QUE-1001 : Create :[ Owner: {0}][ AutoDelete][ Durable][ Transient][ Priority: {1,number,#}]
+QUE_DELETED = QUE-1002 : Deleted
+QUE_OVERFULL = QUE-1003 : Overfull : Size : {0,number} bytes, Capacity : {1,number}
+QUE_UNDERFULL = QUE-1004 : Underfull : Size : {0,number} bytes, Resume Capacity : {1,number}
+
+
+#Exchange
+# 0 - type
+# 1 - name
+EXH_CREATED = EXH-1001 : Create :[ Durable] Type: {0} Name: {1}
+EXH_DELETED = EXH-1002 : Deleted
+
+#Binding
+BND_CREATED = BND-1001 : Create[ : Arguments : {0}]
+BND_DELETED = BND-1002 : Deleted
+
+#Subscription
+SUB_CREATE = SUB-1001 : Create[ : Durable][ : Arguments : {0}]
+SUB_CLOSE = SUB-1002 : Close
+# 0 - The current subscription state
+SUB_STATE = SUB-1003 : State : {0}
+