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 93815
Collapse All | Expand All

(-).cvsignore (+1 lines)
Line 1 Link Here
1
build
1
build
2
.swp
(-)nbproject/project.xml (+8 lines)
Lines 368-373 Link Here
368
                        <specification-version>6.2</specification-version>
368
                        <specification-version>6.2</specification-version>
369
                    </run-dependency>
369
                    </run-dependency>
370
                </dependency>
370
                </dependency>
371
                <dependency>
372
                    <code-name-base>org.netbeans.api.web.webmodule</code-name-base>
373
                    <build-prerequisite/>
374
                    <compile-dependency/>
375
                    <run-dependency>
376
                        <specification-version>1.8</specification-version>
377
                    </run-dependency>
378
                </dependency>
371
            </module-dependencies>
379
            </module-dependencies>
372
            <test-dependencies>
380
            <test-dependencies>
373
                <test-type>
381
                <test-type>
(-)src/org/netbeans/modules/j2ee/ejbcore/action/UseDatabaseGenerator.java (-3 / +109 lines)
Lines 13-19 Link Here
13
 * "Portions Copyrighted [year] [name of copyright owner]"
13
 * "Portions Copyrighted [year] [name of copyright owner]"
14
 *
14
 *
15
 * The Original Software is NetBeans. The Initial Developer of the Original
15
 * The Original Software is NetBeans. The Initial Developer of the Original
16
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
16
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17
 * Microsystems, Inc. All Rights Reserved.
17
 * Microsystems, Inc. All Rights Reserved.
18
 */
18
 */
19
19
Lines 37-43 Link Here
37
import org.netbeans.modules.j2ee.common.queries.api.InjectionTargetQuery;
37
import org.netbeans.modules.j2ee.common.queries.api.InjectionTargetQuery;
38
import org.netbeans.modules.j2ee.common.source.AbstractTask;
38
import org.netbeans.modules.j2ee.common.source.AbstractTask;
39
import org.netbeans.modules.j2ee.dd.api.common.ResourceRef;
39
import org.netbeans.modules.j2ee.dd.api.common.ResourceRef;
40
import org.netbeans.modules.j2ee.dd.api.ejb.EjbJar;
41
import org.netbeans.modules.j2ee.dd.api.ejb.EnterpriseBeans;
42
import org.netbeans.modules.j2ee.dd.api.ejb.Ejb;
43
import org.netbeans.modules.j2ee.dd.api.ejb.DDProvider;
44
import org.netbeans.modules.j2ee.deployment.common.api.ConfigurationException;
40
import org.netbeans.modules.j2ee.deployment.common.api.Datasource;
45
import org.netbeans.modules.j2ee.deployment.common.api.Datasource;
46
import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule;
47
import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider;
41
import org.netbeans.modules.j2ee.ejbcore.Utils;
48
import org.netbeans.modules.j2ee.ejbcore.Utils;
42
import org.netbeans.modules.j2ee.ejbcore._RetoucheUtil;
49
import org.netbeans.modules.j2ee.ejbcore._RetoucheUtil;
43
import org.netbeans.modules.j2ee.ejbcore.ui.logicalview.entres.ServiceLocatorStrategy;
50
import org.netbeans.modules.j2ee.ejbcore.ui.logicalview.entres.ServiceLocatorStrategy;
Lines 52-59 Link Here
52
    public UseDatabaseGenerator() {
59
    public UseDatabaseGenerator() {
53
    }
60
    }
54
61
55
    public void generate(final FileObject fileObject, final ElementHandle<TypeElement> elementHandle, final Datasource datasource, 
62
    public void generate(final FileObject fileObject, final ElementHandle<TypeElement> elementHandle, 
56
            final boolean createServerResources, String serviceLocator) throws IOException {
63
                         final J2eeModuleProvider j2eeModuleProvider, final String datasourceReferenceName, 
64
                         final Datasource datasource, final boolean createServerResources, String serviceLocator) 
65
                         throws IOException, ConfigurationException
66
    {
57
        Project project = FileOwnerQuery.getOwner(fileObject);
67
        Project project = FileOwnerQuery.getOwner(fileObject);
58
        ServiceLocatorStrategy serviceLocatorStrategy = (serviceLocator == null) ? null : 
68
        ServiceLocatorStrategy serviceLocatorStrategy = (serviceLocator == null) ? null : 
59
            ServiceLocatorStrategy.create(project, fileObject, serviceLocator);
69
            ServiceLocatorStrategy.create(project, fileObject, serviceLocator);
Lines 73-81 Link Here
73
                generateLookupMethod(fileObject, className, jndiName, serviceLocatorStrategy);
83
                generateLookupMethod(fileObject, className, jndiName, serviceLocatorStrategy);
74
            }
84
            }
