##
##  wso2am.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2025 OpenPKG Project <http://openpkg.org/>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   package version
%define       V_opkg 2.1.0
%define       V_dist 2.1.0

#   package information
Name:         wso2am
Summary:      WSO2 API Manager
URL:          http://wso2.com/products/api-manager/
Vendor:       WSO2
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        EVAL
Group:        Web
License:      Apache
Version:      %{V_opkg}
Release:      20170206

#   list of sources
Source0:      http://product-dist.wso2.com/products/api-manager/%{version}/wso2am-%{version}.zip
Source1:      rc.wso2am

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101, infozip
PreReq:       OpenPKG, openpkg >= 20160101
PreReq:       java, JAVA-JDK
PreReq:       wso2am

%description
    WSO2 API Manager is a complete solution for designing and publishing
    APIs, creating and managing a developer community, and for scalably
    routing API traffic. It leverages proven, production-ready
    integration, security, and governance components from the WSO2
    Enterprise Service Bus, WSO2 Identity Server, and WSO2 Governance
    Registry. In addition, it leverages the WSO2 Data Analytics Server
    for analytics, giving you instant insight into APIs behavior.

%track
    prog wso2am = {
        version   = %{V_dist}
        url       = http://wso2.com/products/api-manager/
        regex     = Version\s+(\d+\.\d+(?:\.\d+)*)
    }

%prep
    %setup -q

%build
    rm -f "repository/deployment/server/jaggeryapps/publisher/site/themes/default/templates/utils/dataTables/images/Sorting icons.psd"
    rm -f "repository/components/features/org.wso2.carbon.apimgt.publisher_5.0.3/publisher/site/themes/default/templates/utils/dataTables/images/Sorting icons.psd"
    rm -f "repository/deployment/server/jaggeryapps/publisher/site/themes/wso2/libs/data-tables_1.10.7/extensions/TableTools/images/psd/copy document.psd"
    rm -f "repository/deployment/server/jaggeryapps/store/site/themes/wso2/libs/data-tables_1.10.7/extensions/TableTools/images/psd/copy document.psd"
    rm -f "repository/deployment/server/jaggeryapps/admin/site/themes/wso2/libs/data-tables_1.10.7/extensions/TableTools/images/psd/copy document.psd"

%install
    #   create installation hierarchy
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
        $RPM_BUILD_ROOT%{l_prefix}/etc/wso2am \
        $RPM_BUILD_ROOT%{l_prefix}/libexec/wso2am \
        $RPM_BUILD_ROOT%{l_prefix}/var/wso2am/run \
        $RPM_BUILD_ROOT%{l_prefix}/var/wso2am/log \
        $RPM_BUILD_ROOT%{l_prefix}/var/wso2am

    #   install application into application server area
    cp -rp * $RPM_BUILD_ROOT%{l_prefix}/libexec/wso2am/

    #   install rc script
    %{l_shtool} install -c -m 755 %{l_value -s -a} \
        %{SOURCE rc.wso2am} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/

    #   determine installation files
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
        %{l_files_std} \
        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/libexec/wso2am' \
        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/libexec/wso2am/*' \
        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/libexec/wso2am/*/*' \
        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/libexec/wso2am/*/*/*' \
        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/libexec/wso2am/*/*/*/*' \
        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/wso2am' \
        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/wso2am/*'

%files -f files

%clean

%post
    if [ $1 -eq 1 ]; then
        #   display final hint after initial installation
        ( echo "WSO2AM is successfully installed and configured with its"
          echo "standalone server default configuration in:"
          echo "    $RPM_INSTALL_PREFIX/libexec/wso2am/"
          echo "After starting WSO2AM with"
          echo "    \$ $RPM_INSTALL_PREFIX/bin/openpkg rc wso2am start"
          echo "you may connect to its Web management interface under"
          echo "    https://127.0.0.1:9443/"
          echo "in order to further configure the WSO2AM service."
        ) | %{l_rpmtool} msg -b -t notice
    elif [ $1 -eq 2 ]; then
        #   after upgrade, restart application server
        eval `%{l_rc} wso2am status 2>/dev/null`
        [ ".$wso2am_active" = .yes ] && %{l_rc} wso2am restart
    fi
    exit 0

%preun
    #   before erase, stop service and remove log files
    if [ $1 -eq 0 ]; then
        rm -f  $RPM_INSTALL_PREFIX/var/wso2am/* >/dev/null 2>&1 || true
    fi
    exit 0

