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

                 Key: IVYDE-243
                 URL: https://issues.apache.org/jira/browse/IVYDE-243
             Project: IvyDE
          Issue Type: Bug
          Components: ivy editor
    Affects Versions: 2.0.0.final
         Environment: Linux 
            Reporter: Eugene Sajine


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)



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to