public static void premain()

in src/main/java/org/apache/sling/cta/impl/Agent.java [32:71]


    public static void premain(String args, Instrumentation inst) {
        
        String[] parsedArgs = args != null ? args.split(",") : new String[0];
        long connectTimeout =  TimeUnit.MINUTES.toMillis(1);
        long readTimeout = TimeUnit.MINUTES.toMillis(1);
        String logSpec = "";
        if ( parsedArgs.length > 0 )
            connectTimeout = Long.parseLong(parsedArgs[0]);
        if ( parsedArgs.length > 1 )
            readTimeout = Long.parseLong(parsedArgs[1]);
        if ( parsedArgs.length > 2)
            logSpec = parsedArgs[2];
        
        Log.configure(logSpec);
        
        Log.get().log("Preparing to install URL transformers. Configured timeouts - connectTimeout : %d, readTimeout: %d", connectTimeout, readTimeout);

        AgentInfo agentInfoMBean = new AgentInfo(connectTimeout, readTimeout);
        
        ClassFileTransformer[] transformers = new ClassFileTransformer[] {
            new JavaNetTimeoutTransformer(connectTimeout, readTimeout, agentInfoMBean),
            new HttpClient3TimeoutTransformer(connectTimeout, readTimeout, agentInfoMBean),
            new HttpClient4TimeoutTransformer(connectTimeout, readTimeout, agentInfoMBean),
            new OkHttpTimeoutTransformer(connectTimeout, readTimeout, agentInfoMBean)
        };

        try {
            ManagementFactory.getPlatformMBeanServer().registerMBean(agentInfoMBean, AgentInfo.NAME);
        } catch (InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException e) {
            Log.get().log("Failed registering MBean: %s", e.getMessage());
        }
        
        List<String> transformerNames = new ArrayList<>();
        for ( ClassFileTransformer transformer : transformers ) {
            inst.addTransformer(transformer, true);
            transformerNames.add(transformer.getClass().getName());
        }
        
        Log.get().log("All transformers installed");
    }