[ 
https://issues.apache.org/jira/browse/TWILL-179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15954090#comment-15954090
 ] 

ASF GitHub Bot commented on TWILL-179:
--------------------------------------

Github user chtyim commented on a diff in the pull request:

    https://github.com/apache/twill/pull/51#discussion_r109512583
  
    --- Diff: 
twill-yarn/src/test/java/org/apache/twill/yarn/CustomClassLoader.java ---
    @@ -0,0 +1,87 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you 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.apache.twill.yarn;
    +
    +import org.apache.twill.api.ServiceAnnouncer;
    +import org.apache.twill.common.Cancellable;
    +import org.objectweb.asm.ClassWriter;
    +import org.objectweb.asm.Opcodes;
    +import org.objectweb.asm.Type;
    +import org.objectweb.asm.commons.GeneratorAdapter;
    +import org.objectweb.asm.commons.Method;
    +
    +import java.net.URL;
    +import java.net.URLClassLoader;
    +
    +/**
    + * ClassLoader that generates a new class for the {@link 
CustomClassLoaderTestRun}.
    + */
    +public final class CustomClassLoader extends URLClassLoader {
    +
    +  public CustomClassLoader(URL[] urls, ClassLoader parent) {
    +    super(urls, parent);
    +  }
    +
    +  @Override
    +  protected Class<?> findClass(String name) throws ClassNotFoundException {
    +    if (!CustomClassLoaderRunnable.GENERATED_CLASS_NAME.equals(name)) {
    +      return super.findClass(name);
    +    }
    +
    +    // Generate a class that look like this:
    +    //
    +    // public class Generated {
    +    //
    +    //   public void announce(ServiceAnnouncer announcer, String 
serviceName, int port) {
    --- End diff --
    
    actually the comment is correct. The generated method has `void` return 
type. The `announcer.announce` method has `Cancellable` return type, but the 
result gets ignored (hence the `mg.pop()` code in line 79).


> Provides more flexibility in controlling the container classpath and 
> classloader
> --------------------------------------------------------------------------------
>
>                 Key: TWILL-179
>                 URL: https://issues.apache.org/jira/browse/TWILL-179
>             Project: Apache Twill
>          Issue Type: Improvement
>          Components: core
>            Reporter: Terence Yim
>            Assignee: Terence Yim
>             Fix For: 0.11.0
>
>
> Currently the user has little control on the classpath and classloader of the 
> runnable container. E.g. in Java, one can control both through the {{-cp}} 
> and {{-Djava.system.class.loader}} arguments.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to