add following instruction after you have started the thread:
Thread.currentThread().join() 

changes are good that you main program (process) is terminated 
before the thread is started.

g,
kris




"hua.jiang" <[EMAIL PROTECTED]> 
10.09.2008 04:35
Bitte antworten an
"Tapestry users" <users@tapestry.apache.org>


An
users@tapestry.apache.org
Kopie

Thema
T5: tapestry-ioc scope problem in a standalone program








Hello, every one. I met the following problem when trying to use 
tapestry-ioc
in a standalone program. According to the tapestry official site, a 
service
builder method should be invoked multiple times, if it is annotated with
@Scope("perthread") and the service is used in multi threads. So I wrote 
the
following program, trying to demonstrate it. In the program, ServiceA is
used in two threads, but the builder method is invoked only one time. Why?


public class Main {

    public static void main(String[] args) {
        RegistryBuilder regBuilder = new RegistryBuilder();
        regBuilder.add(ModuleA.class);
        final Registry reg = regBuilder.build();
        final ServiceA a = reg.getService(ServiceA.class);
        a.print();
        new Thread() {

            @Override
            public void run() {
                ServiceA aInAnotherThread = 
reg.getService(ServiceA.class);
                aInAnotherThread.print();
            }
        }.start();
    }
}

public class ServiceA {

    public ServiceA() {
        System.out.println("A new instance of ServiceA is under
construction!");
    }

    public void print() {
        System.out.println(this);
    }
}

public class ModuleA {

    @Scope("perthread")
    public static ServiceA builder() {
        System.out.println("Building a new instance of ServiceA ...");
        return new ServiceA();
    }
}


-- 
View this message in context: 
http://www.nabble.com/T5%3A-tapestry-ioc-scope-problem-in-a-standalone-program-tp19405294p19405294.html

Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to