Uploaded image for project: 'IvyDE (Retired)'
  1. IvyDE (Retired)
  2. IVYDE-243

IvyDE Autocompletion problem - doesn't support XML "includes" and $properties properly

Add voteWatch issue
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.0.0.final
    • None
    • ivy editor
    • None
    • Linux, Eclipse 3.5, Ivy 2.1, IvyDE 2.0

    Description

      Please note that in all described cases the ivyDE plugin and Ivy itself are parsing existing files ok and resolving dependencies correctly.

      IvyDE editor doesn't know how to parse XML includes and $properties while ivy
      itself does that with no problem.

      I mean that we have ivy.settings which doesn't have repositories listed in
      chain resolver directly in the file, but includes the file with this
      information:

      <include file="/some/folder/extendedivysettings.xml">

      or even something like this:

      <include file="${IVYFOLDER}/extendedivysettings.xml">

      We also don't use direct addresses in patterns like:

      <filesystem name="myname">
      <ivy pattern=/some/shared/folder/[organisation]/[module]/[revision]/ivy.xml/>
      <ivy
      pattern=/some/shared/folder/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]/>
      </filesystem>

      but we use

      <filesystem name="myname">
      <ivy pattern=${IVYREPO}[organisation]/[module]/[revision]/ivy.xml/>
      <ivy
      pattern=${IVYREPO}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]/>
      </filesystem>

      As i said - Ivy works with this fine, but IVYDE Editor doesn't and here are the issues I'm having with it

      1. Configuration autocompletion.
      our configurations file which we include into the ivy.xml has configurations defined like that (example):

      <configurations confmappingoverride="true" defaultconfmapping="api->api(default);compile->api(default);runtime->runtime(default)">

      <conf name="api"/>
      <conf name="compile" extends="api"/>
      <conf name="runtime" extends="compile"/>
      </configurations>

      in ivy.xml we have it included
      <configurations>
      <include file=ivy.config.xml>
      </configurations>

      2 problems here:

      The only way i can get IVyDE autocomplete to work with configurations is to specify them directly in the file. In addition to that the only acceptable format is without default mapping. The default mapping causes autocomplette to show only "*" and "default" as possible conf values, when i should see *, api, compile and runtime.

      Secondly, the include is not supported for editor even direct. When i'm using it autocomplete gives me only "*"

      2. org and rev.
      With my current set up when I'm hitting CTRL+Space to get autocomplete for <org> or <rev> I'm getting a NullPointerException. Please, see the stack trace in the end of the mail.

      3. When I'm hitting Ctrl+Space for <name> I'm actually getting a list of artifacts! and I believe i see artifacts from all of our repos...

      Hope that helps!

      Thanks,
      Eugene

      here is the exception for p.2
      java.lang.NullPointerException
      at
      org.apache.ivyde.common.model.IvyTag.getPossibleValuesForAttribute(IvyTag.java:163)
      at
      org.apache.ivyde.common.ivyfile.IvyModuleDescriptorModel$12.getPossibleValuesForAttribute(IvyModuleDescriptorModel.java:268)
      at
      org.apache.ivyde.common.completion.IvyCodeCompletionProcessor.computeValueProposals(IvyCodeCompletionProcessor.java:129)
      at
      org.apache.ivyde.common.completion.IvyCodeCompletionProcessor.computeCompletionProposals(IvyCodeCompletionProcessor.java:50)
      at
      org.apache.ivyde.eclipse.ui.editors.xml.IvyContentAssistProcessor.computeCompletionProposals(IvyContentAssistProcessor.java:70)
      at
      org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1832)
      at
      org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:556)
      at
      org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:553)
      at
      org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:488)
      at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
      at
      org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:482)
      at
      org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:1660)
      at
      org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:835)
      at
      org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:82)
      at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
      at
      org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:80)
      at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
      at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
      at
      org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
      at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
      at
      org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
      at
      org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
      at
      org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:470)
      at
      org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:824)
      at
      org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:880)
      at
      org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:569)
      at
      org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:510)
      at
      org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:125)
      at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1467)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1175)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1200)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1185)
      at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1212)
      at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:706)
      at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:2837)
      at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:703)
      at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1570)
      at org.eclipse.swt.widgets.Control.windowProc(Control.java:4587)
      at org.eclipse.swt.widgets.Display.windowProc(Display.java:4191)
      at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
      at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:7588)
      at org.eclipse.swt.widgets.Display.eventProc(Display.java:1185)
      at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
      at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1860)
      at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3110)
      at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
      at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
      at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
      at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
      at
      org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      at
      org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
      at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
      at
      org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
      at
      org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
      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:368)
      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:592)
      at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
      at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
      at org.eclipse.equinox.launcher.Main.run(Main.java:1311)

      Attachments

        Activity

          People

            Unassigned Unassigned
            eguess74 Eugene Sajine

            Dates

              Created:
              Updated:

              Slack

                Issue deployment