mirror of
https://github.com/apache/openjpa.git
synced 2025-03-07 00:49:39 +00:00
OPENJPA-1844: Localize user facing strings.
git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@1027190 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c8a5f3d91b
commit
ae1e715248
@ -39,6 +39,7 @@ import javax.swing.border.LineBorder;
|
|||||||
import javax.swing.border.TitledBorder;
|
import javax.swing.border.TitledBorder;
|
||||||
|
|
||||||
import org.apache.openjpa.instrumentation.jmx.DataCacheJMXInstrumentMBean;
|
import org.apache.openjpa.instrumentation.jmx.DataCacheJMXInstrumentMBean;
|
||||||
|
import org.apache.openjpa.lib.util.Localizer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
@ -57,6 +58,8 @@ import org.apache.openjpa.instrumentation.jmx.DataCacheJMXInstrumentMBean;
|
|||||||
*/
|
*/
|
||||||
public class DataCachePanel extends JPanel {
|
public class DataCachePanel extends JPanel {
|
||||||
private static final long serialVersionUID = 8273595264174478456L;
|
private static final long serialVersionUID = 8273595264174478456L;
|
||||||
|
private static final Localizer _loc = Localizer.forPackage(DataCachePanel.class);
|
||||||
|
|
||||||
private DataCacheJMXInstrumentMBean _mbean;
|
private DataCacheJMXInstrumentMBean _mbean;
|
||||||
private DataCacheTable _model;
|
private DataCacheTable _model;
|
||||||
private Map<String, JCheckBox> _typesPanelMap = new ConcurrentHashMap<String, JCheckBox>();
|
private Map<String, JCheckBox> _typesPanelMap = new ConcurrentHashMap<String, JCheckBox>();
|
||||||
@ -74,18 +77,21 @@ public class DataCachePanel extends JPanel {
|
|||||||
add(parentTopPanel, BorderLayout.PAGE_START);
|
add(parentTopPanel, BorderLayout.PAGE_START);
|
||||||
|
|
||||||
// Panel for action buttons
|
// Panel for action buttons
|
||||||
|
String actions = _loc.get("datacachepanel.titles.actions").getMessage();
|
||||||
JPanel actionsPanel = new JPanel(new GridLayout(1, 3));
|
JPanel actionsPanel = new JPanel(new GridLayout(1, 3));
|
||||||
actionsPanel.setBorder(new TitledBorder(LineBorder.createGrayLineBorder(), "Actions"));
|
actionsPanel.setBorder(new TitledBorder(LineBorder.createGrayLineBorder(), actions));
|
||||||
parentTopPanel.add(actionsPanel, -1);
|
parentTopPanel.add(actionsPanel, -1);
|
||||||
|
|
||||||
// Create new panel for [N] children checkboxes
|
// Create new panel for [N] children checkboxes
|
||||||
// Don't add anything here yet. This will happen dynamically in updateTypesCached
|
// Don't add anything here yet. This will happen dynamically in updateTypesCached
|
||||||
|
String knownTypes = _loc.get("datacachepanel.titles.types").getMessage();
|
||||||
_typesPanel = new JPanel(new GridLayout());
|
_typesPanel = new JPanel(new GridLayout());
|
||||||
_typesPanel.setBorder(new TitledBorder(LineBorder.createGrayLineBorder(), "Currently known types"));
|
_typesPanel.setBorder(new TitledBorder(LineBorder.createGrayLineBorder(), knownTypes));
|
||||||
parentTopPanel.add(_typesPanel, -1);
|
parentTopPanel.add(_typesPanel, -1);
|
||||||
|
|
||||||
// create enabled check box to parent
|
// create enabled check box to parent
|
||||||
JCheckBox enableStatisticsCheckBox = new JCheckBox("Statistics enabled", mbean.getStatisticsEnabled());
|
String statsEnabled = _loc.get("datacachepanel.buttons.stats").getMessage();
|
||||||
|
JCheckBox enableStatisticsCheckBox = new JCheckBox(statsEnabled, mbean.getStatisticsEnabled());
|
||||||
enableStatisticsCheckBox.addItemListener(new ItemListener() {
|
enableStatisticsCheckBox.addItemListener(new ItemListener() {
|
||||||
public void itemStateChanged(ItemEvent e) {
|
public void itemStateChanged(ItemEvent e) {
|
||||||
boolean enable = (e.getStateChange() == ItemEvent.SELECTED);
|
boolean enable = (e.getStateChange() == ItemEvent.SELECTED);
|
||||||
@ -94,7 +100,8 @@ public class DataCachePanel extends JPanel {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// create clear cache button
|
// create clear cache button
|
||||||
JButton clear = new JButton("Clear cache");
|
String clearButton = _loc.get("datacachepanel.buttons.clear").getMessage();
|
||||||
|
JButton clear = new JButton(clearButton);
|
||||||
clear.addActionListener(new ActionListener() {
|
clear.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
_mbean.clear();
|
_mbean.clear();
|
||||||
@ -102,7 +109,8 @@ public class DataCachePanel extends JPanel {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// create clear cache button
|
// create clear cache button
|
||||||
JButton reset = new JButton("Reset statistics");
|
String resetButton = _loc.get("datacachepanel.buttons.reset").getMessage();
|
||||||
|
JButton reset = new JButton(resetButton);
|
||||||
reset.addActionListener(new ActionListener() {
|
reset.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
_mbean.reset();
|
_mbean.reset();
|
||||||
@ -155,7 +163,6 @@ public class DataCachePanel extends JPanel {
|
|||||||
// Unexpected
|
// Unexpected
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -31,6 +31,7 @@ import javax.swing.JPanel;
|
|||||||
import javax.swing.SwingWorker;
|
import javax.swing.SwingWorker;
|
||||||
|
|
||||||
import org.apache.openjpa.instrumentation.jmx.DataCacheJMXInstrumentMBean;
|
import org.apache.openjpa.instrumentation.jmx.DataCacheJMXInstrumentMBean;
|
||||||
|
import org.apache.openjpa.lib.util.Localizer;
|
||||||
|
|
||||||
import com.sun.tools.jconsole.JConsoleContext;
|
import com.sun.tools.jconsole.JConsoleContext;
|
||||||
import com.sun.tools.jconsole.JConsolePlugin;
|
import com.sun.tools.jconsole.JConsolePlugin;
|
||||||
@ -39,6 +40,9 @@ import com.sun.tools.jconsole.JConsolePlugin;
|
|||||||
* DataCachePlugin
|
* DataCachePlugin
|
||||||
*/
|
*/
|
||||||
public class DataCachePlugin extends JConsolePlugin {
|
public class DataCachePlugin extends JConsolePlugin {
|
||||||
|
private static final Localizer _loc = Localizer.forPackage(DataCachePlugin.class);
|
||||||
|
private static final String DATACACHE_MBEAN_QUERY_STRING = "org.apache.openjpa:type=DataCache,*";
|
||||||
|
|
||||||
private Map<String, JPanel> _tabs;
|
private Map<String, JPanel> _tabs;
|
||||||
private Map<DataCacheJMXInstrumentMBean, DataCachePanel> _mbeanPanelMap;
|
private Map<DataCacheJMXInstrumentMBean, DataCachePanel> _mbeanPanelMap;
|
||||||
|
|
||||||
@ -66,10 +70,9 @@ public class DataCachePlugin extends JConsolePlugin {
|
|||||||
String cfgId = entry.getKey();
|
String cfgId = entry.getKey();
|
||||||
String name = m.getCacheName();
|
String name = m.getCacheName();
|
||||||
|
|
||||||
// TODO -- should NLSize this tab.
|
|
||||||
DataCachePanel panel = new DataCachePanel(m);
|
DataCachePanel panel = new DataCachePanel(m);
|
||||||
String key = "DataCache-" + cfgId + "-" + name;
|
String key = "DataCache-" + cfgId + "-" + name;
|
||||||
// This 'shouldn't' ever happen... but it will if we have name collisions for one reason or another.
|
// This "shouldn't" ever happen... but it will if we have name collisions for one reason or another.
|
||||||
while (res.containsKey(key) == true) {
|
while (res.containsKey(key) == true) {
|
||||||
key = key + "_dup";
|
key = key + "_dup";
|
||||||
}
|
}
|
||||||
@ -90,18 +93,18 @@ public class DataCachePlugin extends JConsolePlugin {
|
|||||||
connections.add(ctx.getMBeanServerConnection());
|
connections.add(ctx.getMBeanServerConnection());
|
||||||
connections.addAll(MBeanServerFactory.findMBeanServer(null));
|
connections.addAll(MBeanServerFactory.findMBeanServer(null));
|
||||||
if (connections == null || connections.size() == 0) {
|
if (connections == null || connections.size() == 0) {
|
||||||
System.err
|
System.err.println(_loc.get("datacacheplugin.zero.mbeanconnections").getMessage());
|
||||||
.println("DataCachePlugin found zero from MBeanServerFactory.findMBeanServer(null) using default");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MBeanServerConnection server : connections) {
|
for (MBeanServerConnection server : connections) {
|
||||||
try {
|
try {
|
||||||
ObjectName generic = new ObjectName("org.apache.openjpa:type=DataCache,*");
|
ObjectName generic = new ObjectName(DATACACHE_MBEAN_QUERY_STRING);
|
||||||
ObjectName[] objects = server.queryNames(generic, null).toArray(new ObjectName[0]);
|
ObjectName[] objects = server.queryNames(generic, null).toArray(new ObjectName[0]);
|
||||||
if (objects == null || objects.length == 0) {
|
if (objects == null || objects.length == 0) {
|
||||||
System.err
|
String message =
|
||||||
.println("No ObjectNames found matching 'org.apache.openjpa:type=DataCache,*' for MBeanServer "
|
_loc.get("datacacheplugin.zero.mbeans", new Object[] { DATACACHE_MBEAN_QUERY_STRING, server })
|
||||||
+ server);
|
.getMessage();
|
||||||
|
System.err.println(message);
|
||||||
}
|
}
|
||||||
for (ObjectName o : objects) {
|
for (ObjectName o : objects) {
|
||||||
DataCacheJMXInstrumentMBean bean = JMX.newMBeanProxy(server, o, DataCacheJMXInstrumentMBean.class);
|
DataCacheJMXInstrumentMBean bean = JMX.newMBeanProxy(server, o, DataCacheJMXInstrumentMBean.class);
|
||||||
|
@ -22,13 +22,19 @@ import java.util.List;
|
|||||||
|
|
||||||
import javax.swing.table.AbstractTableModel;
|
import javax.swing.table.AbstractTableModel;
|
||||||
|
|
||||||
|
import org.apache.openjpa.lib.util.Localizer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DataCacheTable
|
* DataCacheTable
|
||||||
*/
|
*/
|
||||||
public class DataCacheTable extends AbstractTableModel {
|
public class DataCacheTable extends AbstractTableModel {
|
||||||
private static final long serialVersionUID = -117710809875227870L;
|
private static final long serialVersionUID = -117710809875227870L;
|
||||||
// TODO -- should NLSize these column names
|
private static final Localizer _loc = Localizer.forPackage(DataCacheTable.class);
|
||||||
private String[] _cols = { "key", "reads", "hits", "writes" };
|
// Column names -- key, reads, hits, writes
|
||||||
|
private static final String[] _cols =
|
||||||
|
{ _loc.get("datacachetable.column.key").getMessage(), _loc.get("datacachetable.column.reads").getMessage(),
|
||||||
|
_loc.get("datacachetable.column.hits").getMessage(), _loc.get("datacachetable.column.writes").getMessage(), };
|
||||||
|
|
||||||
// row, col
|
// row, col
|
||||||
private Object[][] _tableData;
|
private Object[][] _tableData;
|
||||||
|
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
# 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.
|
||||||
|
datacachetable.column.key=key
|
||||||
|
datacachetable.column.reads=reads
|
||||||
|
datacachetable.column.hits=hits
|
||||||
|
datacachetable.column.writes=writes
|
||||||
|
|
||||||
|
datacacheplugin.zero.mbeanconnections=The DataCache JConsole plugin found zero MBeanServer connections. Please ensure \
|
||||||
|
that the application is running and configured properly.
|
||||||
|
datacacheplugin.zero.mbeans=The DataCache JConsole plugin found zero MBeans matching the following query string '{0}' \
|
||||||
|
for MBeanServerConnection '{1}'. Please ensure that the application is running and configured properly.
|
||||||
|
|
||||||
|
datacachepanel.titles.actions=Actions
|
||||||
|
datacachepanel.titles.types=Currently known types
|
||||||
|
datacachepanel.buttons.stats=Statistics enabled
|
||||||
|
datacachepanel.buttons.clear=Clear cache
|
||||||
|
datacachepanel.buttons.reset=Reset statistics
|
Loading…
x
Reference in New Issue
Block a user