Example usage for org.apache.commons.lang3.reflect FieldUtils getDeclaredField

List of usage examples for org.apache.commons.lang3.reflect FieldUtils getDeclaredField

Introduction

In this page you can find the example usage for org.apache.commons.lang3.reflect FieldUtils getDeclaredField.

Prototype

public static Field getDeclaredField(final Class<?> cls, final String fieldName, final boolean forceAccess) 

Source Link

Document

Gets an accessible Field by name, breaking scope if requested.

Usage

From source file:com.garethahealy.jolokiajvmhawkular.core.EmbeddedHawkularMetricsAgent.java

public static void premain(String agentArgs) {
    CustomJvmAgent.premain(agentArgs);/* w w w. j av  a 2  s.  co m*/

    try {
        LOG.info("About to load BackendManager...");

        Field jolokiaHttpHandlerField = FieldUtils.getDeclaredField(server.getClass(), "jolokiaHttpHandler",
                true);
        JolokiaHttpHandler jolokiaHttpHandler = (JolokiaHttpHandler) jolokiaHttpHandlerField.get(server);

        Field backendManagerField = FieldUtils.getDeclaredField(jolokiaHttpHandler.getClass(), "backendManager",
                true);
        BackendManager backendManager = (BackendManager) backendManagerField.get(jolokiaHttpHandler);

        HawkularClient client = getHawkularClient();
        if (client == null) {
            LOG.error(
                    "HawkularClient is null. Not starting HawkularMetricsService via ScheduledExecutorService.");
        } else {
            BasicThreadFactory factory = new BasicThreadFactory.Builder().namingPattern("hawkular-metrics-%d")
                    .daemon(true).priority(Thread.MAX_PRIORITY).build();

            ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor(factory);
            exec.scheduleAtFixedRate(
                    new HawkularMetricsRunnable(new HawkularMetricsService(backendManager, client)), 15, 15,
                    TimeUnit.SECONDS);

            LOG.info("Started HawkularMetricsService via ScheduledExecutorService.");
        }
    } catch (IllegalAccessException e) {
        LOG.error("{}", e);
    }
}

From source file:me.bird.util.Reflections.java

/**
 * ?, private/protected, ??getter.//from  w ww . j a va 2 s .c  o m
 */
public static Object getFieldValue(final Object obj, final String fieldName) {
    Field field = FieldUtils.getDeclaredField(obj.getClass(), fieldName, true);

    if (field == null) {
        throw new IllegalArgumentException("Could not find field [" + fieldName + "] on target [" + obj + "]");
    }

    Object result = null;
    try {
        result = field.get(obj);
    } catch (IllegalAccessException e) {
        logger.error("??", e);
    }
    return result;
}

From source file:com.nortal.petit.beanmapper.BeanMappingReflectionUtils.java

private static void readAnnotations(List<Annotation> l, Class<?> type, String name) {
    Column ao = getAttributeOverride(type, name);
    if (ao != null) {
        l.add(ao);//from www.ja  v  a  2s .c om
    }
    Field field = FieldUtils.getDeclaredField(type, name, true);
    if (field != null) {
        addAll(l, field.getAnnotations());
    }
    PropertyDescriptor pd = BeanUtils.getPropertyDescriptor(type, name);
    if (pd != null) {
        if (pd.getReadMethod() != null) {
            addAll(l, pd.getReadMethod().getAnnotations());
        }
    }
    if (type.getSuperclass() != null) {
        readAnnotations(l, type.getSuperclass(), name);
    }
}

From source file:com.android.build.gradle.internal.pipeline.InjectTransformManager.java

/**
 * transformTask?/* ww  w .ja  va 2 s.  c  o m*/
 *
 * @param transformTask
 * @param consumedInputStreams
 * @param referencedInputStreams
 * @param outputStream
 */
