This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 234194
Collapse All | Expand All

(-)a/j2eeserver/apichanges.xml (-1 / +19 lines)
Lines 116-122 Link Here
116
    <!-- ACTUAL CHANGES BEGIN HERE: -->
116
    <!-- ACTUAL CHANGES BEGIN HERE: -->
117
117
118
    <changes>
118
    <changes>
119
    
119
120
        <change id="beforeDeploymentHook">
121
    	    <api name="devmodules"/>
122
            <summary>
123
                Provide a way to execute custom code just before actual deployment.
124
            </summary>
125
            <version major="1" minor="102"/>
126
            <date day="16" month="8" year="2013"/>
127
            <author login="phejl"/>
128
            <compatibility binary="compatible" source="compatible" semantic="compatible" addition="yes"/>
129
            <description>
130
               <p>
131
                   Additional Callable parameter allows execution of custom
132
                   custom code just before the actual deployment.
133
               </p>
134
            </description>
135
            <class package="org.netbeans.modules.j2ee.deployment.devmodules.api" name="Deployment"/>
136
            <issue number="234194"/>
137
       </change>
120
        <!-- not used for 7.3
138
        <!-- not used for 7.3
121
        <change id="deployOnSaveListeners">
139
        <change id="deployOnSaveListeners">
122
    	    <api name="devmodules"/>
140
    	    <api name="devmodules"/>
(-)a/j2eeserver/nbproject/project.properties (-1 / +1 lines)
Lines 42-48 Link Here
42
42
43
is.autoload=true
43
is.autoload=true
44
javac.source=1.6
44
javac.source=1.6
45
spec.version.base=1.101.0
45
spec.version.base=1.102.0
46
46
47
javadoc.arch=${basedir}/arch.xml
47
javadoc.arch=${basedir}/arch.xml
48
javadoc.apichanges=${basedir}/apichanges.xml
48
javadoc.apichanges=${basedir}/apichanges.xml
(-)a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/Deployment.java (-6 / +32 lines)
Lines 50-56 Link Here
50
import java.util.Iterator;
50
import java.util.Iterator;
51
import java.util.List;
51
import java.util.List;
52
import java.util.Set;
52
import java.util.Set;
53
import java.util.concurrent.Callable;
53
import java.util.logging.Level;
54
import java.util.logging.Level;
55
import org.netbeans.api.annotations.common.CheckForNull;
56
import org.netbeans.api.annotations.common.NullAllowed;
54
import org.netbeans.modules.j2ee.deployment.devmodules.api.ServerInstance.Descriptor;
57
import org.netbeans.modules.j2ee.deployment.devmodules.api.ServerInstance.Descriptor;
55
import org.netbeans.modules.j2ee.deployment.devmodules.spi.InstanceListener;
58
import org.netbeans.modules.j2ee.deployment.devmodules.spi.InstanceListener;
56
import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider;
59
import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider;
Lines 99-105 Link Here
99
    private Deployment () {
102
    private Deployment () {
100
    }
103
    }
101
    
104
    
102
    /*Deploys a web J2EE module to server.
105
    /** Deploys a web J2EE module to server.
103
     * @param clientModuleUrl URL of module within a J2EE Application that 
106
     * @param clientModuleUrl URL of module within a J2EE Application that 
104
     * should be used as a client (can be null for standalone modules)
107
     * should be used as a client (can be null for standalone modules)
105
     * <div class="nonnormative">
108
     * <div class="nonnormative">
Lines 152-159 Link Here
152
    public void resumeDeployOnSave(J2eeModuleProvider jmp) {
155
    public void resumeDeployOnSave(J2eeModuleProvider jmp) {
153
        DeployOnSaveManager.getDefault().resumeListening(jmp);
156
        DeployOnSaveManager.getDefault().resumeListening(jmp);
154
    }    
157
    }    
155
    
158
156
    public String deploy (J2eeModuleProvider jmp, Mode mode, String clientModuleUrl, String clientUrlPart, boolean forceRedeploy, Logger logger) throws DeploymentException {
159
    public String deploy(J2eeModuleProvider jmp, Mode mode, String clientModuleUrl, String clientUrlPart,
160
            boolean forceRedeploy, Logger logger) throws DeploymentException {
161
        return deploy(jmp, mode, clientModuleUrl, clientUrlPart, forceRedeploy, logger, null);
162
    }
163
164
    /**
165
     * Deploys the module represented by the module provider.
166
     *
167
     * @param jmp the representation of module to deploy
168
     * @param mode the mode we are going to use for the server
169
     * @param clientModuleUrl
170
     * @param clientUrlPart
171
     * @param forceRedeploy whether to use the force to redeploy
172
     * @param logger logger where to log progress messages
173
     * @param beforeDeploy the hook to be executed just before the actual module deploy
174
     * @return the result url where the module is available
175
     * @throws org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.DeploymentException if the deployment fails
176
     * @since 1.102
177
     */
