[easymock] Update to upstream version 3.2

Mikolaj Izdebski mizdebsk at fedoraproject.org
Fri Aug 30 10:14:39 UTC 2013


commit f7a52e1d6943cf439e4efc166b514ad32a9cb63a
Author: Mikolaj Izdebski <mizdebsk at redhat.com>
Date:   Fri Aug 30 12:01:44 2013 +0200

    Update to upstream version 3.2

 .gitignore                            |    1 +
 LICENSE                               |   20 --
 easymock-1.2-build_xml.patch          |   30 ---
 easymock-component-info.xml           |   21 --
 easymock-remove-android-support.patch |  222 +++++++++++++++++++++
 easymock-removed-alltests.patch       |   65 ------
 easymock-removed-test.patch           |  345 ---------------------------------
 easymock.spec                         |  160 ++++++----------
 sources                               |    3 +-
 9 files changed, 286 insertions(+), 581 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 6a9986c..4c06021 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 easymock-1.2-src.tar.gz
 /easymock-1.2_Java1.5.pom
+/easymock-3.2.tar.gz
diff --git a/easymock-remove-android-support.patch b/easymock-remove-android-support.patch
new file mode 100644
index 0000000..53e101a
--- /dev/null
+++ b/easymock-remove-android-support.patch
@@ -0,0 +1,222 @@
+From 210c8bae09fb9309519c8266b71635ef308872b3 Mon Sep 17 00:00:00 2001
+From: Michal Srb <msrb at redhat.com>
+Date: Fri, 9 Aug 2013 12:44:48 +0200
+Subject: [PATCH] Remove android support
+
+---
+ .../internal/AndroidClassProxyFactory.java         | 101 ---------------------
+ .../java/org/easymock/internal/AndroidSupport.java |  37 --------
+ .../java/org/easymock/internal/MocksControl.java   |   6 --
+ .../easymock/tests2/ClassExtensionHelperTest.java  |  12 +--
+ 4 files changed, 3 insertions(+), 153 deletions(-)
+ delete mode 100644 easymock/src/main/java/org/easymock/internal/AndroidClassProxyFactory.java
+ delete mode 100644 easymock/src/main/java/org/easymock/internal/AndroidSupport.java
+
+diff --git a/easymock/src/main/java/org/easymock/internal/AndroidClassProxyFactory.java b/easymock/src/main/java/org/easymock/internal/AndroidClassProxyFactory.java
+deleted file mode 100644
+index da04042..0000000
+--- a/easymock/src/main/java/org/easymock/internal/AndroidClassProxyFactory.java
++++ /dev/null
+@@ -1,101 +0,0 @@
+-/**
+- * Copyright 2001-2013 the original author or authors.
+- *
+- * 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.easymock.internal;
+-
+-import java.io.IOException;
+-import java.lang.reflect.Constructor;
+-import java.lang.reflect.InvocationHandler;
+-import java.lang.reflect.Method;
+-import java.lang.reflect.Modifier;
+-import java.util.Arrays;
+-import java.util.HashSet;
+-import java.util.Set;
+-
+-import org.easymock.ConstructorArgs;
+-
+-import com.google.dexmaker.stock.ProxyBuilder;
+-
+-// ///CLOVER:OFF (sadly not possible to test android with clover)
+-/**
+- * Mocks concrete classes for Android's runtime by generating dex files.
+- */
+-public final class AndroidClassProxyFactory implements IProxyFactory {
+-    public <T> T createProxy(Class<T> toMock, InvocationHandler handler,
+-            Method[] mockedMethods, ConstructorArgs constructorArgs) {
+-        final MockHandler interceptor = new MockHandler(handler, mockedMethods);
+-        try {
+-            ProxyBuilder<T> builder = ProxyBuilder.forClass(toMock)
+-                    .handler(interceptor);
+-            if (constructorArgs != null) {
+-                builder.constructorArgTypes(constructorArgs.getConstructor().getParameterTypes())
+-                        .constructorArgValues(constructorArgs.getInitArgs());
+-            } else {
+-                try {
+-                    DefaultClassInstantiator instantiator = new DefaultClassInstantiator();
+-                    Constructor<?> constructor = instantiator.getConstructorToUse(toMock);
+-                    Object[] params = instantiator.getArgsForTypes(constructor.getParameterTypes());
+-                    builder.constructorArgTypes(constructor.getParameterTypes())
+-                            .constructorArgValues(params);
+-                } catch (InstantiationException e) {
+-                    throw new RuntimeException("Fail to instantiate mock for " + toMock);
+-                }
+-            }
+-            return builder.build();
+-        } catch (IOException e) {
+-            throw new RuntimeException("Failed to mock " + toMock, e);
+-        }
+-    }
+-
+-    public InvocationHandler getInvocationHandler(Object mock) {
+-        MockHandler mockHandler = (MockHandler) ProxyBuilder.getInvocationHandler(mock);
+-        return mockHandler.delegate;
+-    }
+-
+-    private static class MockHandler implements InvocationHandler {
+-        private final InvocationHandler delegate;
+-        private final Set<Method> mockedMethods;
+-
+-        public MockHandler(InvocationHandler delegate, Method... mockedMethods) {
+-            this.delegate = delegate;
+-            this.mockedMethods = (mockedMethods != null)
+-                    ? new HashSet<Method>(Arrays.asList(mockedMethods))
+-                    : null;
+-        }
+-
+-        public Object invoke(Object obj, Method method, Object[] args) throws Throwable {
+-            if (method.isBridge()) {
+-                method = BridgeMethodResolver.findBridgedMethod(method);
+-            }
+-
+-            // Never intercept EasyMock's own calls to fillInStackTrace
+-            boolean internalFillInStackTraceCall = obj instanceof Throwable
+-                    && method.getName().equals("fillInStackTrace")
+-                    && ClassProxyFactory.isCallerMockInvocationHandlerInvoke(new Throwable());
+-
+-            if (internalFillInStackTraceCall
+-                    || isMocked(method) && !Modifier.isAbstract(method.getModifiers())) {
+-                return ProxyBuilder.callSuper(obj, method, args);
+-            }
+-
+-            return delegate.invoke(obj, method, args);
+-        }
+-
+-        private boolean isMocked(Method method) {
+-            return mockedMethods != null && !mockedMethods.contains(method);
+-        }
+-    }
+-}
+-// ///CLOVER:ON
+\ No newline at end of file
+diff --git a/easymock/src/main/java/org/easymock/internal/AndroidSupport.java b/easymock/src/main/java/org/easymock/internal/AndroidSupport.java
+deleted file mode 100644
+index 43c683e..0000000
+--- a/easymock/src/main/java/org/easymock/internal/AndroidSupport.java
++++ /dev/null
+@@ -1,37 +0,0 @@
+-/**
+- * Copyright 2001-2013 the original author or authors.
+- *
+- * 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.easymock.internal;
+-
+-/**
+- * Android-specific support.
+- */
+-public final class AndroidSupport {
+-    // ///CLOVER:OFF
+-    private static boolean isAndroid;
+-    static {
+-        try {
+-            Class.forName("dalvik.system.PathClassLoader");
+-            isAndroid = true;
+-        } catch (final ClassNotFoundException e) {
+-            isAndroid = false;
+-        }
+-    }
+-
+-    public static boolean isAndroid() {
+-        return isAndroid;
+-    }
+-    // ///CLOVER:ON    
+-}
+diff --git a/easymock/src/main/java/org/easymock/internal/MocksControl.java b/easymock/src/main/java/org/easymock/internal/MocksControl.java
+index e709dc4..cd9d5a9 100644
+--- a/easymock/src/main/java/org/easymock/internal/MocksControl.java
++++ b/easymock/src/main/java/org/easymock/internal/MocksControl.java
+@@ -137,12 +137,6 @@ public class MocksControl implements IMocksControl, IExpectationSetters<Object>,
+             return cached;
+         }
+ 
+-        // ///CLOVER:OFF
+-        if (AndroidSupport.isAndroid()) {
+-            return classProxyFactory = new AndroidClassProxyFactory();
+-        }
+-        // ///CLOVER:ON
+-
+         try {
+             return classProxyFactory = new ClassProxyFactory();
+         } catch (final NoClassDefFoundError e) {
+diff --git a/easymock/src/test/java/org/easymock/tests2/ClassExtensionHelperTest.java b/easymock/src/test/java/org/easymock/tests2/ClassExtensionHelperTest.java
+index b40466c..b0a7c69 100644
+--- a/easymock/src/test/java/org/easymock/tests2/ClassExtensionHelperTest.java
++++ b/easymock/src/test/java/org/easymock/tests2/ClassExtensionHelperTest.java
+@@ -15,7 +15,6 @@
+  */
+ package org.easymock.tests2;
+ 
+-import com.google.dexmaker.stock.ProxyBuilder;
+ import java.lang.reflect.InvocationHandler;
+ import java.lang.reflect.Method;
+ import java.lang.reflect.Proxy;
+@@ -25,7 +24,6 @@ import net.sf.cglib.proxy.Enhancer;
+ import net.sf.cglib.proxy.NoOp;
+ import org.easymock.EasyMock;
+ import static org.easymock.EasyMock.createMock;
+-import org.easymock.internal.AndroidSupport;
+ import static org.easymock.internal.MocksControl.getControl;
+ import static org.easymock.internal.MocksControl.getMockedType;
+ import org.easymock.internal.MocksControl;
+@@ -61,13 +59,9 @@ public class ClassExtensionHelperTest {
+     @Test
+     public void testGetControl_EnhancedButNotAMock() throws Exception {
+         final Object o;
+-        if (AndroidSupport.isAndroid()) {
+-            o = ProxyBuilder.forClass(ArrayList.class)
+-                    .handler(NOOP_INVOCATION_HANDLER)
+-                    .build();
+-        } else {
+-            o = Enhancer.create(ArrayList.class, NoOp.INSTANCE);
+-        }
++
++        o = Enhancer.create(ArrayList.class, NoOp.INSTANCE);
++
+         try {
+             getControl(o);
+             fail();
+-- 
+1.8.1.4
+
diff --git a/easymock.spec b/easymock.spec
index 3c0cec6..e117319 100644
--- a/easymock.spec
+++ b/easymock.spec
@@ -1,126 +1,90 @@
-# Copyright (c) 2000-2009, JPackage Project
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the
-#    distribution.
-# 3. Neither the name of the JPackage Project nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS 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 COPYRIGHT
-# OWNER OR 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.
-#
-
 Name:           easymock
-Version:        1.2
-Release:        21%{?dist}
-Epoch:          0
+Version:        3.2
+Release:        1%{?dist}
 Summary:        Easy mock objects
-Group:          Development/Libraries
-License:        MIT
-URL:            http://www.easymock.org/
-# cvs -d:pserver:anonymous at easymock.cvs.sourceforge.net:/cvsroot/easymock login
-# cvs -z3 -d:pserver:anonymous at easymock.cvs.sourceforge.net:/cvsroot/easymock export -r EasyMock1_2_Java1_3 easymock
-# tar czf easymock-1.2-src.tar.gz easymock
-Source0:        easymock-1.2-src.tar.gz
-Source1:        http://repo1.maven.org/maven2/easymock/easymock/1.2_Java1.5/easymock-1.2_Java1.5.pom
-Source2:        easymock-component-info.xml
-# Starting with version 2.5.1, EasyMock changed its license to Apache 2.
-# Older versions are still available under MIT License
-# See http://www.easymock.org/License.html
-Source3:        LICENSE
-Patch0:         easymock-1.2-build_xml.patch
-Patch1:         %{name}-removed-test.patch
-Patch2:         %{name}-removed-alltests.patch
-BuildRequires:  jpackage-utils >= 0:1.6
-BuildRequires:  ant >= 0:1.6
-BuildRequires:  ant-junit >= 0:1.6
-BuildRequires:  junit >= 0:3.8.1
-BuildRequires:  java-devel >= 0:1.5.0
+License:        ASL 2.0
+URL:            http://www.easymock.org
+
+Source0:        https://github.com/easymock/easymock/archive/easymock-%{version}.tar.gz
+
+Patch5:         %{name}-remove-android-support.patch
+
 BuildArch:      noarch
 
+BuildRequires:  maven-local
+BuildRequires:  mvn(com.keyboardsamurais.maven:maven-timestamp-plugin)
+BuildRequires:  mvn(com.mycila.maven-license-plugin:maven-license-plugin)
+BuildRequires:  mvn(junit:junit)
+BuildRequires:  mvn(net.sf.cglib:cglib)
+BuildRequires:  mvn(org.apache.maven.plugins:maven-compiler-plugin)
+BuildRequires:  mvn(org.apache.maven.plugins:maven-jar-plugin)
+BuildRequires:  mvn(org.apache.maven.plugins:maven-remote-resources-plugin)
+BuildRequires:  mvn(org.apache.maven.plugins:maven-surefire-plugin)
+BuildRequires:  mvn(org.objenesis:objenesis)
+BuildRequires:  mvn(org.codehaus.mojo:build-helper-maven-plugin)
+
+Obsoletes:      %{name}3 < %{version}-%{release}
+Provides:       %{name}3 = %{version}-%{release}
+
+
 %description
 EasyMock provides Mock Objects for interfaces in JUnit tests by generating
 them on the fly using Java's proxy mechanism. Due to EasyMock's unique style
 of recording expectations, most refactorings will not affect the Mock Objects.
 So EasyMock is a perfect fit for Test-Driven Development.
 
-%package        javadoc
+
+%package javadoc
 Summary:        Javadoc for %{name}
-Group:          Documentation
 
-%description    javadoc
+%description javadoc
 Javadoc for %{name}.
 
+
 %prep
-%setup -q -n %{name}
-%patch0 -p0
-%patch1 -p1
-%patch2 -p1
-cp %{SOURCE3} .
-mkdir lib
-pushd lib
-ln -sf $(build-classpath junit) .
-popd
-
-# We no longer ship a 1.3/1.4 VM, Set it to generic javahome
-rm easymockbuild.properties
-echo "java\ 1.3=%{java}" >> easymockbuild.properties
-echo "java\ 1.4=%{java}" >> easymockbuild.properties
-echo "java\ 1.5=%{java}" >> easymockbuild.properties
-echo "java\ compiler=%{javac}" >> easymockbuild.properties
+# Unpack the sources:
+%setup -q -n easymock-easymock-%{version}
 
-%build
-export OPT_JAR_LIST="ant/ant-junit junit"
-export CLASSPATH=
-%{ant} -Dbuild.sysclasspath=first
+find . -name "*.zip" -delete
 
-%install
-unzip -qq %{name}%{version}_Java1.3.zip
-install -dm 755 $RPM_BUILD_ROOT%{_javadir}
+# remove android support
+%patch5 -p1
+%pom_xpath_remove "pom:profile[pom:id[text()='android']]"
+%pom_remove_dep :dexmaker easymock
+
+# fix cglib aId and gId
+%pom_remove_dep :cglib-nodep easymock
+%pom_add_dep net.sf.cglib:cglib easymock
 
-install -pm 644 %{name}%{version}_Java1.3/%{name}.jar \
-  $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
+# remove some warning caused by unavailable plugin
+%pom_remove_plugin com.atlassian.maven.plugins:maven-clover2-plugin
+%pom_remove_plugin org.codehaus.mojo:versions-maven-plugin
+%pom_xpath_remove pom:profiles easymock-classextension
 
-# javadoc
-install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}
-cp -pr %{name}%{version}_Java1.3/javadoc/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+%pom_disable_module easymock-integration
 
-# pom
-install -dm 755 $RPM_BUILD_ROOT%{_mavenpomdir}
-cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom
-%add_maven_depmap
+# For compatibility reasons
+%mvn_file ":easymock{*}" easymock at 1 easymock3 at 1
 
 
-%files
-%doc LICENSE
-%doc %{name}%{version}_Java1.3/{Documentation,License}.html
-%{_mavenpomdir}/*
-%{_mavendepmapfragdir}/*
-%{_javadir}/%{name}.jar
+%build
+%mvn_build
+
+%install
+%mvn_install
+
+
+%files -f .mfiles
+%doc easymock/LICENSE.txt
+
+%files javadoc -f .mfiles-javadoc
+%doc easymock/LICENSE.txt
 
-%files javadoc
-%doc LICENSE
-%{_javadocdir}/%{name}
 
 %changelog
+* Fri Aug 30 2013 Mikolaj Izdebski <mizdebsk at redhat.com> - 0:3.2-1
+- Update to upstream version 3.2
+
 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0:1.2-21
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
 
diff --git a/sources b/sources
index 6dd1104..db0d7d3 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-aa48c5ffe4a03d38a72ee0c920a5f3c3  easymock-1.2_Java1.5.pom
-f6a02c912ad98d485141d240faf68440  easymock-1.2-src.tar.gz
+2907bf4fbc5ed3cf0ef751e31c67a38e  easymock-3.2.tar.gz


More information about the scm-commits mailing list