Name:                artemis
Version:             1.4.0
Release:             2
Summary:             Java high performance, clustered, asynchronous messaging system
License:             ASL 2.0
URL:                 https://github.com/apache/activemq-artemis/
Source0:             https://github.com/apache/activemq-artemis/archive/%{version}/%{name}-%{version}.tar.gz
Patch0:              artemis-netty-4.1.patch
BuildRequires:       gcc-c++ cmake libaio-devel libtool maven-local mvn(com.google.guava:guava)
BuildRequires:       mvn(commons-beanutils:commons-beanutils) mvn(io.airlift:airline)
BuildRequires:       mvn(io.netty:netty-all) mvn(javax.inject:javax.inject)
BuildRequires:       mvn(javax.json:javax.json-api) mvn(javax.xml.bind:jaxb-api) mvn(junit:junit)
BuildRequires:       mvn(org.apache:apache:pom:) mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires:       mvn(org.apache.johnzon:johnzon-core)
BuildRequires:       mvn(org.apache.geronimo.specs:geronimo-annotation_1.1_spec)
BuildRequires:       mvn(org.apache.geronimo.specs:geronimo-ejb_3.0_spec)
BuildRequires:       mvn(org.apache.geronimo.specs:geronimo-jta_1.1_spec)
BuildRequires:       mvn(org.apache.maven:maven-plugin-api)
BuildRequires:       mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires:       mvn(org.apache.maven.plugins:maven-dependency-plugin)
BuildRequires:       mvn(org.apache.maven.plugins:maven-enforcer-plugin)
BuildRequires:       mvn(org.apache.maven.plugins:maven-install-plugin)
BuildRequires:       mvn(org.apache.maven.plugins:maven-plugin-plugin)
BuildRequires:       mvn(org.apache.maven.plugin-tools:maven-plugin-annotations)
BuildRequires:       mvn(org.apache.qpid:proton-j) mvn(org.apache.qpid:proton-jms)
BuildRequires:       mvn(org.apache.rat:apache-rat-plugin)
BuildRequires:       mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires:       mvn(org.codehaus.mojo:javacc-maven-plugin) mvn(org.easymock:easymock)
BuildRequires:       mvn(org.eclipse.aether:aether-api) mvn(org.eclipse.aether:aether-util)
BuildRequires:       mvn(org.eclipse.jetty:jetty-server) mvn(org.eclipse.jetty:jetty-webapp)
BuildRequires:       mvn(org.eclipse.osgi:org.eclipse.osgi)
BuildRequires:       mvn(org.eclipse.osgi:org.eclipse.osgi.services)
BuildRequires:       mvn(org.glassfish.jaxb:jaxb-jxc) mvn(org.glassfish.jaxb:jaxb-runtime)
BuildRequires:       mvn(org.jboss.logging:jboss-logging)
BuildRequires:       mvn(org.jboss.logging:jboss-logging-processor)
BuildRequires:       mvn(org.jboss.logmanager:jboss-logmanager) mvn(org.jboss.modules:jboss-modules)
BuildRequires:       mvn(org.jboss.spec.javax.jms:jboss-jms-api_2.0_spec)
BuildRequires:       mvn(org.jboss.spec.javax.resource:jboss-connector-api_1.7_spec)
BuildRequires:       mvn(org.jboss.resteasy:resteasy-atom-provider)
BuildRequires:       mvn(org.jboss.resteasy:resteasy-jackson-provider)
BuildRequires:       mvn(org.jboss.resteasy:resteasy-jaxb-provider)
BuildRequires:       mvn(org.jboss.resteasy:resteasy-jaxrs) mvn(org.jboss.resteasy:tjws)
BuildRequires:       mvn(org.jgroups:jgroups) mvn(org.slf4j:slf4j-api)
BuildRequires:       mvn(org.springframework:spring-beans) mvn(org.springframework:spring-context)
BuildRequires:       mvn(org.springframework:spring-core) mvn(org.springframework:spring-jms)
BuildRequires:       mvn(postgresql:postgresql) mvn(xalan:xalan)
%description
Apache ActiveMQ Artemis is an open source project to
build a multi-protocol, embeddable, very high performance,
clustered, asynchronous messaging system. Artemis
is an example of Message Oriented Middleware (MoM).

%package boot
Summary:             ActiveMQ Artemis Boot
BuildArch:           noarch
%description boot
ActiveMQ Artemis Boot.

%package cli
Summary:             ActiveMQ Artemis CLI
BuildArch:           noarch
%description cli
ActiveMQ Artemis CLI.

%package commons
Summary:             ActiveMQ Artemis Commons
License:             ASL 2.0 and Public Domain
BuildArch:           noarch
Provides:            bundled(java-base64) = 2.2.2
%description commons
ActiveMQ Artemis Commons.

%package core-client
Summary:             ActiveMQ Artemis Core Client
BuildArch:           noarch
%description core-client
ActiveMQ Artemis Core Client.

