Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 346300
Collapse All | Expand All

(-)ejbarchive/org/eclipse/jst/j2ee/internal/ejb/archiveoperations/EJBClientJarCreationHelper.java (-18 / +97 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
 * Copyright (c) 2005, 2006 IBM Corporation and others.
2
 * Copyright (c) 2005, 2011 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 47-52 Link Here
47
import org.eclipse.jst.j2ee.ejb.componentcore.util.EJBArtifactEdit;
47
import org.eclipse.jst.j2ee.ejb.componentcore.util.EJBArtifactEdit;
48
import org.eclipse.jst.j2ee.ejb.internal.plugin.EjbPlugin;
48
import org.eclipse.jst.j2ee.ejb.internal.plugin.EjbPlugin;
49
import org.eclipse.jst.j2ee.internal.ejb.project.operations.ClientJARCreationConstants;
49
import org.eclipse.jst.j2ee.internal.ejb.project.operations.ClientJARCreationConstants;
50
import org.eclipse.jst.j2ee.model.IModelProvider;
51
import org.eclipse.jst.j2ee.model.ModelProviderManager;
52
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
53
import org.eclipse.jst.javaee.ejb.EnterpriseBeans;
54
import org.eclipse.jst.javaee.ejb.EntityBean;
55
import org.eclipse.jst.javaee.ejb.SessionBean;
50
import org.eclipse.wst.common.componentcore.ComponentCore;
56
import org.eclipse.wst.common.componentcore.ComponentCore;
51
57
52
public class EJBClientJarCreationHelper {
58
public class EJBClientJarCreationHelper {
Lines 65-93 Link Here
65
	
71
	
66
	public Map getFilesToMove() {
72
	public Map getFilesToMove() {
67
		
73
		
68
		
69
	    searchHelper = new MySearchHelper(searchEngine, computeBeanTypeNames());
74
	    searchHelper = new MySearchHelper(searchEngine, computeBeanTypeNames());
70
	
75
	
71
72
		if( ejbProject.exists() && ejbProject.isAccessible()){
76
		if( ejbProject.exists() && ejbProject.isAccessible()){
73
			EJBArtifactEdit edit = null;
77
			if (JavaEEProjectUtilities.isLegacyJ2EEComponent(ComponentCore.createComponent(ejbProject))) { // the project is older than Java EE 5, i.e. EJB 2.1
74
			try {
78
				EJBArtifactEdit edit = null;
75
					edit = EJBArtifactEdit.getEJBArtifactEditForRead(ejbProject);
79
				try {
76
					EJBJar ejbJar = edit.getEJBJar();
80
						edit = EJBArtifactEdit.getEJBArtifactEditForRead(ejbProject);
77
					if (ejbJar != null) {
81
						EJBJar ejbJar = edit.getEJBJar();
78
						List enterpriseBeans = ejbJar.getEnterpriseBeans();
82
						if (ejbJar != null) {
79
						for (int i = 0; i < enterpriseBeans.size(); i++) {
83
							List enterpriseBeans = ejbJar.getEnterpriseBeans();
80
							EnterpriseBean ejb = (EnterpriseBean) enterpriseBeans.get(i);
84
							for (int i = 0; i < enterpriseBeans.size(); i++) {
81
							computeJavaTypes(ejb);
85
								EnterpriseBean ejb = (EnterpriseBean) enterpriseBeans.get(i);
86
								computeJavaTypes(ejb);
87
							}
88
						}
89
						computeRMICJavaTypes();					
90
	
91
				} finally {
92
					if(edit != null)
93
						edit.dispose();
94
						  
95
				}
96
			} 
97
			else { // we have an EJB 3.x project, so use the new model for the EJB module
98
				IModelProvider modelProvider = ModelProviderManager.getModelProvider(ejbProject);
99
				org.eclipse.jst.javaee.ejb.EJBJar ejbJar = (org.eclipse.jst.javaee.ejb.EJBJar) modelProvider.getModelObject();
100
				
101
				if (ejbJar != null) {
102
					EnterpriseBeans enterpriseBeans = ejbJar.getEnterpriseBeans();
103
					if (enterpriseBeans != null){
104
						List<SessionBean> sessionBeans = enterpriseBeans.getSessionBeans();
105
						for (SessionBean sessionBean : sessionBeans) {
106
							computeJavaTypes(sessionBean);
107
						}
108
						
109
						List<EntityBean> entityBeans = enterpriseBeans.getEntityBeans();
110
						for (EntityBean entityBean : entityBeans) {
111
							computeJavaTypes(entityBean);
82
						}
112
						}
83
					}
113
					}
84
					computeRMICJavaTypes();					
114
				}
85
115
				computeRMICJavaTypes();			
86
			} finally {
116
				
87
				if(edit != null)
88
					edit.dispose();
89
					  
90
			}
117
			}
118
			
91
		}
119
		}
92
		return javaFilesToMove;
120
		return javaFilesToMove;
93
	}
121
	}
Lines 164-169 Link Here
164
			computeJavaTypes(((Entity)ejb).getPrimaryKey());
192
			computeJavaTypes(((Entity)ejb).getPrimaryKey());
165
	}
193
	}
166
	
194
	
195
	private void computeJavaTypes(EntityBean entityBean) {
196
		
197
		computeJavaTypes(entityBean.getHome());
198
		computeJavaTypes(entityBean.getLocalHome());
199
		computeJavaTypes(entityBean.getLocal());
200
		computeJavaTypes(entityBean.getRemote());
201
		
202
		computeJavaTypes(entityBean.getPrimkeyField());
203
		
204
	}
205
206
	private void computeJavaTypes(String fqClassName) {
207
		if (fqClassName == null) {
208
			return;
209
		}
210
		IJavaProject jProj = JemProjectUtilities.getJavaProject(ejbProject);
211
		IType type;
212
		try {
213
			type = jProj.findType(fqClassName);
214
			computeJavaTypes(type);
215
		} catch (JavaModelException e) {
216
			EjbPlugin.logError(e);
217
		}
218
		
219
		
220
	}
221
222
	// Dedicated for a session bean representation in the EJB 3.x model
223
	private void computeJavaTypes(SessionBean sessionBean) {
224
		
225
		// do as in the EJB 2.x case
226
		computeJavaTypes(sessionBean.getHome());
227
		computeJavaTypes(sessionBean.getLocalHome());
228
		computeJavaTypes(sessionBean.getLocal());
229
		computeJavaTypes(sessionBean.getRemote());
230
		
231
		
232
		// process additionally local business interfaces ...
233
		List<String> businessLocals = sessionBean.getBusinessLocals();
234
		for (String string : businessLocals) {
235
			computeJavaTypes(string);
236
		}
237
		
238
		// ... and remote business interfaces
239
		List<String> businessRemotes = sessionBean.getBusinessRemotes();
240
		for (String string : businessRemotes) {
241
			computeJavaTypes(string);
242
		}		
243
	}
244
	
245
	
167
	private void computeJavaTypes(JavaClass javaClass) {
246
	private void computeJavaTypes(JavaClass javaClass) {
168
		if (javaClass == null)
247
		if (javaClass == null)
169
			return;
248
			return;

Return to bug 346300