package org.jboss.weld.injection;

import javax.enterprise.inject.spi.Annotated;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.InjectionPoint;
import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.reflect.Member;
import java.lang.reflect.Type;
import java.util.Collections;
import java.util.Set;

public class EmptyInjectionPoint implements InjectionPoint, Serializable {

    private static final long serialVersionUID = -2041468540191211977L;

    public static final InjectionPoint INSTANCE = new EmptyInjectionPoint();

    protected EmptyInjectionPoint() {
    }

    public Type getType() {
        return Object.class;
    }

    public Set<Annotation> getQualifiers() {
        return Collections.emptySet();
    }

    public Bean<?> getBean() {
        return null;
    }

    public Member getMember() {
        return null;
    }

    public Annotated getAnnotated() {
        return null;
    }

    public boolean isDelegate() {
        return false;
    }

    public boolean isTransient() {
        return false;
    }

}

@@ -43,133 +43,33 @@
 java
-x.enterprise.inject.spi.Annotated;%0Aimport javax.enterprise.inject.spi.Bean;%0Aimport javax.enterprise.inject.spi.InjectionPoint
+.io.ObjectStreamException
 ;%0Aim
@@ -252,16 +252,155 @@
 l.Set;%0A%0A
+import javax.enterprise.inject.spi.Annotated;%0Aimport javax.enterprise.inject.spi.Bean;%0Aimport javax.enterprise.inject.spi.InjectionPoint;%0A%0A
 public c
@@ -1130,10 +1130,105 @@
 %0A    %7D%0A%0A
+    private Object readResolve() throws ObjectStreamException %7B%0A        return INSTANCE;%0A    %7D%0A
 %7D%0A

Make EmptyInjectionPoint truly singleton