private void updateTransformTaskConfig(TransformTask transformTask,
        @NonNull Collection<TransformStream> consumedInputStreams,
        @NonNull Collection<TransformStream> referencedInputStreams, @Nullable IntermediateStream outputStream)
        throws IllegalAccessException {
    Field consumedInputStreamsField = FieldUtils.getDeclaredField(StreamBasedTask.class, "consumedInputStreams",
            true);
    Field referencedInputStreamsField = FieldUtils.getDeclaredField(StreamBasedTask.class,
            "referencedInputStreams", true);
    Field outputStreamField = FieldUtils.getDeclaredField(StreamBasedTask.class, "outputStream", true);

    if (null == consumedInputStreamsField || null == referencedInputStreamsField || null == outputStreamField) {
        throw new StopExecutionException(
                "The TransformTask does not has field with name: consumedInputStreams or referencedInputStreams or outputStream! Plugin version does not support!");
    }
    consumedInputStreamsField.set(transformTask, consumedInputStreams);
    referencedInputStreamsField.set(transformTask, referencedInputStreams);
    outputStreamField.set(transformTask, outputStream);
}

From source file:com.android.build.gradle.internal.pipeline.InjectTransformManager.java

/**
 * ?transformTask?//from   w  w w . j  av a  2 s  . c  o m
 *
 * @param transformTask
 * @return
 * @throws IllegalAccessException
 */
private TransformTaskParam getTransformParam(TransformTask transformTask) throws IllegalAccessException {
    TransformTaskParam transformTaskParam = new TransformTaskParam();
    Field consumedInputStreamsField = FieldUtils.getDeclaredField(StreamBasedTask.class, "consumedInputStreams",
            true);
    Field referencedInputStreamsField = FieldUtils.getDeclaredField(StreamBasedTask.class,
            "referencedInputStreams", true);
    Field outputStreamField = FieldUtils.getDeclaredField(StreamBasedTask.class, "outputStream", true);

    if (null == consumedInputStreamsField || null == referencedInputStreamsField || null == outputStreamField) {
        throw new StopExecutionException(
                "The TransformTask does not has field with name: consumedInputStreams or referencedInputStreams or outputStream! Plugin version does not support!");
    }
    transformTaskParam.consumedInputStreams = (Collection<TransformStream>) consumedInputStreamsField
            .get(transformTask);
    transformTaskParam.referencedInputStreams = (Collection<TransformStream>) referencedInputStreamsField
            .get(transformTask);
    transformTaskParam.outputStream = (IntermediateStream) outputStreamField.get(transformTask);
    return transformTaskParam;
}

From source file:org.bitbucket.mlopatkin.android.liblogcat.ddmlib.AdbConnectionManager.java

private static boolean isReady(AndroidDebugBridge adb) throws DdmlibUnsupportedException {
    if (adb == null) {
        return false;
    }/*from w ww . j a  va  2s. c  om*/
    // hack below - there is no explicit way to check if the bridge was
    // created succesfully
    try {
        return (Boolean) FieldUtils
                .readField(FieldUtils.getDeclaredField(AndroidDebugBridge.class, "mStarted", true), adb, true);
    } catch (IllegalAccessException e) {
        logger.fatal("The DDMLIB is unsupported", e);
        throw new DdmlibUnsupportedException("The DDMLIB supplied is unsupported: " + System.getenv("DDMLIB"));
    }

}

From source file:org.gerzog.spock.injectmock.internal.accessors.FieldAccessor.java

@Override
public boolean exists(final Class<?> clazz, final String name, final Class<?> type) {
    final Field field = FieldUtils.getDeclaredField(clazz, name, true);

    boolean result = field != null;

    if ((field != null) && !field.getType().isAssignableFrom(type)) {
        result = false;//  w  w w. j  a va2  s .  c  o  m
    }

    return result;
}

From source file:org.xwiki.job.internal.xstream.SafeTreeUnmarshaller.java

@Override
protected Object convert(Object parent, Class type, Converter converter) {
    try {/*from   ww w. j av  a2  s .  c  om*/
        return super.convert(parent, type, converter);
    } catch (Throwable e) {
        FastStack types;
        try {
            types = (FastStack) FieldUtils.getDeclaredField(TreeUnmarshaller.class, "types", true).get(this);
            types.popSilently();
        } catch (Exception e1) {
            // Should never happen
            LOGGER.debug("Failed to access private field com.thoughtworks.xstream.core.TreeUnmarshaller#types",
                    type, e1);
        }

        LOGGER.debug("Got unknown exception when converting object of type [{}]", type, e);
    }

    return null;
}