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

Collapse All | Expand All

(-).classpath (+1 lines)
Lines 1-6 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
1
<?xml version="1.0" encoding="UTF-8"?>
2
<classpath>
2
<classpath>
3
	<classpathentry kind="src" path="ejb"/>
3
	<classpathentry kind="src" path="ejb"/>
4
	<classpathentry kind="src" path="ejbvalidator"/>
4
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
5
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
5
	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
6
	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
6
	<classpathentry kind="output" path="bin"/>
7
	<classpathentry kind="output" path="bin"/>
(-)META-INF/MANIFEST.MF (-1 / +6 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.200",
27
 org.eclipse.ui.ide;bundle-version="3.6.0",
28
 org.eclipse.wst.common.frameworks.ui;bundle-version="1.2.0",
29
 org.eclipse.jst.ejb.ui;bundle-version="1.1.500",
30
 org.eclipse.jface;bundle-version="3.6.0"
26
Eclipse-LazyStart: true
31
Eclipse-LazyStart: true
27
Bundle-Localization: plugin
32
Bundle-Localization: plugin
28
Bundle-Vendor: %Bundle-Vendor.0
33
Bundle-Vendor: %Bundle-Vendor.0
(-)ejb/org/eclipse/jst/jee/model/internal/Messages.java (-1 / +8 lines)
Lines 13-19 Link Here
13
import java.util.MissingResourceException;
13
import java.util.MissingResourceException;
14
import java.util.ResourceBundle;
14
import java.util.ResourceBundle;
15
15
16
public class Messages {
16
import org.eclipse.osgi.util.NLS;
17
18
public class Messages extends NLS {
17
	private static final String BUNDLE_NAME = "org.eclipse.jst.jee.model.internal.messages"; //$NON-NLS-1$
19
	private static final String BUNDLE_NAME = "org.eclipse.jst.jee.model.internal.messages"; //$NON-NLS-1$
18
20
19
	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
21
	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
Lines 28-31 Link Here
28
			return '!' + key + '!';
30
			return '!' + key + '!';
29
		}
31
		}
30
	}
32
	}
33
	
34
	public static final String UIEJB3Validator_NoBeansErrorMessage = "UIEJB3Validator_NoBeansErrorMessage";  //$NON-NLS-1$
35
	public static final String UIEJB3Validator_NoBeansErrorLocation = "UIEJB3Validator_NoBeansErrorLocation";  //$NON-NLS-1$
36
	public static final String CreateBeanQuickFix_CreateNewSessionBean = "CreateBeanQuickFix_CreateNewSessionBean"; //$NON-NLS-1$
37
	public static final String CreateBeanQuickFix_CreateNewMDB = "CreateBeanQuickFix_CreateNewMDB"; //$NON-NLS-1$
31
}
38
}
(-)ejb/org/eclipse/jst/jee/model/internal/messages.properties (+5 lines)
Line 1 Link Here
1
EJBAnnotationReader.DisposeEjbAnnotationReader=Dispose ejb annotation reader
1
EJBAnnotationReader.DisposeEjbAnnotationReader=Dispose ejb annotation reader
2
UIEJB3Validator_NoBeansErrorMessage=An EJB module must contain one or more EJBs.
3
UIEJB3Validator_NoBeansErrorLocation={0} project
4
CreateBeanQuickFix_CreateNewSessionBean=Create new session bean
5
CreateBeanQuickFix_CreateNewMDB=Create new message driven bean
6
(-)ejbvalidator/org/eclipse/jst/jee/internal/ejb/workbench/validation/CreateBeanQuickFix.java (+58 lines)
Added Link Here
1
package org.eclipse.jst.jee.internal.ejb.workbench.validation;
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.jst.jee.model.internal.Messages;
10
import org.eclipse.swt.widgets.Display;
11
import org.eclipse.ui.IMarkerResolution;
12
import org.eclipse.ui.IWorkbenchWizard;
13
import org.eclipse.ui.PlatformUI;
14
import org.eclipse.wst.common.componentcore.internal.operation.IArtifactEditOperationDataModelProperties;
15
import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizard;
16
17
@SuppressWarnings("restriction")
18
public class CreateBeanQuickFix implements IMarkerResolution {
19
	
20
	public static enum BEAN_TYPE {
21
		SESSION,
22
		MESSAGE_DRIVEN
23
	}
24
	
25
	private BEAN_TYPE beanType;
26
	private IProject project;
27
28
	public CreateBeanQuickFix(BEAN_TYPE bType, IProject proj) {
29
		this.beanType = bType;
30
		this.project = proj;
31
	}
32
	
33
	public String getLabel() {
34
		return Messages.getString((beanType == BEAN_TYPE.SESSION) ? 
35
					Messages.CreateBeanQuickFix_CreateNewSessionBean : 
36
					Messages.CreateBeanQuickFix_CreateNewMDB); 
37
	}
38
39
	public void run(IMarker marker) {
40
		Runnable r = new Runnable() {
41
			public void run() {
42
				openNewBeanWizard();
43
			}
44
		};
45
		Display.getDefault().asyncExec(r);
46
	}
47
48
	private void openNewBeanWizard() {
49
		DataModelWizard wizard = (beanType == BEAN_TYPE.SESSION) ? 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(),
54
					wizard);
55
		dialog.open();	
56
	}	
