File jetty8.spec of Package jetty8

#
# spec file for package jetty8
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^osgi\\(
%global addver v20150415
Name:           jetty8
Version:        8.1.17
Release:        0
Summary:        Java Webserver and Servlet Container
# Jetty is dual licensed under both ASL 2.0 and EPL 1.0, see NOTICE.txt
# some MIT-licensed code (from Utf8Appendable) is used too
License:        (Apache-2.0 OR EPL-1.0) AND MIT
Group:          Development/Libraries/Java
URL:            http://www.eclipse.org/jetty
Source0:        http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/snapshot/org.eclipse.jetty.project-jetty-%{version}.%{addver}.tar.xz
Patch0:         %{name}-java17.patch
BuildRequires:  fdupes
BuildRequires:  maven-local
BuildRequires:  mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires:  mvn(org.apache.maven.plugins:maven-assembly-plugin)
BuildRequires:  mvn(org.apache.maven.plugins:maven-dependency-plugin)
BuildRequires:  mvn(org.apache.maven.plugins:maven-remote-resources-plugin)
BuildRequires:  mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires:  mvn(org.eclipse.jetty.toolchain:jetty-artifact-remote-resources)
BuildRequires:  mvn(org.eclipse.jetty.toolchain:jetty-assembly-descriptors)
BuildRequires:  mvn(org.eclipse.jetty.toolchain:jetty-build-support)
BuildRequires:  mvn(org.eclipse.jetty.toolchain:jetty-test-policy)
BuildRequires:  mvn(org.eclipse.jetty.toolchain:jetty-version-maven-plugin)
BuildRequires:  mvn(org.eclipse.jetty:jetty-parent:pom:)
BuildRequires:  mvn(org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec)
BuildRequires:  mvn(org.slf4j:slf4j-api)
BuildRequires:  mvn(org.slf4j:slf4j-jdk14)
BuildRequires:  xz
Requires:       %{name}-client = %{version}-%{release}
Requires:       %{name}-continuation = %{version}-%{release}
Requires:       %{name}-http = %{version}-%{release}
Requires:       %{name}-io = %{version}-%{release}
Requires:       %{name}-jmx = %{version}-%{release}
Requires:       %{name}-rewrite = %{version}-%{release}
Requires:       %{name}-security = %{version}-%{release}
Requires:       %{name}-server = %{version}-%{release}
Requires:       %{name}-servlet = %{version}-%{release}
Requires:       %{name}-util = %{version}-%{release}
Requires:       %{name}-webapp = %{version}-%{release}
Requires:       %{name}-websocket = %{version}-%{release}
Requires:       %{name}-xml = %{version}-%{release}
BuildArch:      noarch

%description
Jetty is a 100% Java HTTP Server and Servlet Container. This means that you
do not need to configure and run a separate web server (like Apache) in order
to use Java, servlets and JSPs to generate dynamic content. Jetty is a fully
featured web server for static and dynamic content. Unlike separate
server/container solutions, this means that your web server and web
application run in the same process, without interconnection overheads
and complications. Furthermore, as a pure java component, Jetty can be simply
included in your application for demonstration, distribution or deployment.
Jetty is available on all Java supported platforms.

%package        rewrite
Summary:        Jetty rewrite handler

%description    rewrite
This package contains %{summary}.

%package        client
Summary:        Jetty asynchronous HTTP client

%description    client
This package contains %{summary}.

%package        xml
Summary:        Jetty XML utilities

%description    xml
This package contains %{summary}.

%package        websocket
Summary:        Jetty websocket

%description    websocket
This package contains %{summary}.

%package        webapp
Summary:        Jetty web application support

%description    webapp
This package contains %{summary}.

%package        util
Summary:        Jetty utility classes

%description    util
This package contains %{summary}.

%package        servlet
Summary:        Jetty servlet container

%description    servlet
This package contains %{summary}.

%package        server
Summary:        Jetty server artifact

%description    server
This package contains %{summary}.

%package        security
Summary:        Jetty security infrastructure

%description    security
This package contains %{summary}.

%package        jmx
Summary:        Jetty JMX management artifact

%description    jmx
This package contains %{summary}.

%package        io
Summary:        Jetty IO utility

%description    io
This package contains %{summary}.

%package        http
Summary:        Jetty HTTP utility

%description    http
This package contains %{summary}.

%package        continuation
Summary:        Jetty asynchronous API

%description    continuation
This package contains %{summary}.

%package        deploy
Summary:        Jetty deployers

%description    deploy
This package contains %{summary}.

%package        servlets
Summary:        Jetty utility servlets and filters

%description    servlets
This package contains %{summary}.

%package        javadoc
Summary:        API documentation for %{name}
Group:          Documentation/HTML

%description    javadoc
This package provides %{summary}.

%prep
%setup -q -n org.eclipse.jetty.project-jetty-%{version}.%{addver}
%patch -P 0 -p1
find -name "*.jar" -delete
find -name "*.war" -delete
find -name "*.class" -delete

%{mvn_compat_version} : 8.1 %{version}.%{addver} 8.1.14.v20131031

# aggregating POM belongs to main package
%{mvn_package} :jetty-project::pom

%pom_change_dep -r org.eclipse.jetty.orbit:javax.servlet org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec

# Disable unneeded modules. This is a compat package and only a
# minimal set of modules are being built.
%pom_xpath_remove "pom:modules"
%pom_xpath_inject "pom:project" "<modules/>"
for mod in continuation deploy http io jmx security server servlet servlets util webapp websocket xml client rewrite; do
  %pom_xpath_inject pom:modules "<module>jetty-$mod</module>"
  %pom_xpath_inject 'pom:plugin[pom:artifactId="maven-bundle-plugin"]/pom:executions/pom:execution' '
     <phase>process-classes</phase>' jetty-$mod
done

# PMD plugin is not useful in Fedora.
%pom_remove_plugin -r :maven-pmd-plugin

%pom_remove_plugin -r :maven-license-plugin
%pom_remove_plugin -r :maven-enforcer-plugin
%pom_remove_plugin -r :maven-release-plugin
%pom_remove_plugin -r :maven-source-plugin
%pom_remove_plugin -r :maven-site-plugin

# Remove google analytics from javadoc
%pom_xpath_remove 'pom:plugin[pom:artifactId="maven-javadoc-plugin"]/pom:configuration/pom:header'

# this needs jetty6 things, so just remove it
# shouldn't cause any trouble since it handled only in loadClass elsewhere
%pom_remove_dep org.mortbay.jetty:jetty-util jetty-continuation
rm jetty-continuation/src/main/java/org/eclipse/jetty/continuation/Jetty6Continuation.java

# Disable default-jar executions of maven-jar-plugin in certain Jetty
# modules, which define their own executions of the plugin.  This
# avoids problems with version 3.0.0 of the plugin.
%pom_xpath_inject "pom:plugin[pom:artifactId='maven-jar-plugin']/pom:executions" "
      <execution>
        <id>default-jar</id>
        <phase>skip</phase>
      </execution>" \
    jetty-continuation \
    jetty-http \
    jetty-io \
    jetty-server \
    jetty-websocket \

# CCLAs and CLAs, we don't want to install these
rm -Rf LICENSE-CONTRIBUTOR/

%pom_xpath_set "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-compiler-plugin']/pom:configuration/pom:source" 1.8
%pom_xpath_set "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-compiler-plugin']/pom:configuration/pom:target" 1.8

%build
# Tests disabled because of missing dependencies
%{mvn_build} -f -j -s -- -Dsource=8 

%install
%mvn_install
%fdupes -s %{buildroot}%{_javadocdir}

%files -f .mfiles-jetty-project
%license NOTICE.txt README.txt VERSION.txt LICENSE*

%files rewrite -f .mfiles-jetty-rewrite

%files client -f .mfiles-jetty-client

%files deploy -f .mfiles-jetty-deploy

%files xml -f .mfiles-jetty-xml

%files websocket -f .mfiles-jetty-websocket

%files webapp -f .mfiles-jetty-webapp

%files util -f .mfiles-jetty-util
%license NOTICE.txt LICENSE*

%files servlet -f .mfiles-jetty-servlet

%files servlets -f .mfiles-jetty-servlets

%files server -f .mfiles-jetty-server

%files security -f .mfiles-jetty-security

%files jmx -f .mfiles-jetty-jmx

%files io -f .mfiles-jetty-io

%files http -f .mfiles-jetty-http

%files continuation -f .mfiles-jetty-continuation

#files javadoc -f .mfiles-javadoc
#license NOTICE.txt LICENSE*

%changelog
openSUSE Build Service is sponsored by