Hi, i have a question about invocation method between components; i have
three component A,B,C. The component A have two remotable and OneWay methods
Increments and Decrements, Increments call a private method inc to
increments private variable in A implementation, and Decrements call a
private method dec to decrements the same variable, if B and C call one of
this method at same time is it correct to define the private method inc and
dec as synchronized to obtain a synchronized access to the private variable
? Thank for your answer
Service A
@Remotable
public interface Aservice{
@OneWay
void Increments();
@OneWay
void Decrements();
}
/--------------------------------------------------------------/
@Scope("COMPOSITE")
@EagerInit
public class AserviceImpl implements Aservice{
private int i;
@Init
public void start() { i=0;}
private void inc(){i++;} //<------this may be synchronized?
private void dec(){i--;} //<------this may be synchronized?
public void Increments(){inc();}
public void Decrements(){dec();}
}
Service B
@Remotable
public interface Bservice{
void Bmethod();
}
/--------------------------------------------------------------/
@Scope("COMPOSITE")
public class BserviceImpl implements Bservice{
@Reference
Aservice aservice;
public void Bmethod(){
.
.
aservice.Increments();
.
.
}
}
Service C
@Remotable
public interface Cservice{
void Cmethod();
}
/--------------------------------------------------------------/
@Scope("COMPOSITE")
public class CserviceImpl implements Cservice{
@Reference
Aservice aservice;
public void Cmethod(){
.
.
aservice.Decrements();
.
.
}
}