Examples of InhabitantTracing


Examples of org.jvnet.hk2.tracing.InhabitantTracing

            w = new FileWriter(out);
            w.append("\n");
            w.append("Module ["+ bundleId + "] " + state + " " + bundleName+"\n");
            String prefix="-";
            StackTraceElement[] stack = Thread.currentThread().getStackTrace();
            InhabitantTracing tracing = TracingThreadLocal.get();
            Iterator<Inhabitant> itr = tracing.inOrder();

            w.append("\n");
            w.append("-----------------------------------\n");
            w.append("Inhabitants / stack combination\n");
            w.append("-----------------------------------\n");

            String currentBundleName = bundleName;
           
            for (int i=0;i<stack.length;i++) {
                StackTraceElement element = stack[i];
                if (element.getClassName().equals(AbstractInhabitantImpl.class.getName()) &&
                        element.getMethodName().equals("get"))  {
                    // now let's find out the first non hk2 class asking for this...
                    int j=i+1;
                    for (;j<stack.length;j++) {
                        StackTraceElement caller = stack[j];
                        if (!caller.getClassName().contains("hk2")) {
                            break;
                        }
                    }
                    if (itr.hasNext()) {
                        Inhabitant reason = itr.next();
                        StackTraceElement caller = stack[j];
                        Module m = null;
                        try {
                            if (reason.isInstantiated()) {
                                m = registry.find(loader.loadClass(reason.typeName()));
                            }
                        } catch (ClassNotFoundException e) {
                            m = null;
                        }
                        if (m!=null && !m.getModuleDefinition().getName().equals(currentBundleName)) {
                            w.append("Looks like module " + currentBundleName + " was " + state + " because "+
                                    m.getName() + " was " + state + "\nSince " + m.getName() + " contains ");
                        } else {
                            w.append("Requested by ");
                        }
                        if (m!=null)
                            currentBundleName = m.getName();

                        w.append(reason + " called from " + caller.getClassName()
                                + "." + caller.getMethodName() + ":" + caller.getLineNumber()+" metadata \n" + reason.metadata()+"\n");
                        w.append("\n");

                    }

                }

            }
            w.append("\n");

            w.append("-----------------------------------\n");
            w.append("Inhabitants initialization stack\n");
            w.append("-----------------------------------\n");
            itr = tracing.inOrder();
            while (itr.hasNext()) {
                Inhabitant i = itr.next();
                w.append(prefix +"> requested from "+ i+"\n");
                prefix=prefix+"-";
            }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.