001 /*
002 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003 *
004 * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005 *
006 * The contents of this file are subject to the terms of either the GNU
007 * General Public License Version 2 only ("GPL") or the Common
008 * Development and Distribution License("CDDL") (collectively, the
009 * "License"). You may not use this file except in compliance with the
010 * License. You can obtain a copy of the License at
011 * http://www.netbeans.org/cddl-gplv2.html
012 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013 * specific language governing permissions and limitations under the
014 * License. When distributing the software, include this License Header
015 * Notice in each file and include the License file at
016 * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017 * particular file as subject to the "Classpath" exception as provided
018 * by Sun in the GPL Version 2 section of the License file that
019 * accompanied this code. If applicable, add the following below the
020 * License Header, with the fields enclosed by brackets [] replaced by
021 * your own identifying information:
022 * "Portions Copyrighted [year] [name of copyright owner]"
023 *
024 * Contributor(s):
025 *
026 * The Original Software is NetBeans. The Initial Developer of the Original
027 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028 * Microsystems, Inc. All Rights Reserved.
029 *
030 * If you wish your version of this file to be governed by only the CDDL
031 * or only the GPL Version 2, indicate your decision by adding
032 * "[Contributor] elects to include this software in this distribution
033 * under the [CDDL or GPL Version 2] license." If you do not indicate a
034 * single choice of license, a recipient has the option to distribute
035 * your version of this file under either the CDDL, the GPL Version 2 or
036 * to extend the choice of license to its licensees as provided above.
037 * However, if you add GPL Version 2 code and therefore, elected the GPL
038 * Version 2 license, then the option applies only if the new code is
039 * made subject to such option by the copyright holder.
040 */
041
042 package org.netbeans.modules.j2ee.deployment.execution;
043
044 import org.netbeans.junit.NbTestCase;
045 import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleFactory;
046 import org.netbeans.tests.j2eeserver.devmodule.*;
047 import org.netbeans.modules.j2ee.deployment.impl.*;
048 import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule;
049 import org.openide.filesystems.*;
050 import java.io.*;
051 import java.util.*;
052
053 /**
054 *
055 * @author nn136682
056 */
057 public class ServerExecutorTest extends NbTestCase {
058
059 public ServerExecutorTest(java.lang.String testName) {
060 super (testName);
061 }
062
063 private static ServerExecutorTest instance;
064
065 private static ServerExecutorTest instance() {
066 if (instance == null)
067 instance = new ServerExecutorTest("testNothing");
068 return instance;
069 }
070
071 public void testNothing() {
072 }
073
074 static private DeployTarget dt;
075 static private LocalFileSystem wfs;
076
077 static FileSystem getWorkFileSystem() {
078 if (wfs != null)
079 return wfs;
080 try {
081 File workdir = instance().getWorkDir();
082 wfs = new LocalFileSystem();
083 wfs.setRootDirectory(workdir);
084 return wfs;
085 } catch (Exception e) {
086 throw new RuntimeException(e);
087 }
088 }
089
090 public static class DeployTarget implements DeploymentTarget {
091 J2eeModule j2eeMod;
092 ServerString target;
093
094 /** Creates a new instance of TestDeployTarget */
095 public DeployTarget(J2eeModule mod, ServerString target) {
096 j2eeMod = mod;
097 this .target = target;
098 }
099
100 public boolean doFastDeploy() {
101 return false;
102 }
103
104 public boolean dontDeploy() {
105 return false;
106 }
107
108 public java.io.File getConfigurationFile() {
109 return null;
110 }
111
112 public org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule getModule() {
113 return j2eeMod;
114 }
115
116 public org.netbeans.modules.j2ee.deployment.impl.ServerString getServer() {
117 return target;
118 }
119
120 public void setServer(ServerString server) {
121 this .target = server;
122 }
123
124 public TargetModule[] getTargetModules() {
125 TargetModule.List l = readTargetModule(getName());
126 if (l == null)
127 return new TargetModule[0];
128 return l.getTargetModules();
129 }
130
131 public void setTargetModules(TargetModule[] targetModules) {
132 System.out.println("-------------SETTARGETMODULES: name="
133 + getName() + "," + Arrays.asList(targetModules));
134 writeTargetModule(getName(), new TargetModule.List(
135 targetModules));
136 }
137
138 public void startClient() {
139 }
140
141 public void startClient(String clientURL) {
142
143 }
144
145 String name;
146
147 public String getName() {
148 try {
149 if (name == null) {
150 String serverName = this .getServer().getUrl();
151 serverName = serverName.substring(serverName
152 .lastIndexOf(':') + 1);
153 name = serverName
154 + getModule().getArchive().getName();
155 }
156 } catch (Exception e) {
157 throw new RuntimeException(e);
158 }
159 return name;
160 }
161
162 public String getDeploymentName() {
163 return null;
164 }
165
166 public String getClientUrl(String partUrl) {
167 return null;
168 }
169
170 public org.netbeans.modules.j2ee.deployment.devmodules.api.ModuleChangeReporter getModuleChangeReporter() {
171 return null;
172 }
173
174 public org.netbeans.modules.j2ee.deployment.execution.ModuleConfigurationProvider getModuleConfigurationProvider() {
175 return null;
176 }
177
178 public org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider.ConfigSupport getConfigSupport() {
179 return null;
180 }
181
182 }
183
184 public static boolean writeTargetModule(String destFile,
185 TargetModule.List tml) {
186 FileLock lock = null;
187 Writer writer = null;
188 try {
189 if (tml == null)
190 return true;
191
192 FileObject fo = FileUtil.createData(getWorkFileSystem()
193 .getRoot(), destFile + ".xml");
194 lock = fo.lock();
195 writer = new OutputStreamWriter(fo.getOutputStream(lock));
196 TargetModuleConverter.create().write(writer, tml);
197 return true;
198
199 } catch (Exception ioe) {
200 throw new RuntimeException(ioe);
201 } finally {
202 try {
203 if (lock != null)
204 lock.releaseLock();
205 if (writer != null)
206 writer.close();
207 } catch (Exception e) {
208 }
209 }
210 }
211
212 public static TargetModule.List readTargetModule(String fromFile) {
213 Reader reader = null;
214 try {
215 FileObject dir = getWorkFileSystem().getRoot();
216 FileObject fo = dir.getFileObject(fromFile, "xml");
217 if (fo == null) {
218 System.out.println(Thread.currentThread()
219 + " readTargetModule: Can't get FO for "
220 + fromFile + ".xml from " + dir.getPath());
221 return null;
222 }
223 reader = new InputStreamReader(fo.getInputStream());
224 return (TargetModule.List) TargetModuleConverter.create()
225 .read(reader);
226 } catch (Exception ioe) {
227 throw new RuntimeException(ioe);
228 } finally {
229 try {
230 if (reader != null)
231 reader.close();
232 } catch (Exception e) {
233 }
234 }
235 }
236 }
|