[easymock] 07/12: Refresh no-android.patch

Markus Koschany apo at moszumanska.debian.org
Fri Sep 15 06:11:33 UTC 2017


This is an automated email from the git hooks/post-receive script.

apo pushed a commit to branch master
in repository easymock.

commit 24100df6185e192ebd574a7732c7c8f9ad7b02e1
Author: Markus Koschany <apo at debian.org>
Date:   Fri Sep 15 07:22:12 2017 +0200

    Refresh no-android.patch
---
 debian/changelog                |   1 +
 debian/patches/no-android.patch | 134 ++++++++++++++++++++++++++++++++++++++++
 debian/patches/series           |   1 +
 3 files changed, 136 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 6c8e878..909b555 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,7 @@ easymock (3.5+ds-1) unstable; urgency=medium
   * Declare compliance with Debian Policy 4.1.0.
   * libeasymock-java.poms: Remove --has-package-version flag.
   * Drop maven-jar-plugin-compatibility.patch.
+  * Refresh no-android.patch.
 
  -- Markus Koschany <apo at debian.org>  Fri, 15 Sep 2017 07:15:45 +0200
 
diff --git a/debian/patches/no-android.patch b/debian/patches/no-android.patch
new file mode 100644
index 0000000..1b1250c
--- /dev/null
+++ b/debian/patches/no-android.patch
@@ -0,0 +1,134 @@
+From: Markus Koschany <apo at debian.org>
+Date: Fri, 15 Sep 2017 07:21:43 +0200
+Subject: no android
+
+The dexmaker library has not been packaged yet.
+
+Forwarded: not-needed
+---
+ .../internal/AndroidClassProxyFactory.java         | 101 ---------------------
+ .../java/org/easymock/internal/MocksControl.java   |   3 -
+ 2 files changed, 104 deletions(-)
+ delete mode 100644 core/src/main/java/org/easymock/internal/AndroidClassProxyFactory.java
+
+diff --git a/core/src/main/java/org/easymock/internal/AndroidClassProxyFactory.java b/core/src/main/java/org/easymock/internal/AndroidClassProxyFactory.java
+deleted file mode 100644
+index 00adee9..0000000
+--- a/core/src/main/java/org/easymock/internal/AndroidClassProxyFactory.java
++++ /dev/null
+@@ -1,101 +0,0 @@
+-/**
+- * Copyright 2001-2017 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 org.droidparts.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) {
+-        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
+diff --git a/core/src/main/java/org/easymock/internal/MocksControl.java b/core/src/main/java/org/easymock/internal/MocksControl.java
+index fb2a5dc..aae9f97 100644
+--- a/core/src/main/java/org/easymock/internal/MocksControl.java
++++ b/core/src/main/java/org/easymock/internal/MocksControl.java
+@@ -148,9 +148,6 @@ public class MocksControl implements IMocksControl, IExpectationSetters<Object>,
+         }
+ 
+         // ///CLOVER:OFF
+-        if (AndroidSupport.isAndroid()) {
+-            return classProxyFactory = new AndroidClassProxyFactory();
+-        }
+         // ///CLOVER:ON
+ 
+         return classProxyFactory = new ClassProxyFactory();
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..d1d13c1
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+no-android.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/easymock.git



More information about the pkg-java-commits mailing list