01: /*
02: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
03: *
04: * This file is part of Resin(R) Open Source
05: *
06: * Each copy or derived work must preserve the copyright notice and this
07: * notice unmodified.
08: *
09: * Resin Open Source is free software; you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License as published by
11: * the Free Software Foundation; either version 2 of the License, or
12: * (at your option) any later version.
13: *
14: * Resin Open Source is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
17: * of NON-INFRINGEMENT. See the GNU General Public License for more
18: * details.
19: *
20: * You should have received a copy of the GNU General Public License
21: * along with Resin Open Source; if not, write to the
22: *
23: * Free Software Foundation, Inc.
24: * 59 Temple Place, Suite 330
25: * Boston, MA 02111-1307 USA
26: *
27: * @author Sam
28: */
29:
30: package com.caucho.netbeans.ide;
31:
32: import com.caucho.netbeans.ResinDeploymentManager;
33:
34: import org.netbeans.modules.j2ee.deployment.plugins.spi.TargetModuleIDResolver;
35: import org.openide.ErrorManager;
36:
37: import javax.enterprise.deploy.shared.ModuleType;
38: import javax.enterprise.deploy.spi.DeploymentManager;
39: import javax.enterprise.deploy.spi.Target;
40: import javax.enterprise.deploy.spi.TargetModuleID;
41: import java.util.ArrayList;
42: import java.util.Map;
43:
44: public final class ResinTargetModuleIDResolver extends
45: TargetModuleIDResolver {
46: private final ResinDeploymentManager _manager;
47:
48: public ResinTargetModuleIDResolver(DeploymentManager manager) {
49: this ._manager = (ResinDeploymentManager) manager;
50: }
51:
52: public TargetModuleID[] lookupTargetModuleID(Map targetModuleInfo,
53: Target[] targets) {
54: String contextRoot = (String) targetModuleInfo
55: .get(KEY_CONTEXT_ROOT);
56:
57: if (contextRoot == null)
58: return EMPTY_TMID_ARRAY;
59:
60: if ("".equals(contextRoot)) {
61: contextRoot = "/"; // NOI18N
62: } else {
63: contextRoot = contextRoot.substring(1);
64: }
65:
66: ArrayList<TargetModuleID> result = new ArrayList<TargetModuleID>();
67:
68: try {
69: TargetModuleID[] targetModuleIDs = _manager
70: .getAvailableModules(ModuleType.WAR, targets);
71:
72: for (TargetModuleID targetModuleID1 : targetModuleIDs) {
73:
74: ResinTargetModuleID targetModuleID = (ResinTargetModuleID) targetModuleID1;
75:
76: if (contextRoot.equals(targetModuleID.getPath())) {
77: result.add(targetModuleID);
78: }
79: }
80: } catch (Exception ex) {
81: ErrorManager.getDefault().notify(
82: ErrorManager.INFORMATIONAL, ex);
83: }
84:
85: return result.toArray(new TargetModuleID[result.size()]);
86: }
87: }
|