178
    @CheckForNull
179
    public String deploy(J2eeModuleProvider jmp, Mode mode, String clientModuleUrl, String clientUrlPart,
180
            boolean forceRedeploy, Logger logger, @NullAllowed Callable<Void> beforeDeploy) throws DeploymentException {
157
        
181
        
158
        DeploymentTarget deploymentTarget = new DeploymentTarget(jmp, clientModuleUrl);
182
        DeploymentTarget deploymentTarget = new DeploymentTarget(jmp, clientModuleUrl);
159
        TargetModule[] modules = null;
183
        TargetModule[] modules = null;
Lines 194-199 Link Here
194
            DeploymentHelper.deployDatasources(jmp);
218
            DeploymentHelper.deployDatasources(jmp);
195
            DeploymentHelper.deployMessageDestinations(jmp);
219
            DeploymentHelper.deployMessageDestinations(jmp);
196
220
221
            if (beforeDeploy != null) {
222
                beforeDeploy.call();
223
            }
224
197
            modules = targetserver.deploy(progress, forceRedeploy);
225
            modules = targetserver.deploy(progress, forceRedeploy);
198
            // inform the plugin about the deploy action, even if there was
226
            // inform the plugin about the deploy action, even if there was
199
            // really nothing needed to be deployed
227
            // really nothing needed to be deployed
Lines 244-252 Link Here
244
            LOGGER.log(Level.INFO, null, ex);
272
            LOGGER.log(Level.INFO, null, ex);
245
            throw new DeploymentException(msg, ex);
273
            throw new DeploymentException(msg, ex);
246
        } finally {
274
        } finally {
247
            if (progress != null) {
275
            progress.finish();
248
                progress.finish();
249
            }
250
        }
276
        }
251
    }
277
    }
252
278
(-)a/maven.j2ee/nbproject/project.xml (-1 / +1 lines)
Lines 185-191 Link Here
185
                    <compile-dependency/>
185
                    <compile-dependency/>
186
                    <run-dependency>
186
                    <run-dependency>
187
                        <release-version>4</release-version>
187
                        <release-version>4</release-version>
188
                        <specification-version>1.59</specification-version>
188
                        <specification-version>1.102</specification-version>
189
                    </run-dependency>
189
                    </run-dependency>
190
                </dependency>
190
                </dependency>
191
                <dependency>
191
                <dependency>
(-)a/maven.j2ee/src/org/netbeans/modules/maven/j2ee/ExecutionChecker.java (-20 / +32 lines)
Lines 44-49 Link Here
44
import java.io.File;
44
import java.io.File;
45
import java.io.IOException;
45
import java.io.IOException;
46
import java.net.URL;
46
import java.net.URL;
47
import java.util.concurrent.Callable;
47
import java.util.logging.Level;
48
import java.util.logging.Level;
48
import java.util.logging.Logger;
49
import java.util.logging.Logger;
49
import org.apache.maven.model.Build;
50
import org.apache.maven.model.Build;
Lines 123-129 Link Here
123
    }
124
    }