75
        }
85
        }
86
        
87
if (System.getProperties().getProperty("resource-api-redesign") != null) {
88
    J2eeModule module = j2eeModuleProvider.getJ2eeModule();
89
    if (isWebModule(module)) {
90
        bindDataSourceReference(j2eeModuleProvider, datasourceReferenceName, datasource);
91
    }
92
    else if (isEjbModule(module)) {
93
        bindDataSourceReferenceEjb(j2eeModuleProvider, datasourceReferenceName, datasource, fileObject, elementHandle);
94
    }
95
}
96
        
76
        if (serviceLocator != null) {
97
        if (serviceLocator != null) {
77
            erc.setServiceLocatorName(serviceLocator);
98
            erc.setServiceLocatorName(serviceLocator);
78
        }
99
        }
100
    }
101
    
102
    private void bindDataSourceReference(J2eeModuleProvider j2eeModuleProvider, String dsRefName, Datasource datasource) 
103
    throws ConfigurationException {
104
105
        String dsJndiName = datasource.getJndiName();
106
        j2eeModuleProvider.getConfigSupport().bindDatasourceReference(dsRefName, dsJndiName);
107
    }
108
    
109
    private void bindDataSourceReferenceEjb(J2eeModuleProvider j2eeModuleProvider, String dsRefName, Datasource datasource,
110
            FileObject fileObject, ElementHandle<TypeElement> elementHandle) throws ConfigurationException {
111
112
        String dsJndiName = datasource.getJndiName();
113
114
        EjbJar dd = null;
115
        try {
116
            dd = findDDRoot(fileObject);
117
        }
118
        catch (IOException ioe) {
119
            // TODO
120
        }
121
        if (dd == null) {
122
            return;
123
        }
124
        
125
        EnterpriseBeans beans = dd.getEnterpriseBeans();
126
        if (beans == null) {
127
            return;
128
        }
129
        
130
        String ejbName = getEjbName(beans, elementHandle.getQualifiedName());
131
        if (ejbName == null) {
132
            return;
133
        }
134
        
135
        String ejbType = getEjbType(beans, elementHandle.getQualifiedName());
136
        if (ejbType == null) {
137
            return;
138
        }
139
        
140
        j2eeModuleProvider.getConfigSupport().bindDatasourceReferenceEjb(dsRefName, dsJndiName, ejbName, ejbType);
141
    }
142
    
143
    private EjbJar findDDRoot(FileObject fileObject) throws IOException {
144
        org.netbeans.modules.j2ee.api.ejbjar.EjbJar ejbJar = org.netbeans.modules.j2ee.api.ejbjar.EjbJar.getEjbJar(fileObject);
145
        assert ejbJar != null;
146
        return DDProvider.getDefault().getMergedDDRoot(ejbJar.getMetadataUnit());
147
    }
148
    
149
    private boolean isWebModule(J2eeModule module) {
150
        return module.getModuleType().equals(J2eeModule.WAR);
151
    }
152
    
153
    private boolean isEjbModule(J2eeModule module) {
154
        return module.getModuleType().equals(J2eeModule.EJB);
155
    }
156
    
157
    private String getEjbName(EnterpriseBeans beans, String className) {
158
        Ejb ejb = (Ejb) beans.findBeanByName(EnterpriseBeans.SESSION, Ejb.EJB_CLASS, className);
159
        if (ejb == null) {
160
            ejb = (Ejb) beans.findBeanByName(EnterpriseBeans.ENTITY, Ejb.EJB_CLASS, className);
161
        }
162
        if (ejb == null) {
163
            ejb = (Ejb) beans.findBeanByName(EnterpriseBeans.MESSAGE_DRIVEN, Ejb.EJB_CLASS, className);
164
        }
165
166
        return ejb.getEjbName();
167
    }
168
    