57
	
58
}
(-)ejbvalidator/org/eclipse/jst/jee/internal/ejb/workbench/validation/NoBeansQuickFixer.java (+21 lines)
Added Link Here
1
package org.eclipse.jst.jee.internal.ejb.workbench.validation;
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
}
(-)ejbvalidator/org/eclipse/jst/jee/internal/ejb/workbench/validation/UIEJB3Validator.java (+62 lines)
Added Link Here
1
package org.eclipse.jst.jee.internal.ejb.workbench.validation;
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.runtime.IProgressMonitor;
9
import org.eclipse.jst.j2ee.model.ModelProviderManager;
10
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
11
import org.eclipse.jst.javaee.ejb.EJBJar;
12
import org.eclipse.jst.javaee.ejb.EnterpriseBeans;
13
import org.eclipse.jst.jee.model.internal.Messages;
14
import org.eclipse.wst.validation.AbstractValidator;
15
import org.eclipse.wst.validation.ValidationEvent;
16
import org.eclipse.wst.validation.ValidationResult;
17
import org.eclipse.wst.validation.ValidationState;
18
import org.eclipse.wst.validation.ValidatorMessage;
19
20
public class UIEJB3Validator extends AbstractValidator {
21
22
	public static String MARKER_ID_NO_BEANS = "org.eclipse.jst.jee.ejb3.nobeans"; //$NON-NLS-1$
23
		
24
	@Override
25
	public ValidationResult validate(IResource resource, int kind, ValidationState state, IProgressMonitor monitor) {
26
		if ((resource == null) || !IProject.class.isInstance(resource))  
27
			return null;
28
		IProject proj = (IProject)resource;
29
		if (!JavaEEProjectUtilities.isEJBProject(proj)) 
30
			return null;
31
		EJBJar ejbJar = (EJBJar)ModelProviderManager.getModelProvider(proj).getModelObject();
32
		EnterpriseBeans ebs = ejbJar.getEnterpriseBeans();
33
		if (ebs.getSessionBeans().size() + ebs.getMessageDrivenBeans().size() == 0) {
34
			ValidationResult vRes = new ValidationResult();
35
			ValidatorMessage vMsg = createValidatorMessage(Messages.getString(Messages.UIEJB3Validator_NoBeansErrorMessage), proj, IMarker.SEVERITY_ERROR, IMarker.PRIORITY_HIGH); 
36
			vRes.add(vMsg);
37
			return vRes;
38
		}		
39
		return null;
40
	}	
41
	
42
	@Override
43
	public ValidationResult validate(ValidationEvent event, ValidationState state, IProgressMonitor monitor){
44
		IResource res = event.getResource();
45
		return validate(res, 0, state, monitor);
46
	}	
47
	
48
	static private ValidatorMessage createValidatorMessage(String txt, 
49
			  IResource res,
50
			  int severity,
51
			  int priority) {
52
		ValidatorMessage msg = ValidatorMessage.create(txt, res);
53
		msg.setAttribute(IMarker.SEVERITY, severity);
54
		msg.setAttribute(IMarker.PRIORITY, priority);
55
		msg.setAttribute(IMarker.MARKER, IMarker.BOOKMARK);
56
		msg.setAttribute(IMarker.LOCATION, MessageFormat.format(Messages.getString(Messages.UIEJB3Validator_NoBeansErrorLocation),
57
				new Object[] {res.getName()}));
58
		msg.setType(MARKER_ID_NO_BEANS); 
59
		return msg;
60
	}	
61
	
62
}
(-)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 = Invalid EJB project
15
org.eclipse.jst.jee.ejb3.validator.name = EJB 3.x Validator
16
org.eclipse.jst.jee.ejb3.nobeansmessage.label = No beans in the EJB project
(-)plugin.xml (+40 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>      
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.internal.ejb.workbench.validation.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
         <group id="org.eclipse.wst.sse.core.structuredModelGroup"/>         
35
         <messageCategory
36
               id="org.eclipse.jst.jee.ejb3.nobeansmessage"
37
               label="%org.eclipse.jst.jee.ejb3.nobeansmessage.label"
38
               severity="error">
39
         </messageCategory>
40
      </validator>
16
   </extension>
41
   </extension>
42
   <extension point="org.eclipse.ui.ide.markerResolution">
43
      <markerResolutionGenerator
44
            class="org.eclipse.jst.jee.internal.ejb.workbench.validation.NoBeansQuickFixer"
45
            markerType="org.eclipse.jst.jee.ejb3.nobeans">
46
      </markerResolutionGenerator>
47
   </extension>   
48
	<extension
49
            id="org.eclipse.jst.jee.ejb3.nobeans"
50
            name="%org.eclipse.jst.jee.ejb3.nobeans.marker.type"
51
            point="org.eclipse.core.resources.markers">
52
         <super
53
               type="org.eclipse.wst.validation.problemmarker">
54
         </super>
55
	</extension>
56
  
17
</plugin>
57
</plugin>

Return to bug 119311