View | Details | Raw Unified | Return to bug 119311 | Differences between
and this patch

Collapse All | Expand All

(-)META-INF/MANIFEST.MF (-1 / +2 lines)
Lines 37-43 Link Here
37
 org.eclipse.jst.server.core;bundle-version="[1.0.102,2.0.0)",
37
 org.eclipse.jst.server.core;bundle-version="[1.0.102,2.0.0)",
38
 org.eclipse.jst.common.frameworks;bundle-version="[1.1.0,2.0.0)",
38
 org.eclipse.jst.common.frameworks;bundle-version="[1.1.0,2.0.0)",
39
 org.eclipse.jst.j2ee.jca;bundle-version="[1.1.0,2.0.0)",
39
 org.eclipse.jst.j2ee.jca;bundle-version="[1.1.0,2.0.0)",
40
 org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
40
 org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
41
 org.eclipse.jst.ejb.ui;bundle-version="[1.1.0, 2.0.0)"
41
Eclipse-LazyStart: true
42
Eclipse-LazyStart: true
42
Bundle-Localization: plugin
43
Bundle-Localization: plugin
43
Bundle-Vendor: %Bundle-Vendor.0
44
Bundle-Vendor: %Bundle-Vendor.0
(-)plugin.xml (+7 lines)
Lines 1353-1358 Link Here
1353
            type="org.eclipse.jst.jee.ui.internal.navigator.ejb.BeanNode">
1353
            type="org.eclipse.jst.jee.ui.internal.navigator.ejb.BeanNode">
1354
      </propertyTester>
1354
      </propertyTester>
1355
   </extension>  
1355
   </extension>  
1356
   
1357
   <extension point="org.eclipse.ui.ide.markerResolution">
1358
      <markerResolutionGenerator
1359
            class="org.eclipse.jst.jee.ui.internal.quickfixes.ejb.NoBeansQuickFixer"
1360
            markerType="org.eclipse.jst.jee.ejb3.nobeans">
1361
      </markerResolutionGenerator>
1362
   </extension> 
1356
      
1363
      
1357
      
1364
      
1358
      
1365
      
