1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.uruma.container.cooldeploy;
17
18 import java.io.IOException;
19 import java.net.URL;
20
21 import org.seasar.framework.container.cooldeploy.CoolComponentAutoRegister;
22 import org.seasar.framework.convention.NamingConvention;
23 import org.seasar.framework.util.URLUtil;
24 import org.seasar.framework.util.ClassTraversal.ClassHandler;
25 import org.seasar.uruma.core.UrumaMessageCodes;
26 import org.seasar.uruma.log.UrumaLogger;
27 import org.seasar.uruma.rcp.util.RcpResourceUtil;
28
29
30
31
32
33
34
35 public class UrumaCoolComponentAutoRegister extends CoolComponentAutoRegister
36 implements ClassHandler, UrumaMessageCodes {
37 private static final UrumaLogger logger = UrumaLogger
38 .getLogger(UrumaCoolComponentAutoRegister.class);
39
40
41
42
43 @Override
44 public void registerAll() {
45 final String[] rootPackageNames = getNamingConvention()
46 .getRootPackageNames();
47 if (rootPackageNames != null) {
48 for (int i = 0; i < rootPackageNames.length; ++i) {
49 final String rootDir = rootPackageNames[i].replace('.', '/');
50 try {
51 URL localUrl = RcpResourceUtil.getLocalResourceUrl(rootDir);
52 if (localUrl != null) {
53 final Strategy strategy = getStrategy(URLUtil
54 .toCanonicalProtocol(localUrl.getProtocol()));
55 strategy.registerAll(rootDir, localUrl);
56 } else {
57 logger.log(COOLDEPLOY_PACKAGE_NOT_FOUND, rootDir);
58 }
59 } catch (IOException ex) {
60 logger.log(COOLDEPLOY_PACKAGE_NOT_FOUND, rootDir);
61 }
62 }
63 }
64 registerdClasses.clear();
65 }
66 }