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, |