(-)src/org/eclipse/jst/jee/ui/internal/quickfixes/ejb/NoBeansQuickFixer.java (+21 lines)
Added Link Here
1
package org.eclipse.jst.jee.ui.internal.quickfixes.ejb;
2
3
import org.eclipse.core.resources.IMarker;
4
import org.eclipse.core.resources.IProject;
5
import org.eclipse.ui.IMarkerResolution;
6
import org.eclipse.ui.IMarkerResolutionGenerator2;
7
8
public class NoBeansQuickFixer implements IMarkerResolutionGenerator2  {
9
10
	public IMarkerResolution[] getResolutions(IMarker marker) {
11
        return new IMarkerResolution[] {
12
        		new CreateBeanQuickFix(CreateBeanQuickFix.BEAN_TYPE.SESSION, (IProject)marker.getResource()),
13
        		new CreateBeanQuickFix(CreateBeanQuickFix.BEAN_TYPE.MESSAGE_DRIVEN, (IProject)marker.getResource())
14
        };
15
    }
16
17
	public boolean hasResolutions(IMarker marker) {
18
		return true;
19
	}
20
	
21
}
(-)src/org/eclipse/jst/jee/ui/internal/quickfixes/ejb/messages.properties (+3 lines)
Added Link Here
1
CREATE_NEW_SESSION_BEAN=Create new session bean
2
CREATE_NEW_MDB=Create new message driven bean
3
(-)src/org/eclipse/jst/jee/ui/internal/quickfixes/ejb/Messages.java (+31 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2003, 2006 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     IBM Corporation - initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.jst.jee.ui.internal.quickfixes.ejb;
12
13
import org.eclipse.osgi.util.NLS;
14
15
16
public class Messages extends NLS {
17
18
	private static final String BUNDLE_NAME = "org.eclipse.jst.jee.ui.internal.quickfixes.ejb.messages"; //$NON-NLS-1$
19
	
20
21
	private Messages() {
22
		// Do not instantiate
23
	}
24
	
25
	public static String CREATE_NEW_SESSION_BEAN;
26
	public static String CREATE_NEW_MDB;
27
28
	static {
29
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
30
	}
31
}
(-)src/org/eclipse/jst/jee/ui/internal/quickfixes/ejb/CreateBeanQuickFix.java (+57 lines)
Added Link Here
1
package org.eclipse.jst.jee.ui.internal.quickfixes.ejb;
2
3
import org.eclipse.core.resources.IMarker;
4
import org.eclipse.core.resources.IProject;
5
import org.eclipse.jface.viewers.StructuredSelection;
6
import org.eclipse.jface.wizard.WizardDialog;
7
import org.eclipse.jst.ejb.ui.internal.wizard.AddMessageDrivenBeanWizard;
8
import org.eclipse.jst.ejb.ui.internal.wizard.AddSessionBeanWizard;
9
import org.eclipse.swt.widgets.Display;
10
import org.eclipse.ui.IMarkerResolution;
11
import org.eclipse.ui.IWorkbenchWizard;
12
import org.eclipse.ui.PlatformUI;
13
import org.eclipse.wst.common.componentcore.internal.operation.IArtifactEditOperationDataModelProperties;
14
import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizard;
15
16
@SuppressWarnings("restriction")
17
public class CreateBeanQuickFix implements IMarkerResolution {
18
	
19
	public static enum BEAN_TYPE {
20
		SESSION,
21
		MESSAGE_DRIVEN
22
	}
23
	
24
	private BEAN_TYPE beanType;
25
	private IProject project;
26
27
	public CreateBeanQuickFix(BEAN_TYPE bType, IProject proj) {
28
		this.beanType = bType;
29
		this.project = proj;
30
	}
31
	
32
	public String getLabel() {
33
		return (beanType == BEAN_TYPE.SESSION) ? 
34
					Messages.CREATE_NEW_SESSION_BEAN : 
35
					Messages.CREATE_NEW_MDB; 
36
	}
37
38
	public void run(IMarker marker) {
39
		Runnable r = new Runnable() {
40
			public void run() {
41
				openNewBeanWizard();
42
			}
43
		};
44
		Display.getDefault().asyncExec(r);
45
	}
46
47
	private void openNewBeanWizard() {
48
		DataModelWizard wizard = (beanType == BEAN_TYPE.SESSION) ? 
49
					new AddSessionBeanWizard() : 
50
					new AddMessageDrivenBeanWizard();
51
		wizard.getDataModel().setStringProperty(IArtifactEditOperationDataModelProperties.COMPONENT_NAME, project.getName());
52
		((IWorkbenchWizard) wizard).init(PlatformUI.getWorkbench(), new StructuredSelection(project));
53
		WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard);
54
		dialog.open();	
55
	}	
56
	
57
}
(-)plugin.properties (-1 / +4 lines)
Lines 10-13 Link Here
10
###############################################################################
10
###############################################################################
11
# properties file for org.eclipse.jst.jee.ejb
11
# properties file for org.eclipse.jst.jee.ejb
12
Bundle-Name.0 = JEE Ejb Plug-in
12
Bundle-Name.0 = JEE Ejb Plug-in
13
Bundle-Vendor.0 = Eclipse.org
13
Bundle-Vendor.0 = Eclipse.org
14
org.eclipse.jst.jee.ejb3.nobeans.marker.type = EJB Problem
15
org.eclipse.jst.jee.ejb3.validator.name = EJB 3.x Validator
16
org.eclipse.jst.jee.ejb3.nobeansmessage.label = No enterprise bean in the EJB project
(-)plugin.xml (-1 / +34 lines)
Lines 13-17 Link Here
13
13
14
      		<facet id="jst.ejb" versions="3.0,3.1"/>
14
      		<facet id="jst.ejb" versions="3.0,3.1"/>