%package dto
Summary:             ActiveMQ Artemis DTO
BuildArch:           noarch
%description dto
ActiveMQ Artemis DTO.

%package jdbc-store
Summary:             ActiveMQ Artemis JDBC Store
BuildArch:           noarch
%description jdbc-store
ActiveMQ Artemis JDBC Store.

%package jms-client
Summary:             ActiveMQ Artemis JMS Client
BuildArch:           noarch
%description jms-client
ActiveMQ Artemis JMS Client.

%package jms-server
Summary:             ActiveMQ Artemis JMS Server
BuildArch:           noarch
%description jms-server
ActiveMQ Artemis JMS Server.

%package journal
Summary:             ActiveMQ Artemis Journal
BuildArch:           noarch
%description journal
ActiveMQ Artemis Journal.

%package maven-plugin
Summary:             ActiveMQ Artemis Maven Plugin
BuildArch:           noarch
%description maven-plugin
ActiveMQ Artemis Maven Plugin.

%package native
Summary:             ActiveMQ Artemis native library
%description native
Artemis distributes a native library,
used as a bridge for its fast journal,
between Artemis and Linux libaio.

%package protocols
Summary:             ActiveMQ Artemis Protocols POM
BuildArch:           noarch
%description protocols
ActiveMQ Artemis Protocols Parent POM.

%package amqp-protocol
Summary:             ActiveMQ Artemis Protocol AMQP
BuildArch:           noarch
%description amqp-protocol
Apache ActiveMQ Artemis supports for AMQP 1.0
specification.

%package hornetq-protocol
Summary:             ActiveMQ Artemis Protocol HornetQ
BuildArch:           noarch
%description hornetq-protocol
ActiveMQ Artemis Protocol HornetQ.

%package hqclient-protocol
Summary:             ActiveMQ Artemis Protocol HQClient
BuildArch:           noarch
%description hqclient-protocol
Apache ActiveMQ Artemis Protocol HQClient.

%package proton-plug
Summary:             ActiveMQ Artemis Protocol Proton
BuildArch:           noarch
%description proton-plug
Apache ActiveMQ Artemis Protocol Proton.

%package stomp-protocol
Summary:             ActiveMQ Artemis Protocol STOMP
BuildArch:           noarch
%description stomp-protocol
Apache ActiveMQ Artemis Protocol STOMP.

%package ra
Summary:             ActiveMQ Artemis RAR
BuildArch:           noarch
%description ra
Apache ActiveMQ Artemis RAR.

%package rest
Summary:             ActiveMQ Artemis REST Interface Implementation
BuildArch:           noarch
%description rest
Apache ActiveMQ Artemis REST Interface Implementation.

%package selector
Summary:             ActiveMQ Artemis Selector Implementation
BuildArch:           noarch
%description selector
Apache ActiveMQ Artemis Selector Implementation.

%package server
Summary:             ActiveMQ Artemis Server
BuildArch:           noarch
%description server
Apache ActiveMQ Artemis Server.

%package server-osgi
Summary:             ActiveMQ Artemis Server OSGi
BuildArch:           noarch
%description server-osgi
Apache ActiveMQ Artemis Server OSGi.

%package service-extensions
Summary:             ActiveMQ Artemis Service Extensions
BuildArch:           noarch
%description service-extensions
Apache ActiveMQ Artemis Service Extensions.

%package web
Summary:             ActiveMQ Artemis Web
BuildArch:           noarch
%description web
Apache ActiveMQ Artemis Web.

%package spring-integration
Summary:             ActiveMQ Artemis Spring Integration
BuildArch:           noarch
%description spring-integration
Apache ActiveMQ Artemis Spring Integration.

%package pom
Summary:             ActiveMQ Artemis POM
BuildArch:           noarch
%description pom
ActiveMQ Artemis Parent POM.

%package javadoc
Summary:             Javadoc for %{name}
BuildArch:           noarch
%description javadoc
This package contains javadoc for %{name}.

%package doc
Summary:             Documentation for %{name}
BuildArch:           noarch
%description doc
Documentation for %{name}.

%prep
%setup -q -n activemq-%{name}-%{version}
%patch0 -p1
find -name "*.class" -print -delete
find -name "*.dll" -print -delete
find -name "*.exe" -print -delete
find -name "*.jar" -print -delete
find -name "*.so" -print -delete
rm -r .mvn .settings
%pom_change_dep -r :geronimo-json_1.0_spec javax.json:javax.json-api:1.0 artemis-core-client artemis-jms-server tests/integration-tests pom.xml
%pom_remove_plugin -r :maven-checkstyle-plugin
%pom_remove_plugin -r :maven-help-plugin
%pom_remove_plugin -r :maven-source-plugin
%pom_remove_plugin :maven-compiler-plugin
for p in artemis-native \
 artemis-protocols/artemis-proton-plug \
 artemis-protocols/artemis-stomp-protocol
