View Javadoc

1   /**
2    * Copyright (C) 2010 Daniel Manzke <daniel.manzke@googlemail.com>
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *         http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.apache.onami.autobind.example.starter;
17  
18  import java.util.Set;
19  
20  import org.apache.onami.autobind.scanner.PackageFilter;
21  import org.apache.onami.autobind.scanner.asm.ASMClasspathScanner;
22  
23  import com.google.inject.Guice;
24  import com.google.inject.Injector;
25  import com.google.inject.Key;
26  import com.google.inject.TypeLiteral;
27  
28  
29  public class ExampleStarter {
30  	public static void main(String[] args) {
31  		Injector injector = Guice.createInjector(new ExampleStartupModule(ASMClasspathScanner.class, PackageFilter.create("de.devsurf.injection.guice")));
32  
33  		Key<Set<ExampleApplication>> key = Key.get(new TypeLiteral<Set<ExampleApplication>>() {
34  		});
35  		Set<ExampleApplication> apps = injector.getInstance(key);
36  		for (ExampleApplication app : apps) {
37  			System.out.println("Starting App: " + app.getClass().getName());
38  			app.run();
39  			System.out.println();
40  		}
41  		System.out.println("Run " + apps.size() + " Applications.");
42  	}
43  }