15
      	</provider>
15
      	</provider>
16
   </extension>
16
   </extension>      
17
   <extension
18
         id="org.eclipse.jst.jee.ejb3.validator"
19
         name="%org.eclipse.jst.jee.ejb3.validator.name"
20
         point="org.eclipse.wst.validation.validatorV2">
21
      <validator
22
            build="true"
23
            class="org.eclipse.jst.jee.ejb.validation.internal.UIEJB3Validator"
24
            manual="true"
25
            markerId="org.eclipse.jst.jee.ejb3.nobeans">
26
         <include>
27
            <rules>
28
               <facet
29
                     id="jst.ejb"
30
                     version="3.0,3.1">
31
               </facet>     
32
            </rules>
33
         </include>
34
         <messageCategory
35
               id="org.eclipse.jst.jee.ejb3.nobeansmessage"
36
               label="%org.eclipse.jst.jee.ejb3.nobeansmessage.label"
37
               severity="error">
38
         </messageCategory>
39
      </validator>
40
   </extension>  
41
	<extension
42
            id="org.eclipse.jst.jee.ejb3.nobeans"
43
            name="%org.eclipse.jst.jee.ejb3.nobeans.marker.type"
44
            point="org.eclipse.core.resources.markers">
45
         <super
46
               type="org.eclipse.wst.validation.problemmarker">
47
         </super>
48
	</extension>
49
  
17
</plugin>
50
</plugin>
(-)META-INF/MANIFEST.MF (-1 / +2 lines)
Lines 22-28 Link Here
22
 org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,3.0.0)",
22
 org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,3.0.0)",
23
 org.eclipse.jst.j2ee.ejb;bundle-version="[1.1.0,1.2.0)",
23
 org.eclipse.jst.j2ee.ejb;bundle-version="[1.1.0,1.2.0)",
24
 org.eclipse.wst.common.emf;bundle-version="[1.1.0,2.0.0)",
24
 org.eclipse.wst.common.emf;bundle-version="[1.1.0,2.0.0)",
25
 org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.0,2.0.0)"
25
 org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.0,2.0.0)",
26
 org.eclipse.wst.validation;bundle-version="[1.2.0,2.0.0)"