do
 %pom_add_plugin org.apache.maven.plugins:maven-compiler-plugin ${p} "
 <configuration>
  <compilerArgument>-proc:none</compilerArgument>
 </configuration>"
done
%pom_remove_plugin -r :findbugs-maven-plugin
%pom_remove_dep -r com.sun.winsw:winsw
%pom_remove_plugin :maven-dependency-plugin artemis-cli
%pom_change_dep -r org.osgi:org.osgi.core org.eclipse.osgi:org.eclipse.osgi
%pom_change_dep -r org.osgi:osgi.cmpn org.eclipse.osgi:org.eclipse.osgi.services
%pom_change_dep -r :geronimo-j2ee-connector_1.5_spec org.jboss.spec.javax.resource:jboss-connector-api_1.7_spec
%pom_change_dep -r :geronimo-jms_2.0_spec org.jboss.spec.javax.jms:jboss-jms-api_2.0_spec
%pom_change_dep -r com.sun.xml.bind:jaxb-jxc org.glassfish.jaxb:jaxb-jxc
%pom_change_dep -r com.sun.xml.bind:jaxb-impl org.glassfish.jaxb:jaxb-runtime
%pom_xpath_remove -r "pom:dependency[pom:artifactId='jetty-all']/pom:classifier"
%pom_change_dep -r :jetty-all org.eclipse.jetty:jetty-server
%pom_add_dep org.eclipse.jetty:jetty-webapp:'${jetty.version}' artemis-web
%pom_change_dep -r org.postgresql:postgresql postgresql:
%pom_change_dep -r log4j: ::1.2.17
%pom_disable_module artemis-distribution
%pom_disable_module artemis-website
%pom_disable_module artemis-features
%pom_disable_module tests
%pom_disable_module integration/activemq-aerogear-integration
%pom_disable_module integration/activemq-vertx-integration
%pom_disable_module artemis-openwire-protocol artemis-protocols
%pom_disable_module artemis-mqtt-protocol artemis-protocols
%pom_xpath_remove "pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions/pom:_exportcontents" artemis-server-osgi
%pom_xpath_remove "pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions/pom:Embed-Dependency" artemis-server-osgi
%pom_xpath_inject "pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration" "
<excludeDependencies>true</excludeDependencies>" artemis-server-osgi
%pom_remove_dep :artemis-commons::test artemis-protocols/artemis-proton-plug

%build
(
 cd artemis-native
 %cmake .
 make %{?_smp_mflags}
)
%mvn_build -fs

%install
%mvn_install
mkdir -p %{buildroot}%{_libdir}/%{name}
install -pm 755 artemis-native/bin/libartemis-native-%{__isa_bits}.so %{buildroot}%{_libdir}/%{name}/libartemis-native.so

%files boot -f .mfiles-artemis-boot
%license LICENSE NOTICE

%files cli -f .mfiles-artemis-cli
%license LICENSE NOTICE

%files commons -f .mfiles-artemis-commons
%license LICENSE NOTICE

%files core-client -f .mfiles-artemis-core-client
%doc README.md

%files dto -f .mfiles-artemis-dto

%files jdbc-store -f .mfiles-artemis-jdbc-store

%files jms-client -f .mfiles-artemis-jms-client

%files jms-server -f .mfiles-artemis-jms-server

%files journal -f .mfiles-artemis-journal

%files maven-plugin -f .mfiles-artemis-maven-plugin

%files native -f .mfiles-artemis-native
%{_libdir}/%{name}
%license LICENSE NOTICE

%files protocols -f .mfiles-artemis-protocols
%license LICENSE NOTICE

%files amqp-protocol -f .mfiles-artemis-amqp-protocol

%files hornetq-protocol -f .mfiles-artemis-hornetq-protocol

%files hqclient-protocol -f .mfiles-artemis-hqclient-protocol

%files proton-plug -f .mfiles-artemis-proton-plug

%files stomp-protocol -f .mfiles-artemis-stomp-protocol

%files ra -f .mfiles-artemis-ra

%files rest -f .mfiles-artemis-rest

%files selector -f .mfiles-artemis-selector
%license LICENSE NOTICE

%files server -f .mfiles-artemis-server

%files server-osgi -f .mfiles-artemis-server-osgi

%files service-extensions -f .mfiles-artemis-service-extensions

%files web -f .mfiles-artemis-web

%files spring-integration -f .mfiles-artemis-spring-integration

%files pom -f .mfiles-artemis-pom
%license LICENSE NOTICE

%files javadoc -f .mfiles-javadoc
%license LICENSE NOTICE

%files doc
%doc docs/*
%license LICENSE NOTICE

%changelog
* Thu Sep 9 2021 caodongxia <caodongxia@huawei.com> - 1.4.0-2
- Add debug package to add strip

* Wed Oct 28 2020 baizhonggui <baizhonggui@huawei.com> - 1.4.0-1
- package init
