| career | drupal | java | mac | mysql | perl | scala | uml | unix  

JMeter example source code file (

This example JMeter source code file ( is included in the "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - JMeter tags/keywords

acceptpkcs12filefilter, acceptpkcs12filefilter, awt, command, event, file, filefilter, gui, hashset, hashset, io, jfilechooser, non-nls-1, non-nls-1, override, override, set, string, swing, util

The JMeter source code

 * 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
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.

package org.apache.jmeter.gui.action;

import java.awt.event.ActionEvent;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;

import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jmeter.util.SSLManager;

 * SSL Manager Command. The SSL Manager provides a mechanism to change your
 * client authentication if required by the server. If you have JSSE 1.0.2
 * installed, you can select your client identity from a list of installed keys.
 * You can also change your keystore. JSSE 1.0.2 allows you to export a PKCS#12
 * key from Netscape 4.04 or higher and use it in a read only format. You must
 * supply a password that is greater than six characters due to limitations in
 * the keytool program--and possibly the rest of the system.
 * <p>
 * By selecting a *.p12 file as your keystore (your PKCS#12) format file, you
 * can have a whopping one key keystore. The advantage is that you can test a
 * connection using the assigned Certificate from a Certificate Authority.
 * </p>
 * TODO ?
 * N.B. The present implementation does not seem to allow selection of keys,
 * it only allows a change of keystore at run-time, or to provide one if not
 * already defined via the property.
public class SSLManagerCommand implements Command {
    private static final Set<String> commandSet;
    static {
        HashSet<String> commands = new HashSet();
        commandSet = Collections.unmodifiableSet(commands);

    private JFileChooser keyStoreChooser;

     * Handle the "sslmanager" action by displaying the "SSL CLient Manager"
     * dialog box. The Dialog Box is NOT modal, because those should be avoided
     * if at all possible.
    public void doAction(ActionEvent e) {
        if (e.getActionCommand().equals(ActionNames.SSL_MANAGER)) {

     * Provide the list of Action names that are available in this command.
    public Set<String> getActionNames() {
        return SSLManagerCommand.commandSet;

     * Called by sslManager button. Raises sslManager dialog.
     * I.e. a FileChooser for PCSI12 (.p12|.P12) files.
    private void sslManager() {

        keyStoreChooser = new JFileChooser(System.getProperty("user.dir")); //$NON-NLS-1$
        keyStoreChooser.addChoosableFileFilter(new AcceptPKCS12FileFilter());
        int retVal = keyStoreChooser.showOpenDialog(GuiPackage.getInstance().getMainFrame());

        if (JFileChooser.APPROVE_OPTION == retVal) {
            File selectedFile = keyStoreChooser.getSelectedFile();
            try {
                System.setProperty(SSLManager.JAVAX_NET_SSL_KEY_STORE, selectedFile.getCanonicalPath());
            } catch (IOException e) {

        keyStoreChooser = null;

     * Internal class to add a PKCS12 file format filter for JFileChooser.
    static private class AcceptPKCS12FileFilter extends FileFilter {
         * Get the description that shows up in JFileChooser filter menu.
         * @return description
        public String getDescription() {
            return JMeterUtils.getResString("pkcs12_desc"); //$NON-NLS-1$

         * Tests to see if the file ends with "*.p12" or "*.P12".
         * @param testFile
         *            file to test
         * @return true if file is accepted, false otherwise
        public boolean accept(File testFile) {
            return testFile.isDirectory()
            || testFile.getName().endsWith(".p12")  //$NON-NLS-1$
            || testFile.getName().endsWith(".P12"); //$NON-NLS-1$

Other JMeter examples (source code examples)

Here is a short list of links related to this JMeter source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller


new blog posts


Copyright 1998-2021 Alvin Alexander,
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.