169
    private String getEjbType(EnterpriseBeans beans, String className) {
170
        String type = null;
171
        
172
        if (beans.findBeanByName(EnterpriseBeans.SESSION, Ejb.EJB_CLASS, className) != null) {
173
            type = EnterpriseBeans.SESSION;
174
        }
175
        else
176
        if (beans.findBeanByName(EnterpriseBeans.ENTITY, Ejb.EJB_CLASS, className) != null) {
177
            type = EnterpriseBeans.ENTITY;
178
        }
179
        else
180
        if (beans.findBeanByName(EnterpriseBeans.MESSAGE_DRIVEN, Ejb.EJB_CLASS, className) != null) {
181
            type = EnterpriseBeans.MESSAGE_DRIVEN;
182
        }
183
184
        return type;
79
    }
185
    }
80
    
186
    
81
    private String generateJNDILookup(String jndiName, EnterpriseReferenceContainer enterpriseReferenceContainer, 
187
    private String generateJNDILookup(String jndiName, EnterpriseReferenceContainer enterpriseReferenceContainer, 
(-)src/org/netbeans/modules/j2ee/ejbcore/ejb/wizard/mdb/MessageEJBWizard.java (-1 / +25 lines)
Lines 13-25 Link Here
13
 * "Portions Copyrighted [year] [name of copyright owner]"
13
 * "Portions Copyrighted [year] [name of copyright owner]"
14
 *
14
 *
15
 * The Original Software is NetBeans. The Initial Developer of the Original
15
 * The Original Software is NetBeans. The Initial Developer of the Original
16
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
16
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17
 * Microsystems, Inc. All Rights Reserved.
17
 * Microsystems, Inc. All Rights Reserved.
18
 */
18
 */
19
19
20
package org.netbeans.modules.j2ee.ejbcore.ejb.wizard.mdb;
20
package org.netbeans.modules.j2ee.ejbcore.ejb.wizard.mdb;
21
21
22
import java.io.IOException;
22
import java.io.IOException;
23
import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider;
23
import org.netbeans.modules.j2ee.ejbcore.api.codegeneration.MessageGenerator;
24
import org.netbeans.modules.j2ee.ejbcore.api.codegeneration.MessageGenerator;
24
import java.util.Collections;
25
import java.util.Collections;
25
import java.util.NoSuchElementException;
26
import java.util.NoSuchElementException;
Lines 34-39 Link Here
34
import org.netbeans.spi.project.ui.templates.support.Templates;
35
import org.netbeans.spi.project.ui.templates.support.Templates;
35
import org.openide.filesystems.FileObject;
36
import org.openide.filesystems.FileObject;
36
import org.netbeans.modules.j2ee.common.Util;
37
import org.netbeans.modules.j2ee.common.Util;
38
import org.netbeans.modules.j2ee.deployment.common.api.ConfigurationException;
39
import org.netbeans.modules.j2ee.deployment.common.api.MessageDestination;
37
import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule;
40
import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule;
38
import org.netbeans.modules.j2ee.ejbcore.Utils;
41
import org.netbeans.modules.j2ee.ejbcore.Utils;
39
import org.openide.WizardDescriptor;
42
import org.openide.WizardDescriptor;
Lines 73-78 Link Here
73
        Util.hideLabelAndLabelFor(jComponent, NbBundle.getMessage(MessageEJBWizard.class, "LBL_JavaTargetChooserPanelGUI_CreatedFile_Label"));
76
        Util.hideLabelAndLabelFor(jComponent, NbBundle.getMessage(MessageEJBWizard.class, "LBL_JavaTargetChooserPanelGUI_CreatedFile_Label"));
74
        panels = new WizardDescriptor.Panel[] {wizardPanel};
77
        panels = new WizardDescriptor.Panel[] {wizardPanel};
75
        Utils.mergeSteps(wiz, panels, SESSION_STEPS);
78
        Utils.mergeSteps(wiz, panels, SESSION_STEPS);
79
        
80
if (System.getProperties().getProperty("resource-api-redesign") != null) {
81
    J2eeModuleProvider provider = project.getLookup().lookup(J2eeModuleProvider.class);
82
    try {
83
        Set<MessageDestination> moduleDestinations = provider.getConfigSupport().getMessageDestinations();
84
        for (MessageDestination md : moduleDestinations) {
85
            System.out.println(md.getJndiName() + " ~ " + md.getType());
86
        }
87
        if (provider.getConfigSupport().supportsCreateMessageDestination()) {
88
            MessageDestination dest = provider.getConfigSupport().createMessageDestination("TestMsgDest01", MessageDestination.Type.TOPIC);
89
        }
90
        Set<MessageDestination> serverDestinations = provider.getConfigSupport().getServerMessageDestinations();
91
        for (MessageDestination md : serverDestinations) {
92
            System.out.println(md.getJndiName() + " ~ " + md.getType());
93
        }
94
    }
95
    catch (ConfigurationException ce) {
96
97
    }
98
}
99
76
    }
100
    }
