1 2 Previous Next 16 Replies Latest reply on Mar 22, 2011 3:50 AM by Max Rydahl Andersen

    My issues (or missunderstandings) with Jboss Tools

    Tim Evers Master

      Hey everybody.

       

      Let me preface this by saying that my complaints may be completely unfounded and if anyone can help me solve my problems I will be most greatful.

       

      So, let me describe the application I'm working on.

       

      We have 2 tier design with Hibernate and Spring being the basis of our service layer and Seam/JSF being the basis of our web layer. Obviously there are other technologies/libs involved but...that's they are the foundations.

       

      BUT!!!! (And this seems to be where jboss tools and to a certain extent eclipse itself falls to the ground and becomes a very annoying tool) I am not a 1 man team. Not only am I not alone, Eclipse is NOT the only IDE being used. Infact the structure of the app was designed in InteliJ (IDEA).

       

      So. let me explain our structure.

       

      root

           -> code

           -> workspace //The eclipse workspace for my project is here outside my codebase

       

      Inside the code folder

       

      code

           -> gekko-build //Yeah I had to use linked resources to make this work cause ecipse is stupid about only compiling inside the project space

                               -> gekko-services //All our .java files from ../gekko/gekko-services (see description below) compile there .class files to here

                               -> gekko-web       //Same as above except all the .class files from the compiled ../gekko/gekko-web/*.java files

           -> gekko

                          -> gekko-services //All our Hibernate and Spring stuff are here. Entities, Spring Components and Services

                          -> gekko-web

                                              -> config

                                                           -> seam/WEB-INF/classes

                                                           -> spring/WEB-INF/classes

                                                           -> web/WEB-INF  //Contains things like web.xml and other files that will deploy into the war WEB-INF directory

                                                                                   ->tags 

                                              -> prod-src

                                                              -> java //This is where all our Seam beans are.

                                                              -> resources //.properties files for messages etc

                                                              -> web //All our .xhtml files are here

       

      So, that's a fairly accurate view of our folder structure.

       

      So, let's try getting jBoss tools to play nice with this project... Older versions of the jboss tools worked OK. They had issues but auto complete in EL expressions and other features that really were quite helpful worked. There was a lot of stuff that didn't but I could live with it. As new versions came out it would take me longer and longer to get them working with our structure up till now. Now I can't get it working at all.

       

      So, I do the Add Seam Support

      Seam support - checked

      Seam Runtime - created a new runtime to the directory I have in a sibling project...once again WHY!!! can't I put in a project relative path *SIGH* (I want to share these settings to others in my team...why make them hardcoded directories?)

      Deployment - WAR (I really don't want you to care about how I deploy, I just want you to allow me to have the features of EL expression auto complete etc)

      View Folder - Well, I tried blank and /gekko/gekko-web/web but no idea if it is doing anything for me

      Model - blank....We dont use extended persistence context Spring is our transaction manager.

      Action/Form/Conv - gekko/gekko-web/prod-src/java - But....the Seam beans are not detected *sigh*

      package - gekko.web

      Test - left unchecked

       

      So, click apply and nope not working.

       

      Now, I've played around a bit with this and I notice that the Seam buildier is not appearing in my list of builders. *sigh*

       

      So, I go check out the project Facets. Seam is not checked...if I try check it it tells me I have constraints not met. OK

       

      But....all the required constraints now try to enforce a structure on my app. WTH? It should NOT matter how my uncompiled app is structured.

       

      So, not to be out done I add the seam builder to my .project file manually. BOOM! All my Seam Beans now appear in the Seam Component view and auto complete in my EL expressions now shows my Seam beans. OK, making progress.

       

      But, I don't get any of the features that I was hoping to get. Thinks like finding all usages of a method in my xhtml.

       

       

      Anyway, I've had my rant. I'm frustrated. Why is it so easy for developers using InteliJ to just tell the facet here is the web.xml, here is the faces-config.xml and it just works for them. WHY does eclipse / jboss tools/ whatever other plugin jboss tools relies go bananas if I don't have my project set out like it wants it.

       

      Has anyone had success in getting all the features of jboss tools to work on a project where the layout is not 'standard'.

        • 1. My issues (or missunderstandings) with Jboss Tools
          Max Rydahl Andersen Master

          Seems you bumped into limitations in eclipse and some limitations in jboss tools I believe shouldn't be there either - so lets try figure which are things we can fix

           

          I'm not completely following your structure since you show all that makes sense but talks about build folders being *outside* your own project structure ?

           

          The Seam features should for sure not *enforce* you to add things to your project if they do then that is wrong and either we have a bug or you simply should use the preferences and not the facets. Depends on how you create the projects.

           

          Could you try and isolate your problems into individual issues then we can tackle them.

           

          "Seam Runtime - created a new runtime to the directory I have in a sibling project...once again WHY!!!" - I don't understand what you are seeing here. It should allow you to select the seam runtimes you set up ?

           

          "Model - blank....We dont use extended persistence context Spring is our transaction manager." - Not sure why the usage of persistence context affects this It's agnostic where Seam Entities goes.

           

          "But....all the required constraints now try to enforce a structure on my app. WTH? It should NOT matter how my uncompiled app is structured."

           

          The Seam facet is not required/won't work if you don't use a Faceted project - but it should be possible to enable all the fetures without Facets - you might though not get all features since some metadata is not available but to know if that is the case for you we need to try and isolate it better.

           

          Could you provide a skeleton project layout of what you want to setup - then we can see how to fix it better!

          • 2. My issues (or missunderstandings) with Jboss Tools
            Alexey Kazakov Master

            When you enable Seam support via Project Properties page then Seam builder/nature should be added to the project. It looks like a bug if it is not. Do you have any errors in Eclipse log?

            • 3. My issues (or missunderstandings) with Jboss Tools
              Alexey Kazakov Master


              So, not to be out done I add the seam builder to my .project file manually. BOOM! All my Seam Beans now appear in the Seam Component view and auto complete in my EL expressions now shows my Seam beans. OK, making progress.

               

              But, I don't get any of the features that I was hoping to get. Thinks like finding all usages of a method in my xhtml.

              You have to add the following builders, natures to .project to enable all the features you are interested:

               

              <buildSpec>

                            ...

                                  <buildCommand>

                    <name>org.jboss.tools.jst.web.kb.kbbuilder</name>

                    <arguments>

                    </arguments>

                                  </buildCommand>

                <buildCommand>

                    <name>org.jboss.tools.seam.core.seambuilder</name>

                    <arguments>

                    </arguments>

                                  </buildCommand>

              </buildSpec>

              <natures>

                 ...

                                  <nature>org.jboss.tools.jst.web.kb.kbnature</nature>

                                  <nature>org.jboss.tools.seam.core.seamnature</nature>

              </natures>

               

              But again, these builders/natures should be added if you enable Projest Properties->Seam Support.

              1 of 1 people found this helpful
              • 4. My issues (or missunderstandings) with Jboss Tools
                Tim Evers Master

                Hi Max and Alexey,

                 

                Thanks for your replies. I'm sorry I went on a bit of a rant...I was getting really frustrated.

                 

                We just deployed our system live this past week hence my delay in responding.

                 

                So, I'll try address the issues 1 at a time and see if we can make progress.

                 

                My goal here is to get to the point where I can use the find usages feature on a method in a Seam bean and have my xhtml EL expressions appear in the list of results. This is the most important feature for me to get working at the moment.

                 

                First. Add Seam Support

                     I am doing this by right-clicking my project -> configure -> Add Seam Support

                 

                     Example 1:

                     Checkbox checked. Click Apply. (So far I have not filled in a Seam runtime, just checked the box and clicked apply)

                 

                     Expected outcome: Seam Builder added to my .project

                     Actual outcome: .project is unmodified and the Seam builder does not run (I'll add example later for what happens when I add a Seam Runtime)

                 

                     Example 2:

                     Checkbox - checked

                     Add new Seam Runtime (See my details below about my issue with that)

                     Main Seam Project - gekko (my project name)

                     Deploy type - WAR

                     View Folder - /gekko/gekko-web/prod-src/web

                     Model->Source Folder - BLANK

                     Action/Form/Conversation->Source Folder - /gekko/gekko-web/prod-src/java

                                                          ->Package - gekko

                     Create Test - NOT checked

                 

                     Expected outcome: Seam builder added to .project

                     Actual outcome: Seam builder added to .project - SUCCESS (although I'm unsure about whether it will work on other machines yet).

                 

                Second: New Seam Runtime

                     The project is worked on by multiple people so, if I add a Seam runtime I want the settings to work on everyone's machine.

                     The Home Folder location is a hardcoded directory. If a directory relative to the project could be used then the settings become more sharable.

                 

                Third: Add JSF Capabilities

                     Project Location Window

                          web.xml Location is a hardcoded location. This should be a project relative directory.

                               value - X:/afolder/path/gekko/gekko-web/config/web/WEB-INF/web.xml

                     Project Folders

                          Once again all non relative paths.

                               Web Root - X:/afolder/path/gekko/gekko-web

                               Source Folder - X:/afolder/path/gekko/gekko-web/prod-src/java

                               Classes Folder - X:/afolder/path/gekko-build/gekko-web/classes/prod

                               Lib Folder - BLANK (really not sure what I'm supposed to put here)

                               Add Libraries - NOT checked

                               Servlet Version - 2.5

                               Runtime - Apache Tomcat v6.0 (created runtime)

                 

                Now after doing all this the builders and natures in my .project file now look like this. (Ignore my external builder that just copies some config files for me).

                 

                        <buildCommand>

                            <name>org.eclipse.wst.common.project.facet.core.builder</name>

                            <arguments>

                            </arguments>

                        </buildCommand>

                        <buildCommand>

                            <name>org.eclipse.wst.validation.validationbuilder</name>

                            <arguments>

                            </arguments>

                        </buildCommand>

                        <buildCommand>

                            <name>org.eclipse.jdt.core.javabuilder</name>

                            <arguments>

                            </arguments>

                        </buildCommand>

                        <buildCommand>

                            <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>

                            <triggers>auto,full,incremental,</triggers>

                            <arguments>

                                <dictionary>

                                    <key>LaunchConfigHandle</key>

                                    <value>&lt;project&gt;/.externalToolBuilders/CopyConfig.launch</value>

                                </dictionary>

                            </arguments>

                        </buildCommand>

                        <buildCommand>

                            <name>org.jboss.tools.seam.core.seambuilder</name>

                            <arguments>

                            </arguments>

                        </buildCommand>

                 

                    <natures>

                        <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>

                        <nature>org.jboss.ide.eclipse.archives.core.archivesNature</nature>

                        <nature>org.eclipse.jdt.core.javanature</nature>

                        <nature>com.atlassw.tools.eclipse.checkstyle.CheckstyleNature</nature>

                        <nature>org.jboss.tools.jst.web.kb.kbnature</nature>

                        <nature>org.jboss.tools.seam.core.seamnature</nature>

                        <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>

                        <nature>org.jboss.tools.jsf.jsfnature</nature>

                        <nature>org.eclipse.wst.common.project.facet.core.nature</nature>

                    </natures>

                 

                So after doing all this I expect to be able to go to any of my Seam beans and do a find usages on a method and see all the times a method has been called in my xhtml pages via EL expressions.

                 

                So, I select a seam bean method and press Ctrl+Shift+G and no results. *sigh*

                Go to the Search menu and press Seam References and BOOM got a result! WTH?

                Do a refactor and it changes my .xhtml WOOHOO!! I'm getting excited.

                Do another refactor to change it back to the old value and it only refactors 1 of the 2 locations....not so good now.

                Manually go fix up these two spots and do a search for references again and now I get nothing.

                I force a rebuild of my project and now the search is working again. Not sure what the go is there but...hey. it's working now!

                 

                So it appears in my efforts to explain my problem that it has started working for me. And although I complained about all the paths being non relative I can't find anywhere in my settings where the hardcoded values have been used. So, maybe its not an issue. The setup of all this did create a brand new WEB-INF directory in the root of my gekko-web directory but deleting it appears to solve the problem.

                 

                I'm a tad confused now but, it'll do.

                 

                Thanks guys.

                • 5. My issues (or missunderstandings) with Jboss Tools
                  Alexey Kazakov Master

                  Tim, all the paths in Seam setting page are relatives. And Seam projects use names of Seam runtimes (not paths). So you can share projects and don't depend on local file systems. But yes, you have to configure Seam runtimes for particular workspaces which can be used by Seam projects. It's a common way to set up runtimes in Eclipse: JREs, Servers, etc. You cannot use a relative path because the runtime may be outside workspace.

                  In JSF import/configure project page you are asked to use absolute paths but actually only relative paths will be stored in project settings, so you can share JSF projects too without any need to re-configure the project in another workspace.

                   

                  Here are some more questions:

                  1. Please check if the following builder is in your .project: <name>org.jboss.tools.jst.web.kb.kbbuilder</name>. Do you have such a builder in your .project?

                  2. Any errors in Error log?

                  3. So, finally does it work for you or code completion/refacotring/search doesn't work from time to time?

                  • 6. My issues (or missunderstandings) with Jboss Tools
                    Tim Evers Master
                    1. Please check if the following builder is in your .project: <name>org.jboss.tools.jst.web.kb.kbbuilder</name>. Do you have such a builder in your .project?

                    No, the builder is not in the .project file. What does this builder do? What process should put it in there?

                     

                     

                    2. Any errors in Error log?

                        

                    Many. Here are some of them. (Some of them were just file not found exceptions which appear to have been caused when I fiddled with a classpath setting while banging my head against a wall )

                     

                    !ENTRY org.jboss.tools.common.model 2 0 2011-03-18 17:24:46.160

                    !MESSAGE Project P/gekko has corrupted nature: org.jboss.tools.jsf.jsfnature

                     

                    !ENTRY org.jboss.tools.common.model 2 0 2011-03-18 17:25:03.094

                    !MESSAGE Project P/gekko has corrupted nature: org.jboss.tools.jsf.jsfnature

                     

                    !ENTRY org.jboss.tools.common.model 2 0 2011-03-18 17:25:34.620

                    !MESSAGE Project P/gekko has corrupted nature: org.jboss.tools.jsf.jsfnature

                     

                    !ENTRY org.eclipse.wst.common.project.facet.core 4 0 2011-03-18 17:28:04.137

                    !MESSAGE Project facet jbt.bpel.facet.core has not been defined. It is used in plugin org.jboss.ide.eclipse.as.core.

                     

                    !ENTRY org.eclipse.wst.common.project.facet.core 4 0 2011-03-18 17:29:53.006

                    !MESSAGE Failed while installing Dynamic Web Module 2.5.

                    !STACK 0

                    java.lang.NullPointerException

                        at org.eclipse.jst.jee.model.internal.WebAnnotationReader.analyzeCompilationUnit(WebAnnotationReader.java:144)

                        at org.eclipse.jst.jee.model.internal.WebAnnotationReader.loadModel(WebAnnotationReader.java:99)

                        at org.eclipse.jst.jee.model.internal.common.AbstractAnnotationModelProvider.getConcreteModel(AbstractAnnotationModelProvider.java:106)

                        at org.eclipse.jst.jee.model.internal.common.AbstractAnnotationModelProvider.getModelObject(AbstractAnnotationModelProvider.java:122)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.loadProviders(AbstractMergedModelProvider.java:265)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.access$2(AbstractMergedModelProvider.java:255)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider$LoadModelsWorkspaceRunnable.run(AbstractMergedModelProvider.java:278)

                        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.loadModel(AbstractMergedModelProvider.java:249)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.getMergedModel(AbstractMergedModelProvider.java:219)

                        at org.eclipse.jst.jee.model.internal.Web25MergedModelProvider.modify(Web25MergedModelProvider.java:80)

                        at org.eclipse.jst.j2ee.web.project.facet.WebFacetInstallDelegate.populateDefaultContent(WebFacetInstallDelegate.java:283)

                        at org.eclipse.jst.j2ee.web.project.facet.WebFacetInstallDelegate.createWeb25DeploymentDescriptor(WebFacetInstallDelegate.java:246)

                        at org.eclipse.jst.j2ee.web.project.facet.WebFacetInstallDelegate.execute(WebFacetInstallDelegate.java:117)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.callDelegate(FacetedProject.java:1478)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.modifyInternal(FacetedProject.java:442)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.mergeChangesInternal(FacetedProject.java:1182)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.access$2(FacetedProject.java:1118)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject$1.run(FacetedProject.java:325)

                        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.modify(FacetedProject.java:340)

                        at org.eclipse.wst.common.componentcore.internal.operation.FacetProjectCreationOperation.execute(FacetProjectCreationOperation.java:83)

                        at org.jboss.tools.jst.web.ui.operation.WebNatureOperation.createWTPNature2(WebNatureOperation.java:482)

                        at org.jboss.tools.jst.web.ui.operation.WebNatureOperation.run(WebNatureOperation.java:246)

                        at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:69)

                        at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)

                        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)

                        at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)

                        at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)

                        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)

                        at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:1008)

                        at org.jboss.tools.jst.web.ui.wizards.project.ImportWebProjectWizard.performFinish(ImportWebProjectWizard.java:91)

                        at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:811)

                        at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:430)

                        at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)

                        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)

                        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

                        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

                        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)

                        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)

                        at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)

                        at org.eclipse.jface.window.Window.open(Window.java:801)

                        at org.jboss.tools.common.model.ui.action.AddNatureActionDelegate.doRun(AddNatureActionDelegate.java:60)

                        at org.jboss.tools.common.model.ui.action.AddNatureActionDelegate.run(AddNatureActionDelegate.java:49)

                        at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)

                        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)

                        at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)

                        at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)

                        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

                        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

                        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)

                        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)

                        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)

                        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)

                        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)

                        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)

                        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

                        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)

                        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

                        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)

                        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

                        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

                        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

                        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)

                        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                        at java.lang.reflect.Method.invoke(Method.java:597)

                        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)

                        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)

                        at org.eclipse.equinox.launcher.Main.run(Main.java:1408)

                     

                    !ENTRY org.jboss.tools.jst.web.ui 4 0 2011-03-18 17:29:53.006

                    !MESSAGE Failed while installing Dynamic Web Module 2.5.

                    !STACK 0

                    org.eclipse.core.commands.ExecutionException: Failed while installing Dynamic Web Module 2.5.

                        at org.eclipse.wst.common.componentcore.internal.operation.FacetProjectCreationOperation.execute(FacetProjectCreationOperation.java:110)

                        at org.jboss.tools.jst.web.ui.operation.WebNatureOperation.createWTPNature2(WebNatureOperation.java:482)

                        at org.jboss.tools.jst.web.ui.operation.WebNatureOperation.run(WebNatureOperation.java:246)

                        at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:69)

                        at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)

                        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)

                        at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)

                        at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)

                        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)

                        at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:1008)

                        at org.jboss.tools.jst.web.ui.wizards.project.ImportWebProjectWizard.performFinish(ImportWebProjectWizard.java:91)

                        at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:811)

                        at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:430)

                        at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)

                        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)

                        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

                        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

                        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)

                        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)

                        at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)

                        at org.eclipse.jface.window.Window.open(Window.java:801)

                        at org.jboss.tools.common.model.ui.action.AddNatureActionDelegate.doRun(AddNatureActionDelegate.java:60)

                        at org.jboss.tools.common.model.ui.action.AddNatureActionDelegate.run(AddNatureActionDelegate.java:49)

                        at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)

                        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)

                        at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)

                        at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)

                        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

                        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

                        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)

                        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)

                        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)

                        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)

                        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)

                        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)

                        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

                        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)

                        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

                        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)

                        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

                        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

                        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

                        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)

                        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                        at java.lang.reflect.Method.invoke(Method.java:597)

                        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)

                        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)

                        at org.eclipse.equinox.launcher.Main.run(Main.java:1408)

                    Caused by: org.eclipse.wst.common.project.facet.core.FacetedProjectFrameworkException: Failed while installing Dynamic Web Module 2.5.

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.callDelegate(FacetedProject.java:1508)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.modifyInternal(FacetedProject.java:442)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.mergeChangesInternal(FacetedProject.java:1182)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.access$2(FacetedProject.java:1118)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject$1.run(FacetedProject.java:325)

                        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.modify(FacetedProject.java:340)

                        at org.eclipse.wst.common.componentcore.internal.operation.FacetProjectCreationOperation.execute(FacetProjectCreationOperation.java:83)

                        ... 50 more

                    Caused by: java.lang.NullPointerException

                        at org.eclipse.jst.jee.model.internal.WebAnnotationReader.analyzeCompilationUnit(WebAnnotationReader.java:144)

                        at org.eclipse.jst.jee.model.internal.WebAnnotationReader.loadModel(WebAnnotationReader.java:99)

                        at org.eclipse.jst.jee.model.internal.common.AbstractAnnotationModelProvider.getConcreteModel(AbstractAnnotationModelProvider.java:106)

                        at org.eclipse.jst.jee.model.internal.common.AbstractAnnotationModelProvider.getModelObject(AbstractAnnotationModelProvider.java:122)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.loadProviders(AbstractMergedModelProvider.java:265)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.access$2(AbstractMergedModelProvider.java:255)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider$LoadModelsWorkspaceRunnable.run(AbstractMergedModelProvider.java:278)

                        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.loadModel(AbstractMergedModelProvider.java:249)

                        at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.getMergedModel(AbstractMergedModelProvider.java:219)

                        at org.eclipse.jst.jee.model.internal.Web25MergedModelProvider.modify(Web25MergedModelProvider.java:80)

                        at org.eclipse.jst.j2ee.web.project.facet.WebFacetInstallDelegate.populateDefaultContent(WebFacetInstallDelegate.java:283)

                        at org.eclipse.jst.j2ee.web.project.facet.WebFacetInstallDelegate.createWeb25DeploymentDescriptor(WebFacetInstallDelegate.java:246)

                        at org.eclipse.jst.j2ee.web.project.facet.WebFacetInstallDelegate.execute(WebFacetInstallDelegate.java:117)

                        at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.callDelegate(FacetedProject.java:1478)

                        ... 57 more

                     

                     

                    !ENTRY org.jboss.tools.common.model 2 0 2011-03-18 17:33:37.572

                    !MESSAGE Project P/gekko has corrupted nature: org.jboss.tools.jsf.jsfnature

                     

                    !ENTRY org.jboss.tools.common.model 2 0 2011-03-18 17:33:38.884

                    !MESSAGE Project P/gekko has corrupted nature: org.jboss.tools.jsf.jsfnature

                     

                     

                    3. So, finally does it work for you or code completion/refacotring/search doesn't work from time to time?

                    I can't give a final answer to this question yet. Friday it appeared to be inconsistent at times. But after rebooting eclipse and a full clean rebuild of the project it seemed to stabalise. I'll keep an eye on this and let you know if I have problems.

                    • 7. My issues (or missunderstandings) with Jboss Tools
                      Tim Evers Master

                      Appart from my initial issues which may end up being an "insert new user" problem, I really want to commend those involved in the Jboss Tools development. The upgrade (now that it appears to be working) has improved dramatically compared to the older version I was using.

                       

                      It is much much faster. (I actually ended up turning off the Seam builder in the old version due to the fact it was taking up to almost a minute each build, now I barely notice it happen )

                       

                      My custom tags auto complete works without me having to hack some xml file buried somewhere in the plugins directory! This is fantastic. All I had to do was setup my xml catalog and boom it worked.

                       

                      So, a big thanks to all involved. This upgrade has certainly addressed a lot of my concerns.

                       

                       

                      Just something to mention about the original topic.

                       

                      I was having issues opening my .xhtml files. Everytime I opened one it would ask me if I wanted to add JSF support to the project. I would click yes, click apply (as the details were already filled in) and then it *appeared* to work and go into my .xhtml file. However this process was happening every time I attempted to open a .xhtml file. I eventually got tired of it and just copied the missing builder mentioned in this thread into my .project file and that appears to have solved my problem. Does this make sense?

                      • 8. My issues (or missunderstandings) with Jboss Tools
                        Tim Evers Master

                        On a side note....

                        My custom tags auto complete works without me having to hack some xml file buried somewhere in the plugins directory! This is fantastic. All I had to do was setup my xml catalog and boom it worked.

                         

                        When I edit my xsd file (the one associated to my taglib in the xml catalog) my content assist is not updated with the new attributes. Is this something I should raise in another topic? Or is it not really a Jboss Tools problem?

                        • 9. My issues (or missunderstandings) with Jboss Tools
                          Alexey Kazakov Master
                          No, the builder is not in the .project file. What does this builder do? What process should put it in there?

                          org.jboss.tools.jst.web.kb.kbbuilder is JBoss Knowledgeable builder. This builder gethers information for code assist. Without this builder you will still have code assist working but some info won't be updated if you change resources. It's exactly what you have (see the problem with updated attributes in your XSDs). This builder is added when you enable Seam support or add JSF capability to the project.

                           

                          You should be asked only once when you open any xhtml from the project without enabled JSF capability in case you had choose to install it.

                          Looking at your error log I guess you tried to add JSF capability and it failed to install Eclipse WTP Web facet to the project. Probably the structure of the project couses such an error. WTP can't handle it. So what I suggest you to do:

                           

                          1. Desable Seam support for the project. It will remove Seam/KB builders/natures.

                          2. Enable Seam support again. It will add Seam and KB builders/natures to the project.

                          3. When you open any XHTML and see the dialog again, use the check box to avoid seeing it again. Without WTP web facet and JSF nature you won't have some minor code assist. For example code assist for <h:graphicImage value="|"/>

                          • 10. My issues (or missunderstandings) with Jboss Tools
                            Tim Evers Master
                            org.jboss.tools.jst.web.kb.kbbuilder is JBoss Knowledgeable builder. This builder gethers information for code assist. Without this builder you will still have code assist working but some info won't be updated if you change resources. It's exactly what you have (see the problem with updated attributes in your XSDs). This builder is added when you enable Seam support or add JSF capability to the project.

                            So, is there any way I can get the updated xsd file to be applied to my content assist if I can't get this builder working?

                            • 11. My issues (or missunderstandings) with Jboss Tools
                              Alexey Kazakov Master

                              Have you tried steps #1,2?

                              • 12. My issues (or missunderstandings) with Jboss Tools
                                Tim Evers Master

                                Following steps 1 and 2 don't make my xsd modifications appear in the content assist. This is probably due to the fact that doing this does not actually remove the <name>org.jboss.tools.jst.web.kb.kbbuilder</name> builder.

                                 

                                If I close and reopen the project then the modifications show up.

                                 

                                I don't modify the xsd much these days so it's not a massive deal but, I was hoping it would be nice and smooth

                                • 13. My issues (or missunderstandings) with Jboss Tools
                                  Tim Evers Master

                                  GRRR....in my messing around I've lost auto complete for my custom tags *sigh*. Shoulda just stopped while I was ahead. I get auto assist for my attributes but not my tags.

                                  • 14. My issues (or missunderstandings) with Jboss Tools
                                    Alexey Kazakov Master

                                    Could you copy your project folder, remove all the source files except some simple ones and attach this project to JIRA for example. We will try to reproduce the problem.

                                    1 2 Previous Next