Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] [Salvo] Provide a way for other projects to hook their newsgroups into Salvo

Hi Wim,

Thank you very much for the comment.

I will look into these issues

On Wed, Aug 10, 2011 at 3:37 AM, Wim Jongman <wim.jongman@xxxxxxxxx> wrote:
> NICE!!!!
> This is great stuff. Really really nice. Good job!
> Here are some test results:
> In ask a question, I would switch the suggested newsgroup with the available
> newsgroup and automatically select the suggested newsgroup if it is
> available.
> There is also this exception when I used the suggested newsgroup from your
> test plugin:
>
> org.eclipse.ecf.protocol.nntp.model.NNTPIOException: 211 288 1 288
> eclipse.p2
>
> at
> org.eclipse.ecf.protocol.nntp.core.internal.ServerStoreFacade.postNewArticle(ServerStoreFacade.java:442)
>
> at
> org.eclipse.ecf.salvo.ui.wizards.AskAQuestionWizard.performFinish(AskAQuestionWizard.java:81)
>
> 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.Display.sendEvent(Display.java:3783)
>
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
>
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
>
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
>
> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
>
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3629)
>
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3284)
>
> at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
>
> at org.eclipse.jface.window.Window.open(Window.java:801)
>
> at
> org.eclipse.ecf.salvo.ui.internal.handlers.AskAquestionHandler.execute(AskAquestionHandler.java:42)
>
> at
> org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
>
> 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.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
>
> at
> org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820)
>
> at
> org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806)
>
> at
> org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796)
>
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
>
> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
>
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
>
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
>
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
>
> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
>
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3629)
>
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3284)
>
> 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)
>
> at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
>
> Caused by: org.eclipse.ecf.protocol.nntp.model.UnexpectedResponseException:
> 211 288 1 288 eclipse.p2
>
> at
> org.eclipse.ecf.protocol.nntp.core.internal.ServerConnection.postNewArticle(ServerConnection.java:699)
>
> at
> org.eclipse.ecf.protocol.nntp.core.internal.ServerStoreFacade.postNewArticle(ServerStoreFacade.java:435)
>
> ... 53 more
>
>
>
> On Tue, Aug 9, 2011 at 5:18 PM, Isuru Udana <isudana@xxxxxxxxx> wrote:
>>
>> Hi Wim, Harshana,
>> Newsgroup Provider Extension Point
>> I have implemented the extension point 'newsgroupProvider' which allows
>> other projects to hook into salvo.
>> All providers must implement the INewsGroupProvider.
>> There we can specify the information needed to connect to the newsgroup.
>> A provider can decide when to enable the newsgroup using core expressions.
>> Please see the newsgroupProvider.exsd schema file, there I have documented
>> the examples and the API Information.
>> Ask A question Wizard
>> I have made some changes to the "Ask A Question Wizard'.
>> Now the Wizard detect and shows newsgroup suggestions to user.
>> Digest View
>> Fixed some bugs which I found on the digest view.
>> A store listener is added to the digest view to update according to new
>> newsgroup subscribes/ unsubscribes.
>> Please have a look at the implementation.
>> Thank you
>> On Tue, Aug 2, 2011 at 10:11 PM, Isuru Udana <isudana@xxxxxxxxx> wrote:
>>>
>>>
>>> On Tue, Aug 2, 2011 at 8:00 PM, Isuru Udana <isudana@xxxxxxxxx> wrote:
>>>>
>>>>
>>>> On Tue, Aug 2, 2011 at 7:35 PM, Wim Jongman <wim.jongman@xxxxxxxxx>
>>>> wrote:
>>>>>
>>>>> Hi,
>>>>> I was thinking the following:
>>>>> We want to give the suppliers of plugin functionality the opportunity
>>>>> to direct their users to the correct forum or newsgroup thru an extension
>>>>> point.
>>>>> For example, if I provide a plugin that does wireframe sketching then I
>>>>> want the users of the wireframe software to ask a question in my specific
>>>>> forum.
>>>>> If the java perspective is active, then I want the user to ask a
>>>>> question in the jdt newsgroup.
>>>>> If the Mylyn task view is active then I want my question toe be
>>>>> directed there.
>>>>> So Salvo must be able to determine the context of the user environment
>>>>> and based on this, the ask a question handler must propose the correct
>>>>> newsgroup:
>>>>> If the proposed newsgroup is not correct, then the user can select one
>>>>> of the subscribed newsgroups or one of the newsgroups supplied by other
>>>>> extenders to the extension point.
>>>>> We want to attach a NewsgroupFactory class to the extension point that
>>>>> gets called to extract the server, the server credentials and the newsgroup
>>>>> where the question can be asked (amongst other things).
>>>>> If the user is not yet subscribed to the server, the factory must
>>>>> supply it so that we can subscribe automatically from there.
>>>>> Maybe we can use the core expression framework to select the newsgroup
>>>>> proposal.
>>>>> newsgroupExtension
>>>>> id=fddfsf
>>>>> factory=(implements INewsGroupFactory) (getServer,
>>>>> getServerCredentials, getNewsGroup, getTopic, getAttachement, getStackTrace)
>>>>> activewhen
>>>>>    activePerspective = org.eclipse.jdt
>>>>>    activeView = xyz
>>>>>    etc.. etcc
>>>>>
>>>>> How about this first draft?
>>>>
>>>> Yes. I was thinking a similar one.
>>>> But I have some doubts on how we can extract credentials form the
>>>> NewsgroupFactory (defined by the hooked project). They cannot be hard coded
>>>> like server address, port etc.
>>>> We might have to allow user to input credentials when he is going to ask
>>>> a question.
>>>
>>> We can ask suppliers (other projects) to implement a interface (say
>>> INewsgroupProvider) of Salvo.
>>> In that interface it is required to specify the following.
>>> The project namespace
>>> Newsgroup
>>> Server address, port, etc.
>>> (Credentials cannot be defined here)
>>> In salvo we can figure out the relevant newsgroup from the part Id and
>>> the namespace.
>>> 1. If the user has not subscribed to the server, we can show the
>>> NewNewsServer wizard with filled host address, port etc. And let the user to
>>> specify the credentials.
>>> 2. If user has already subscribed to the server, we can proceed further.
>>> Then we can check whether user has subscribe to the particular newsgroup.
>>> If not we can subscribe at that point.
>>>
>>>>
>>>>
>>>>>
>>>>> Regards,
>>>>> Wim
>>>>>
>>>>> On Tue, Aug 2, 2011 at 1:24 PM, Isuru Udana <isudana@xxxxxxxxx> wrote:
>>>>>>
>>>>>> Hi,
>>>>>> I am planing for a design for this functionality.
>>>>>> I want to clarify some doubt.
>>>>>> To ask a question from a hooked project, does user have to subscribe
>>>>>> to it's newsgroup with salvo in the first place?
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Isuru Udana
>>>>>> Undergraduate
>>>>>> Department of Computer Science & Engineering,
>>>>>> University of Moratuwa.
>>>>>>
>>>>>> Blog: http://mytecheye.blogspot.com/
>>>>>> gTalk: isudana  skype: isudana
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Isuru Udana
>>>> Undergraduate
>>>> Department of Computer Science & Engineering,
>>>> University of Moratuwa.
>>>>
>>>> Blog: http://mytecheye.blogspot.com/
>>>> gTalk: isudana  skype: isudana
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Regards,
>>> Isuru Udana
>>> Undergraduate
>>> Department of Computer Science & Engineering,
>>> University of Moratuwa.
>>>
>>> Blog: http://mytecheye.blogspot.com/
>>> gTalk: isudana  skype: isudana
>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> Regards,
>> Isuru Udana
>> Undergraduate
>> Department of Computer Science & Engineering,
>> University of Moratuwa.
>>
>> Blog: http://mytecheye.blogspot.com/
>> gTalk: isudana  skype: isudana
>>
>>
>>
>>
>
>



-- 
Regards,
Isuru Udana
Undergraduate
Department of Computer Science & Engineering,
University of Moratuwa.

Blog: http://mytecheye.blogspot.com/
gTalk: isudana  skype: isudana


Back to the top