77
101
78
    public Set instantiate() throws IOException {
102
    public Set instantiate() throws IOException {
(-)src/org/netbeans/modules/j2ee/ejbcore/ui/logicalview/entres/UseDatabaseAction.java (-8 / +109 lines)
Lines 13-19 Link Here
13
 * "Portions Copyrighted [year] [name of copyright owner]"
13
 * "Portions Copyrighted [year] [name of copyright owner]"
14
 *
14
 *
15
 * The Original Software is NetBeans. The Initial Developer of the Original
15
 * The Original Software is NetBeans. The Initial Developer of the Original
16
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
16
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17
 * Microsystems, Inc. All Rights Reserved.
17
 * Microsystems, Inc. All Rights Reserved.
18
 */
18
 */
19
19
Lines 22-27 Link Here
22
import java.beans.PropertyChangeEvent;
22
import java.beans.PropertyChangeEvent;
23
import java.beans.PropertyChangeListener;
23
import java.beans.PropertyChangeListener;
24
import java.io.IOException;
24
import java.io.IOException;
25
import java.util.HashMap;
26
import java.util.Map;
25
import javax.lang.model.element.ElementKind;
27
import javax.lang.model.element.ElementKind;
26
import javax.lang.model.element.TypeElement;
28
import javax.lang.model.element.TypeElement;
27
import javax.swing.Action;
29
import javax.swing.Action;
Lines 33-41 Link Here
33
import org.netbeans.api.project.Project;
35
import org.netbeans.api.project.Project;
34
import org.netbeans.modules.j2ee.api.ejbjar.EnterpriseReferenceContainer;
36
import org.netbeans.modules.j2ee.api.ejbjar.EnterpriseReferenceContainer;
35
import org.netbeans.modules.j2ee.common.source.AbstractTask;
37
import org.netbeans.modules.j2ee.common.source.AbstractTask;
38
import org.netbeans.modules.j2ee.dd.api.common.ResourceRef;
39
import org.netbeans.modules.j2ee.dd.api.ejb.EjbJar;
40
import org.netbeans.modules.j2ee.dd.api.ejb.EnterpriseBeans;
41
import org.netbeans.modules.j2ee.dd.api.ejb.Ejb;
42
import org.netbeans.modules.j2ee.dd.api.web.WebApp;
43
import org.netbeans.modules.j2ee.deployment.common.api.ConfigurationException;
44
import org.netbeans.modules.j2ee.deployment.common.api.Datasource;
45
import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule;
36
import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider;
46
import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider;
37
import org.netbeans.modules.j2ee.ejbcore._RetoucheUtil;
47
import org.netbeans.modules.j2ee.ejbcore._RetoucheUtil;
38
import org.netbeans.modules.j2ee.ejbcore.action.UseDatabaseGenerator;
48
import org.netbeans.modules.j2ee.ejbcore.action.UseDatabaseGenerator;
49
import org.netbeans.modules.web.api.webmodule.WebModule;
39
import org.openide.DialogDescriptor;
50
import org.openide.DialogDescriptor;
40
import org.openide.DialogDisplayer;
51
import org.openide.DialogDisplayer;
41
import org.openide.ErrorManager;
52
import org.openide.ErrorManager;
Lines 97-116 Link Here
97
            }
108
            }
98
        });
109
        });
99
        selectDatabasePanel.checkDatasource();
110
        selectDatabasePanel.checkDatasource();
111
        
112
if (System.getProperties().getProperty("resource-api-redesign") != null) {
113
    try {            
114
        Map<String, Datasource> refs = getDataSourceReferences(j2eeModuleProvider, fileObject);
115
    }
116
    catch (ConfigurationException ce) {
117
        //TODO notify user
118
    }
119
}
120
String refName = "NameOfSelectedReference";
121
        
100
        Object option = DialogDisplayer.getDefault().notify(dialogDescriptor);
122
        Object option = DialogDisplayer.getDefault().notify(dialogDescriptor);