124
125
125
    private void performDeploy(
126
    private void performDeploy(
126
            ExecutionContext res,
127
            final ExecutionContext res,
127
            boolean debugmode,
128
            boolean debugmode,
128
            boolean profilemode,
129
            boolean profilemode,
129
            String clientModuleUri,
130
            String clientModuleUri,
Lines 134-140 Link Here
134
        FileUtil.refreshFor(FileUtil.toFile(project.getProjectDirectory()));
135
        FileUtil.refreshFor(FileUtil.toFile(project.getProjectDirectory()));
135
        OutputWriter err = res.getInputOutput().getErr();
136
        OutputWriter err = res.getInputOutput().getErr();
136
        OutputWriter out = res.getInputOutput().getOut();
137
        OutputWriter out = res.getInputOutput().getOut();
137
        J2eeModuleProvider jmp = project.getLookup().lookup(J2eeModuleProvider.class);
138
        final J2eeModuleProvider jmp = project.getLookup().lookup(J2eeModuleProvider.class);
138
        if (jmp == null) {
139
        if (jmp == null) {
139
            err.println();
140
            err.println();
140
            err.println();
141
            err.println();
Lines 167-173 Link Here
167
                mode = Deployment.Mode.PROFILE;
168
                mode = Deployment.Mode.PROFILE;
168
            }
169
            }
169
170
170
            String clientUrl = Deployment.getDefault().deploy(jmp, mode, clientModuleUri, clientUrlPart, forceRedeploy, new DLogger(out));
171
            Callable<Void> debuggerHook = null;
172
            if (debugmode) {
173
                debuggerHook = new Callable<Void>() {
174
175
                    @Override
176
                    public Void call() throws Exception {
177
                        ServerDebugInfo sdi = jmp.getServerDebugInfo();
178
179
                        if (sdi != null) { //fix for bug 57854, this can be null
180
                            String h = sdi.getHost();
181
                            String transport = sdi.getTransport();
182
                            String address;
183
184
                            if (transport.equals(ServerDebugInfo.TRANSPORT_SHMEM)) {
185
                                address = sdi.getShmemName();
186
                            } else {
187
                                address = Integer.toString(sdi.getPort());
188
                            }
189
                            MavenDebugger deb = project.getLookup().lookup(MavenDebugger.class);
190
                            deb.attachDebugger(res.getInputOutput(), "Debug Deployed app", transport, h, address); // NOI18N
191
                        }
192
                        return null;
193
                    }
194
                };
195
196
            }
197
198
            String clientUrl = Deployment.getDefault().deploy(jmp, mode, clientModuleUri,
199
                    clientUrlPart, forceRedeploy, new DLogger(out), debuggerHook);
171
            if (clientUrl != null) {
200
            if (clientUrl != null) {
172
                FileObject fo = project.getProjectDirectory();
201
                FileObject fo = project.getProjectDirectory();
173
                boolean show = showInBrowser;
202
                boolean show = showInBrowser;
Lines 191-213 Link Here
191
                    }
220
                    }
192
                }
221
                }
193
            }
222
            }
194
            if (debugmode) {
195
                ServerDebugInfo sdi = jmp.getServerDebugInfo();
196
197
                if (sdi != null) { //fix for bug 57854, this can be null
198
                    String h = sdi.getHost();
199
                    String transport = sdi.getTransport();
200
                    String address;
201
202
                    if (transport.equals(ServerDebugInfo.TRANSPORT_SHMEM)) {
203
                        address = sdi.getShmemName();
204
                    } else {
205
                        address = Integer.toString(sdi.getPort());
206
                    }
207
                    MavenDebugger deb = project.getLookup().lookup(MavenDebugger.class);
208
                    deb.attachDebugger(res.getInputOutput(), "Debug Deployed app", transport, h, address); // NOI18N
209
                }
210
            }
211
        } catch (Deployment.DeploymentException ex) {
223
        } catch (Deployment.DeploymentException ex) {
212
            ex.printStackTrace(err);
224
            ex.printStackTrace(err);
213
            Logger.getLogger(ExecutionChecker.class.getName()).log(Level.FINE, "Exception occured wile deploying to Application Server.", ex); //NOI18N
225
            Logger.getLogger(ExecutionChecker.class.getName()).log(Level.FINE, "Exception occured wile deploying to Application Server.", ex); //NOI18N

Return to bug 234194