26
Eclipse-LazyStart: true
27
Eclipse-LazyStart: true
27
Bundle-Localization: plugin
28
Bundle-Localization: plugin
28
Bundle-Vendor: %Bundle-Vendor.0
29
Bundle-Vendor: %Bundle-Vendor.0
(-)ejb/org/eclipse/jst/jee/ejb/validation/internal/Messages.java (+31 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2003, 2006 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     IBM Corporation - initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.jst.jee.ejb.validation.internal;
12
13
import org.eclipse.osgi.util.NLS;
14
15
16
public class Messages extends NLS {
17
18
	private static final String BUNDLE_NAME = "org.eclipse.jst.jee.ejb.validation.internal.messages"; //$NON-NLS-1$
19
	
20
21
	private Messages() {
22
		// Do not instantiate
23
	}
24
	
25
	public static String NO_BEANS_ERROR;
26
	public static String NO_BEANS_ERROR_LOCATION;
27
28
	static {
29
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
30
	}
31
}
(-)ejb/org/eclipse/jst/jee/ejb/validation/internal/UIEJB3Validator.java (+81 lines)
Added Link Here
1
package org.eclipse.jst.jee.ejb.validation.internal;
2
3
import java.text.MessageFormat;
4
5
import org.eclipse.core.resources.IMarker;
6
import org.eclipse.core.resources.IProject;
7
import org.eclipse.core.resources.IResource;
8
import org.eclipse.core.resources.IResourceDelta;
9
import org.eclipse.core.runtime.CoreException;
10
import org.eclipse.core.runtime.IProgressMonitor;
11
import org.eclipse.core.runtime.NullProgressMonitor;
12
import org.eclipse.jst.j2ee.model.ModelProviderManager;
13
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
14
import org.eclipse.jst.javaee.ejb.EJBJar;
15
import org.eclipse.jst.javaee.ejb.EnterpriseBeans;
16
import org.eclipse.jst.jee.ejb.Activator;
17
import org.eclipse.wst.validation.AbstractValidator;
18
import org.eclipse.wst.validation.ValidationEvent;
19
import org.eclipse.wst.validation.ValidationResult;
20
import org.eclipse.wst.validation.ValidationState;
21
import org.eclipse.wst.validation.Validator;
22
import org.eclipse.wst.validation.ValidatorMessage;
23
import org.eclipse.wst.validation.internal.MarkerManager;
24
import org.eclipse.wst.validation.internal.ValManager;
25
import org.eclipse.wst.validation.internal.ValOperation;
26
27
@SuppressWarnings("restriction")
28
public class UIEJB3Validator extends AbstractValidator {
29
30
	public static String ID = "org.eclipse.jst.jee.ejb3.validator"; //$NON-NLS-1$
31
	public static String MARKER_ID_NO_BEANS = "org.eclipse.jst.jee.ejb3.nobeans"; //$NON-NLS-1$
32
		
33
	@Override
34
	public void validationStarting(IProject project, ValidationState state, IProgressMonitor monitor){		
35
		Validator v = ValManager.getDefault().getValidator(UIEJB3Validator.ID, project);
36
		if (project != null) 
37
			ValManager.getDefault().validate(v, new ValOperation(), project, IResourceDelta.NO_CHANGE, new NullProgressMonitor(), null);
38
	}	
39
	
40
	@Override
41
	public ValidationResult validate(IResource resource, int kind, ValidationState state, IProgressMonitor monitor) {
42
		if ((resource == null) || !IProject.class.isInstance(resource))  
43
			return null;
44
		IProject proj = (IProject)resource;
45
		try {
46
			MarkerManager.getDefault().clearMarker(proj, getParent());
47
		} catch (CoreException e) {
48
			Activator.logError(e);
49
		}
50
		if (!JavaEEProjectUtilities.isEJBProject(proj)) 
51
			return null;
52
		EJBJar ejbJar = (EJBJar)ModelProviderManager.getModelProvider(proj).getModelObject();
53
		EnterpriseBeans ebs = ejbJar.getEnterpriseBeans();
54
		if (ebs.getSessionBeans().size() + ebs.getMessageDrivenBeans().size() == 0) {
55
			ValidationResult vRes = new ValidationResult();
56
			ValidatorMessage vMsg = createValidatorMessage(Messages.NO_BEANS_ERROR, proj, IMarker.SEVERITY_ERROR, IMarker.PRIORITY_HIGH); 
57
			vRes.add(vMsg);
58
			return vRes;
59
		}		
60
		return null;
61
	}	
62
	
63
	@Override
64
	public ValidationResult validate(ValidationEvent event, ValidationState state, IProgressMonitor monitor){
65
		IResource res = event.getResource();
66
		return validate(res, 0, state, monitor);
67
	}	
68
	
69
	private static ValidatorMessage createValidatorMessage(String txt, 
70
			  IResource res,
71
			  int severity,
72
			  int priority) {
73
		ValidatorMessage msg = ValidatorMessage.create(txt, res);
74
		msg.setAttribute(IMarker.SEVERITY, severity);
75
		msg.setAttribute(IMarker.PRIORITY, priority);
76
		msg.setAttribute(IMarker.LOCATION, MessageFormat.format(Messages.NO_BEANS_ERROR_LOCATION, new Object[] { res.getName() }));
77
		msg.setType(MARKER_ID_NO_BEANS); 
78
		return msg;
79
	}	
80
	
81
}
(-)ejb/org/eclipse/jst/jee/ejb/validation/internal/messages.properties (+2 lines)
Added Link Here
1
NO_BEANS_ERROR=An EJB module must contain one or more enterprise beans.
2
NO_BEANS_ERROR_LOCATION={0} project

Return to bug 119311