// Path: asadmin-java/src/main/java/org/n0pe/asadmin/AsAdminCmdList.java
// public class AsAdminCmdList
//     extends ArrayList<IAsAdminCmd>
// {
// 
//     private static final long serialVersionUID = 1L;
// 
//     public AsAdminCmdList()
//     {
//         super();
//     }
// 
// }
// 
// Path: asadmin-java/src/main/java/org/n0pe/asadmin/commands/CreateAuthRealm.java
// public class CreateAuthRealm
//     extends AbstractAsAdminCmd
// {
// 
//     private static final String CLASSNAME_OPT = "--classname";
//     private static final String PROPERTY_OPT = "--property";
//     private String realmName;
//     private String className;
//     private Map properties;
// 
//     private CreateAuthRealm()
//     {
//     }
// 
//     public CreateAuthRealm( String realmName )
//     {
//         this.realmName = realmName;
//     }
// 
//     public CreateAuthRealm withClassName( String className )
//     {
//         this.className = className;
//         return this;
//     }
// 
//     public CreateAuthRealm addProperty( String key, String value )
//     {
//         if( properties == null )
//         {
//             properties = new HashMap();
//         }
//         properties.put( key, value );
//         return this;
//     }
// 
//     public boolean needCredentials()
//     {
//         return true;
//     }
// 
//     public String getActionCommand()
//     {
//         return "create-auth-realm";
//     }
// 
//     public String[] getParameters()
//     {
//         if( StringUtils.isEmpty( className ) )
//         {
//             throw new IllegalStateException();
//         }
//         final String[] params;
//         if( properties != null && !properties.isEmpty() )
//         {
//             final StringWriter sw = new StringWriter();
//             String key;
//             for( final Iterator it = properties.keySet().iterator(); it.hasNext(); )
//             {
//                 key = (String) it.next();
//                 sw.append( key ).append( "=" ).append( Util.quoteCommandArgument( (String) properties.get( key ) ) );
//                 if( it.hasNext() )
//                 {
//                     sw.append( ":" );
//                 }
//             }
//             params = new String[]
//             {
//                 CLASSNAME_OPT, className, PROPERTY_OPT, sw.toString(), realmName
//             };
// 
//         }
//         else
//         {
//             params = new String[]
//             {
//                 CLASSNAME_OPT, className, realmName
//             };
//         }
//         return params;
//     }
// 
// }


import java.util.Map;
import org.n0pe.asadmin.AsAdminCmdList;
import org.n0pe.asadmin.commands.CreateAuthRealm;
import java.util.Iterator;
/*
 * Copyright (c) 2010, Paul Merlin.
 *
 * Licensed 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.
 *
 */
package org.n0pe.mojo.asadmin;


/**
 * @goal create-auth-realm
 * @description AsAdmin create-auth-realm mojo
 */
public class CreateAuthRealmMojo
    extends AbstractAsadminMojo
{

    /**
     * @parameter default-value="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"
     * @required
     */
    private String realmClassName;
    /**
     * @parameter
     * @required
     */
    private String realmName;
    /**
     * @parameter
     */
    private Map realmProperties;

    /**
     * Usage : create-auth-realm --classname realm_class [--terse=false] [--echo=false]
     * [--interactive=true] [--host localhost] [--port 4848|4849] [--secure | -s]
     * [--user admin_user] [--passwordfile file_name]
     * [--property (name=value)[:name=value]*]
     * [--target target(Default server)] auth_realm_name
     *
     * @return asadmin commands
     */
    @Override
// Path: asadmin-java/src/main/java/org/n0pe/asadmin/AsAdminCmdList.java
// public class AsAdminCmdList
//     extends ArrayList<IAsAdminCmd>
// {
// 
//     private static final long serialVersionUID = 1L;
// 
//     public AsAdminCmdList()
//     {
//         super();
//     }
// 
// }
// 
// Path: asadmin-java/src/main/java/org/n0pe/asadmin/commands/CreateAuthRealm.java
// public class CreateAuthRealm
//     extends AbstractAsAdminCmd
// {
// 
//     private static final String CLASSNAME_OPT = "--classname";
//     private static final String PROPERTY_OPT = "--property";
//     private String realmName;
//     private String className;
//     private Map properties;
// 
//     private CreateAuthRealm()
//     {
//     }
// 
//     public CreateAuthRealm( String realmName )
//     {
//         this.realmName = realmName;
//     }
// 
//     public CreateAuthRealm withClassName( String className )
//     {
//         this.className = className;
//         return this;
//     }
// 
//     public CreateAuthRealm addProperty( String key, String value )
//     {
//         if( properties == null )
//         {
//             properties = new HashMap();
//         }
//         properties.put( key, value );
//         return this;
//     }
// 
//     public boolean needCredentials()
//     {
//         return true;
//     }
// 
//     public String getActionCommand()
//     {
//         return "create-auth-realm";
//     }
// 
//     public String[] getParameters()
//     {
//         if( StringUtils.isEmpty( className ) )
//         {
//             throw new IllegalStateException();
//         }
//         final String[] params;
//         if( properties != null && !properties.isEmpty() )
//         {
//             final StringWriter sw = new StringWriter();
//             String key;
//             for( final Iterator it = properties.keySet().iterator(); it.hasNext(); )
//             {
//                 key = (String) it.next();
//                 sw.append( key ).append( "=" ).append( Util.quoteCommandArgument( (String) properties.get( key ) ) );
//                 if( it.hasNext() )
//                 {
//                     sw.append( ":" );
//                 }
//             }
//             params = new String[]
//             {
//                 CLASSNAME_OPT, className, PROPERTY_OPT, sw.toString(), realmName
//             };
// 
//         }
//         else
//         {
//             params = new String[]
//             {
//                 CLASSNAME_OPT, className, realmName
//             };
//         }
//         return params;
//     }
// 
// }


// Path: asadmin-maven-plugin/src/main/java/org/n0pe/mojo/asadmin/CreateAuthRealmMojo.java
import java.util.Map;
import org.n0pe.asadmin.AsAdminCmdList;
import org.n0pe.asadmin.commands.CreateAuthRealm;
import java.util.Iterator;

/*
 * Copyright (c) 2010, Paul Merlin.
 *
 * Licensed 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.
 *
 */
package org.n0pe.mojo.asadmin;


/**
 * @goal create-auth-realm
 * @description AsAdmin create-auth-realm mojo
 */
public class CreateAuthRealmMojo
    extends AbstractAsadminMojo
{

    /**
     * @parameter default-value="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"
     * @required
     */
    private String realmClassName;
    /**
     * @parameter
     * @required
     */
    private String realmName;
    /**
     * @parameter
     */
    private Map realmProperties;

    /**
     * Usage : create-auth-realm --classname realm_class [--terse=false] [--echo=false]
     * [--interactive=true] [--host localhost] [--port 4848|4849] [--secure | -s]
     * [--user admin_user] [--passwordfile file_name]
     * [--property (name=value)[:name=value]*]
     * [--target target(Default server)] auth_realm_name
     *
     * @return asadmin commands
     */
    @Override
    protected AsAdminCmdList getAsCommandList()