101
        if (option == NotifyDescriptor.OK_OPTION) {
123
        if (option == NotifyDescriptor.OK_OPTION) {
124
            
102
            UseDatabaseGenerator generator = new UseDatabaseGenerator();
125
            UseDatabaseGenerator generator = new UseDatabaseGenerator();
103
            generator.generate(
126
            try {
104
                    fileObject,
127
                generator.generate(
105
                    elementHandle,
128
                        fileObject,
106
                    selectDatabasePanel.getDatasource(),
129
                        elementHandle,
107
                    selectDatabasePanel.createServerResources(),
130
                        j2eeModuleProvider,
108
                    selectDatabasePanel.getServiceLocator()
131
                        refName,
109
                    );
132
                        selectDatabasePanel.getDatasource(),
133
                        selectDatabasePanel.createServerResources(),
134
                        selectDatabasePanel.getServiceLocator()
135
                        );
136
            }
137
            catch (ConfigurationException ex) {
138
                //TODO
139
            }
110
        }
140
        }
111
        return false;
141
        return false;
112
    }
142
    }
143
144
    private Map<String, Datasource> getDataSourceReferences(J2eeModuleProvider j2eeModuleProvider, FileObject fileObject) 
145
    throws ConfigurationException {
146
        
147
        HashMap<String, Datasource> references = new HashMap<String, Datasource>();
148
        
149
        if (j2eeModuleProvider.getJ2eeModule().getModuleType().equals(J2eeModule.EJB)) {
150
            EjbJar dd = findEjbDDRoot(fileObject);
151
            if (dd == null) {
152
                return references;
153
            }
154
            EnterpriseBeans beans = dd.getEnterpriseBeans();
155
            if (beans == null) {
156
                return references;
157
            }
158
            
159
            Ejb[] ejbs = beans.getEjbs();
160
            for (Ejb ejb : ejbs) {
161
                ResourceRef[] refs = ejb.getResourceRef();
162
                for (ResourceRef ref : refs) {
163
                    String refName = ref.getResRefName();
164
                    Datasource ds = j2eeModuleProvider.getConfigSupport().findDatasourceForReferenceEjb(refName, ejb.getEjbName());
165
                    if (ds != null) {
166
                        references.put(refName, ds);
167
                        System.out.println(refName + " ~ " + ds.getUrl());
168
                    }
169
                }
170
            }
171
        }
172
        else
173
        if (j2eeModuleProvider.getJ2eeModule().getModuleType().equals(J2eeModule.WAR)) {
174
            WebApp dd = findWebDDRoot(fileObject);
175
            if (dd == null) {
176
                return references;
177
            }
178
            ResourceRef[] refs = dd.getResourceRef();
179
            for (ResourceRef ref : refs) {
180
                String refName = ref.getResRefName();
181
                Datasource ds = j2eeModuleProvider.getConfigSupport().findDatasourceForReference(refName);
182
                if (ds != null) {
183
                    references.put(refName, ds);
184
                    System.out.println(refName + " ~ " + ds.getUrl());
185
                }
186
            }
187
        }
188
        
189
        return references;
190
    }
191
192
    private EjbJar findEjbDDRoot(FileObject fileObject) throws ConfigurationException {
193
        org.netbeans.modules.j2ee.api.ejbjar.EjbJar ejbJar = org.netbeans.modules.j2ee.api.ejbjar.EjbJar.getEjbJar(fileObject);
194
        assert ejbJar != null;
195
        try {
196
            return org.netbeans.modules.j2ee.dd.api.ejb.DDProvider.getDefault().getMergedDDRoot(ejbJar.getMetadataUnit());
197
        }
198
        catch (IOException ioe) {
199
            String msg = NbBundle.getMessage(UseDatabaseAction.class, "ERR_CannotReadEjbDD");
200
            throw new ConfigurationException(msg, ioe);
201
        }
202
    }
113
    
203
    
204
    private WebApp findWebDDRoot(FileObject fileObject) throws ConfigurationException {
205
        WebModule mod = WebModule.getWebModule(fileObject);
206
        try {
207
            return org.netbeans.modules.j2ee.dd.api.web.DDProvider.getDefault().getMergedDDRoot(mod);
208
        }
209
        catch (IOException ioe) {
210
            String msg = NbBundle.getMessage(UseDatabaseAction.class, "ERR_CannotReadWebDD");
211
            throw new ConfigurationException(msg, ioe);
212
        }
213
    }
214
        
114
    protected boolean enable(Node[] nodes) {
215
    protected boolean enable(Node[] nodes) {
115
        if (nodes == null || nodes.length != 1) {
216
        if (nodes == null || nodes.length != 1) {
116
            return false;
217
            return false;

Return to bug 93815