cleanup: remove useless '@author nik' from javadoc comments
[idea/community.git] / jps / standalone-builder / src / org / jetbrains / jps / gant / GantWithClasspathTask.java
1 /*
2  * Copyright 2000-2013 JetBrains s.r.o.
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.jetbrains.jps.gant;
17
18 import org.apache.tools.ant.BuildException;
19 import org.apache.tools.ant.BuildListener;
20 import org.apache.tools.ant.DefaultLogger;
21 import org.codehaus.gant.ant.Gant;
22
23 import java.io.PrintStream;
24 import java.lang.reflect.Field;
25
26 public class GantWithClasspathTask extends Gant {
27   public static PrintStream out = null;
28
29   @Override
30   public void execute() throws BuildException {
31     ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
32     try {
33       ClassLoader loader = getClass().getClassLoader();
34       Thread.currentThread().setContextClassLoader(loader);
35       for (BuildListener listener : this.getProject().getBuildListeners()) {
36         if (listener instanceof DefaultLogger) {
37           try {
38             Field field = DefaultLogger.class.getDeclaredField("out");
39             field.setAccessible(true);
40             out = (PrintStream)field.get(listener);
41             break;
42           }
43           catch (Exception ignored) {
44           }
45         }
46       }
47       try {
48         Field field = Gant.class.getDeclaredField("file");
49         field.setAccessible(true);
50         getProject().log("Starting gant script " + field.get(this));
51       }
52       catch (Exception ignore) {
53       }
54       super.execute();
55     }
56     finally {
57       Thread.currentThread().setContextClassLoader(oldLoader);
58     }
59   }
60 }