[ 
https://issues.apache.org/jira/browse/TUSCANY-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jennifer A Thompson updated TUSCANY-3947:
-----------------------------------------

    Description: 
In compliance testcase POJO_10009 service1ClassLoaderCheckImpl.operation1() is 
checking if the TCCL retrieved is exactly the same as 
service1ClassLoaderCheckImpl's classloader. However, it seems as long as the 
implementation class is loadable from the TCCL the testcase is still compliant 
with the specifiation. 


The suggested update is to change:

public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
String result = " thread context classloader is correct";
if( loader != tccl ) result = " thread context classloader not correct";
return serviceName + " operation1 invoked" + result;
}

to:

public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
ClassLoader loader2 = 
Class.forName("org.oasisopen.sca.test.service1ClassLoaderCheckImpl", false, 
tccl);
String result = " thread context classloader is correct";
if (loader != loader2) result = " thread context classloader not correct";
return serviceName + " operation1 invoked" + result;
}


  was:
In compliance testcase POJO_10009 service1ClassLoaderCheckImpl.operation1() is 
checking if the TCCL retrieved is exactly the same as 
service1ClassLoaderCheckImpl's classloader. However, it seems as long as the 
implementation class is loadable from the TCCL the testcase is still compliant 
with the specifiation. 


The suggested update is to change:

public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
String result = " thread context classloader is correct";
if( loader != tccl ) result = " thread context classloader not correct";
return serviceName + " operation1 invoked" + result;
}

to:

public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
ClassLoader loader2 = 
Class.forName("org.oasisopen.sca.test.service1ClassLoaderCheckImpl", false, 
tccl);
String result = " thread context classloader is correct";
if (loader != loader2) result = " thread context classloader not correct";
return serviceName + " operation1 invoked" + result;
}

This testcase would then allow the runtime the flexibility to compose a 
classloader that can delegate to the contribution classloader and to other 
classloaders (e.g. library loaders).


> Compliance testcase  POJO_10009 testing for too strict of a condition
> ---------------------------------------------------------------------
>
>                 Key: TUSCANY-3947
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-3947
>             Project: Tuscany
>          Issue Type: Improvement
>          Components: OASIS Compliance - TUSCANY
>    Affects Versions: Java-SCA-2.x
>            Reporter: Jennifer A Thompson
>             Fix For: Java-SCA-2.x
>
>
> In compliance testcase POJO_10009 service1ClassLoaderCheckImpl.operation1() 
> is checking if the TCCL retrieved is exactly the same as 
> service1ClassLoaderCheckImpl's classloader. However, it seems as long as the 
> implementation class is loadable from the TCCL the testcase is still 
> compliant with the specifiation. 
> The suggested update is to change:
> public String operation1(String input) {
> ClassLoader tccl = Thread.currentThread().getContextClassLoader();
> ClassLoader loader = this.getClass().getClassLoader();
> String result = " thread context classloader is correct";
> if( loader != tccl ) result = " thread context classloader not correct";
> return serviceName + " operation1 invoked" + result;
> }
> to:
> public String operation1(String input) {
> ClassLoader tccl = Thread.currentThread().getContextClassLoader();
> ClassLoader loader = this.getClass().getClassLoader();
> ClassLoader loader2 = 
> Class.forName("org.oasisopen.sca.test.service1ClassLoaderCheckImpl", false, 
> tccl);
> String result = " thread context classloader is correct";
> if (loader != loader2) result = " thread context classloader not correct";
> return serviceName + " operation1 invoked" + result;
> }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to