:: DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
::
:: Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
::
:: The contents of this file are subject to the terms of either the GNU
:: General Public License Version 2 only ("GPL") or the Common Development
:: and Distribution License("CDDL") (collectively, the "License").  You
:: may not use this file except in compliance with the License.  You can
:: obtain a copy of the License at
:: https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
:: or packager/legal/LICENSE.txt.  See the License for the specific
:: language governing permissions and limitations under the License.
::
:: When distributing the software, include this License Header Notice in each
:: file and include the License file at packager/legal/LICENSE.txt.
::
:: GPL Classpath Exception:
:: Oracle designates this particular file as subject to the "Classpath"
:: exception as provided by Oracle in the GPL Version 2 section of the License
:: file that accompanied this code.
::
:: Modifications:
:: If applicable, add the following below the License Header, with the fields
:: enclosed by brackets [] replaced by your own identifying information:
:: "Portions Copyright [year] [name of copyright owner]"
::
:: Contributor(s):
:: If you wish your version of this file to be governed by only the CDDL or
:: only the GPL Version 2, indicate your decision by adding "[Contributor]
:: elects to include this software in this distribution under the [CDDL or GPL
:: Version 2] license."  If you don't indicate a single choice of license, a
:: recipient has the option to distribute your version of this file under
:: either the CDDL, the GPL Version 2 or to extend the choice of license to
:: its licensees as provided above.  However, if you add GPL Version 2 code
:: and therefore, elected the GPL Version 2 license, then the option applies
:: only if the new code is made subject to such option by the copyright
:: holder.

@ECHO OFF

CALL C:\glassfish\lb\scripts\env.bat

SET HTTP_PORT=%1
SET HTTPS_PORT=%2
::if HTTP port is not provided use default http port
IF [%HTTP_PORT%]==[] (
echo. Using default http port : %DEFAULT_HTTP_PORT%
SET HTTP_PORT=%DEFAULT_HTTP_PORT%
)
call:setHttpPort %HTTP_PORT%

::if HTTPS port is provided, then make ssl configuration
IF [%HTTPS_PORT%]==[] (
call:disableSSL
) ELSE (
call:setHttpsPort %HTTPS_PORT%
call:createCertificate
call:enableSSL
)

echo. CONFIGURATION COMMAND COMPLETED SUCCESSFULLY

goto:eof

::----------------------------------------------------------
::             Method definitions
::----------------------------------------------------------

::Handle certificate creation for Apache
:createCertificate
%APACHE_INSTALL_DIR%\bin\openssl genrsa -des3 -passout pass:glassfish -out %REPO_DIR%\server.key 1024
move %REPO_DIR%\server.key %REPO_DIR%\server.key.org
%APACHE_INSTALL_DIR%\bin\openssl rsa -in %REPO_DIR%\server.key.org -passin pass:glassfish -out %REPO_DIR%\server.key
del %REPO_DIR%\server.key.org
cscript //nologo %REPO_DIR%\regexReplacer.vbs "{SERVER_NAME}" "%HOSTNAME%" "%REPO_DIR%\cert-input.txt" "%REPO_DIR%\my-cert-input.txt"
type %REPO_DIR%\my-cert-input.txt | %APACHE_INSTALL_DIR%\bin\openssl req -new -key %REPO_DIR%\server.key -x509 -days 365 -out %REPO_DIR%\server.crt > NUL 2>&1
del %REPO_DIR%\my-cert-input.txt
move %REPO_DIR%\server.key %APACHE_CONFIG_DIR%
move %REPO_DIR%\server.crt %APACHE_CONFIG_DIR%
echo. CERTIFICATE CREATION COMPLETED SUCCESSFULLY
goto:eof

::Sets HTTP port for Apache
:setHttpPort
cscript //nologo %REPO_DIR%\regexReplacer.vbs "{HTTP_PORT}" "%1" "%APACHE_CONFIG_DIR%\httpd.conf" "%APACHE_CONFIG_DIR%\httpd.conf.new"
move %APACHE_CONFIG_DIR%\httpd.conf.new %APACHE_CONFIG_DIR%\httpd.conf
cscript //nologo %REPO_DIR%\regexReplacer.vbs "{SERVER_NAME}" "%HOSTNAME%" "%APACHE_CONFIG_DIR%\httpd.conf" "%APACHE_CONFIG_DIR%\httpd.conf.new"
move %APACHE_CONFIG_DIR%\httpd.conf.new %APACHE_CONFIG_DIR%\httpd.conf
goto:eof

::Enable SSL for Apache
:enableSSL
cscript //nologo %REPO_DIR%\regexReplacer.vbs "{COMMENT_OR_UNCOMMENT}" "" "%APACHE_CONFIG_DIR%\httpd.conf" "%APACHE_CONFIG_DIR%\httpd.conf.new"
move %APACHE_CONFIG_DIR%\httpd.conf.new %APACHE_CONFIG_DIR%\httpd.conf
goto:eof

::Disable SSL for Apache
:disableSSL
cscript //nologo %REPO_DIR%\regexReplacer.vbs "{COMMENT_OR_UNCOMMENT}" "#" "%APACHE_CONFIG_DIR%\httpd.conf" "%APACHE_CONFIG_DIR%\httpd.conf.new"
move %APACHE_CONFIG_DIR%\httpd.conf.new %APACHE_CONFIG_DIR%\httpd.conf
goto:eof

::Sets HTTPS port for Apache
:setHttpsPort
cscript //nologo %REPO_DIR%\regexReplacer.vbs "{HTTPS_PORT}" "%1" "%APACHE_CONFIG_DIR%\extra\httpd-ssl.conf" "%APACHE_CONFIG_DIR%\extra\httpd-ssl.conf.new"
move %APACHE_CONFIG_DIR%\extra\httpd-ssl.conf.new %APACHE_CONFIG_DIR%\extra\httpd-ssl.conf
cscript //nologo %REPO_DIR%\regexReplacer.vbs "{SERVER_NAME}" "%HOSTNAME%" "%APACHE_CONFIG_DIR%\extra\httpd-ssl.conf" "%APACHE_CONFIG_DIR%\extra\httpd-ssl.conf.new"
move %APACHE_CONFIG_DIR%\extra\httpd-ssl.conf.new %APACHE_CONFIG_DIR%\extra\httpd-ssl.conf
goto:eof
