Hey all,
You may consider this a bit of a pointless update, it's also going to be a
bit rambly :-)
I haven't got very far into investigating how to automatically test two
running instances of Saros-I. I seem to have stumbled on to the same
problem as Holger in that I can't even get an empty test case to run
because of dependency conflicts around PicoContainer[0]. I'm not sure how
to solve this problem; it looks like both IntelliJ and the Saros code needs
this library on the classpath, so I doubt there's a way around it in
configuration. Only two options spring to mind at this point: 1) go back a
major version of Pico Container in Saros; 2) or embed the correct version
within a Saros namespace.
The first option has drawbacks in that you're coupling your dependencies in
the core to whatever IntelliJ needs to use. The drawback to the second
option is that it's necessary to find a suitable way to embed the library,
there are a couple of good libraries for doing this (e.g. ProGuard, JarJar,
etc) but it adds complexity to the build process and bloats your
dependencies. That approach implies that the Saros-I plugin is going to
depend on a Saros-Core jar, but I assume that's on the roadmap anyway.
All this pain is before even getting on to the problem of running multiple
instances manually. Because of IntelliJ's fascination with reusing the same
process, it's actually quite difficult to run two instances of the same
IDEA on the same machine at the same time. I think with some sneaky tricks
this will be possible, so I'm going to keep trying this. Being able to
manually test the real communication between two real instances is better
than nothing.
Cheers,
Graham
[0] http://devnet.jetbrains.com/message/5520275#5520275
On 26 July 2014 14:07, Graham Allan <grundlefl...@gmail.com> wrote:
> Looks like this will be a fun one to investigate, lots of gotchas :-)
>
> Will hopefully have something to report today or tomorrow.
> On 23 Jul 2014 14:57, "Stefan Rossbach" <srossb...@arcor.de> wrote:
>
>> Graham should also be aware that multiple instances on the same PC
>> requires *virtual* keyboards, i.e
>> simulating keyboard events with e.g
>> http://msdn.microsoft.com/en-us/library/ms646310%28v=vs.85%29.aspx (I do
>> not know if UI4J is
>> using this) will not work when simultaneous writing should be performed.
>>
>> See:
>>
>> http://download.eclipse.org/technology/swtbot/helios/dev-build/apidocs/org/eclipse/swtbot/swt/finder/keyboard/KeyboardFactory.html#getMockKeyboard%28org.eclipse.swt.widgets.Widget,%20org.hamcrest.SelfDescribing%29
>>
>> On 23.07.2014 15:46, Holger Schmeisky wrote:
>> > Hi Graham
>> >
>> > did you manage to start two Saros/I instances already? I guess that's
>> > necessary for writing the test :-)
>> >
>> > I found out a mildly inconvenient way that I'd like to document on the
>> > homepage, but if you (or anyone else) has found a better one I am glad
>> > to hear:
>> >
>> > http://devnet.jetbrains.com/message/5520367#5520367
>> >
>> > Regards,
>> > Holger
>> >
>> > Holger Schmeisky; holge...@fu-berlin.de
>> > Takustraße 9, Room 008, Freie Universität Berlin, 14195 Berlin
>> > +49 176 64146306
>> >
>> > Am 22.07.2014 14:40, schrieb Graham Allan:
>> >> Great! Thanks.
>> >>
>> >> I will look into the references provided, and investigate how we could
>> >> have the equivalent for IntelliJ.
>> >>
>> >> Cheers,
>> >> Graham
>> >>
>> >>
>> >> On 22 July 2014 12:15, Stefan Rossbach <srossb...@arcor.de
>> >> <mailto:srossb...@arcor.de>> wrote:
>> >>
>> >> Hi Graham,
>> >>
>> >> it is actually not that hard (STF = Saros Test Framework, i.e our
>> >> E2E Tests)
>> >>
>> >> SWTBot = UISpec4J => Fire Events, Read widget data
>> >>
>> >> The main entry point can be found in:
>> >>
>> >> de.fu_berlin.inf.dpp.stf.server.STFController
>> >>
>> >> There is also a small client package which contains an STFTestcase
>> >> class which you should inherit from when writing test cases.
>> >>
>> >> There is also a STF developer doc on the Saros Webpage, but I am
>> >> quite sure that it is outdated.
>> >>
>> >> This framwork consists of so called *Bots*.
>> >>
>> >> The *RemoteBot* only consists of class wrappers for the SWTBot
>> >> Framework.
>> >>
>> >> The *SuperBot* is just a accumulation of classes that perform very
>> >> special tasks (which also could be done with RemoteBot). Mainly
>> >> written to shorten
>> >> Test cases to avoid C&P between test classes.
>> >>
>> >> Due to the design there is one nasty restriction (mentioned in the
>> >> Doc). You cannot write test cases as you would like.
>> >>
>> >> @Franz
>> >> I spend over 5 minutes to find the manual ? Where did you put the
>> >> link ?!
>> >>
>> >>
>> >> I attached it for now (found in the darkest depths of my HDDs).
>> >>
>> >> STF Vids:
>> >>
>> >> http://saros-build.imp.fu-berlin.de/test/stf_self_test.avi (from
>> 2011)
>> >>
>> >> http://saros-build.imp.fu-berlin.de/test/stf_xvid.avi (from 2013,
>> >> mainly how to write STF test cases)
>> >>
>> >>
>> >>
>> >>
>> >> On 22.07.2014 12:53, Graham Allan wrote:
>> >>> Is there any documentation on how STF does the RMI? I would
>> >>> like to look into that and test it with IntelliJ, before we
>> >>> start with such a big venture :-)
>> >>> Graham, how much would you like to dig into that? (We can
>> also
>> >>> talk directly on that, if you'd like to)
>> >>>
>> >>>
>> >>> Yup, I'd be happy to do that. I may need some to get some
>> >>> background info on how the Eclipse testing works, I'm unfamiliar
>> >>> with SWTBot, etc. What would you recommend for figuring that out?
>> >>> Do you think it's understandable by digging into the Saros code?
>> >>> Maybe a chat over Skype/Hangout/etc?
>> >>>
>> >>> Also, I kept up with most of the acronyms, but you lost me on
>> STF,
>> >>> what is that?
>> >>>
>> >>> Cheers,
>> >>> Graham
>> >>>
>> >>>
>> >>> On 21 July 2014 15:53, Stefan Rossbach <srossb...@arcor.de
>> >>> <mailto:srossb...@arcor.de>> wrote:
>> >>>
>> >>> The RemoteBot is just a RMI Wrapper around the SWTBot
>> >>> Framework. No magic, nothing.
>> >>>
>> >>> IMyFooWrapper extends Remote ....
>> >>>
>> >>> MyFooWrapperImpl implements IMyFooWrapper ...
>> >>>
>> >>> private ... delegate
>> >>>
>> >>> public void foo() { delegate.foo() }
>> >>>
>> >>> Just take a look at the STFController class.
>> >>>
>> >>> As for you test case. Your class path is not set correctly
>> and
>> >>> if Headless tests does not support multiple classloaders you
>> >>> are out of luck.
>> >>>
>> >>>
>> >>> On 21.07.2014 15 <tel:21.07.2014%2015>:17, Holger Schmeisky
>> wrote:
>> >>>
>> >>> Is there any documentation on how STF does the RMI? I
>> >>> would like to look into that and test it with IntelliJ,
>> >>> before we start with such a big venture :-)
>> >>>
>> >>> Graham, how much would you like to dig into that? (We can
>> >>> also talk directly on that, if you'd like to)
>> >>>
>> >>> Apart from the UI Testing, I am trying to set up tests
>> for
>> >>> the file handling and having problems:
>> >>>
>> >>> http://devnet.jetbrains.com/thread/455971
>> >>>
>> >>> Any help is appreciated :-)
>> >>>
>> >>> Regards,
>> >>> Holger
>> >>>
>> >>> Holger Schmeisky; holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>
>> >>> Takustraße 9, Room 008, Freie Universität Berlin, 14195
>> Berlin
>> >>> +49 176 64146306 <tel:%2B49%20176%2064146306>
>> >>>
>> >>> Am 21.07.2014 14 <tel:21.07.2014%2014>:02, schrieb
>> Stefan
>> >>> Rossbach:
>> >>>
>> >>> Hi again,
>> >>>
>> >>> I just looked at the UISpec4J Framework and it seems
>> >>> that this is the
>> >>> *equivalent* to SWTBot.
>> >>>
>> >>> So my suggestion would be to write a script that will
>> >>> generate code so
>> >>> that those methods can be accessed via
>> >>> RMI. You can look at the RemoteBot of the STF.
>> >>> Although this was purely
>> >>> written by hand (Please do not ask my why ...)
>> >>> it may be a good start.
>> >>>
>> >>>
>> >>> On 21.07.2014 13 <tel:21.07.2014%2013>:51, Stefan
>> >>> Rossbach wrote:
>> >>>
>> >>> On 21.07.2014 13 <tel:21.07.2014%2013>:40,
>> Holger
>> >>> Schmeisky wrote:
>> >>>
>> >>> Hi,
>> >>>
>> >>> thanks for looking into this. My 2 cents:
>> >>>
>> >>> - they try to stick to testing the
>> >>> 'model', using headless
>> >>> builds. If
>> >>> there's already a separated 'core' of
>> >>> Saros, which can be tested in
>> >>> isolation, and there's only really
>> >>> plumbing left to do, that may not be
>> >>> applicable for the Saros-I code.
>> >>>
>> >>> Unfortunately the Saros-I code does more than
>> >>> plumbing - more like
>> >>> half of the work, but with a lot of
>> >>> duplication. But well, that makes
>> >>> it applicable for headless tests and I think
>> >>> thats a good path :-)
>> >>>
>> >>> There are two main components: The Editor Stuff
>> >>> and the File Stuff which
>> >>> cannot be part of the core. The rest should be
>> >>> mostly *cosmetic* stuff
>> >>> (beside the Watchdog).
>> >>>
>> >>> Would it be worth investigating one of
>> >>> these libraries to see if it's
>> >>> possible to spin up an IntelliJ instance
>> >>> in a JUnit test?
>> >>>
>> >>> Yep, it's Swing. In Saros/E we fire up 2
>> >>> Eclipse instances that run
>> >>> the Saros version and execute actions on them
>> >>> via RMI. In IDEA I had
>> >>> no luck starting two IDEA instances from one
>> >>> instance
>> >>> (
>> http://devnet.jetbrains.com/message/5520017#5520017),
>> >>> so I suspended
>> >>> that thought for the moment.
>> >>>
>> >>> We actually fire up 4 instances (we could even
>> >>> fire up more). We do not
>> >>> really execute "actions" (ok at least a few) with
>> >>> RMI. Most RMI calls
>> >>> delegates to the SWTBot Framework so we really
>> >>> simulate user input (sorry if you meant this with
>> >>> actions).
>> >>>
>> >>> Having an "OK it still works" integration
>> test
>> >>> would be really
>> >>> helpful, but I am a bit intimidated by the
>> >>> setup work this would
>> >>> require (given the instances issues and the
>> >>> whole hassle of UI tests).
>> >>>
>> >>> A lower level where the tests would already
>> >>> make sense would be the
>> >>> directory creation / file handling level
>> >>> because I am having issues
>> >>> there at the moment.
>> >>>
>> >>> If you want to use headless tests make sure IDEA
>> >>> is not using SWING. The
>> >>> CI Server is running without a display (for good
>> >>> reasons).
>> >>>
>> >>> Regards,
>> >>> Holger
>> >>>
>> >>> Kind regards,
>> >>> Graham
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> On 21 July 2014 11:24, Stefan Rossbach
>> >>> <srossb...@arcor.de
>> >>> <mailto:srossb...@arcor.de>
>> >>> <mailto:srossb...@arcor.de
>> >>> <mailto:srossb...@arcor.de>>> wrote:
>> >>>
>> >>> I would suggest a similar framework
>> >>> like SWTBot for AWT(Swing)
>> >>> applications which can be accessed
>> >>> with RMI
>> >>> as we do with our STF.
>> >>>
>> >>>
>> >>> On 21.07.2014 11
>> >>> <tel:21.07.2014%2011>
>> >>> <tel:21.07.2014%2011>:28, Holger
>> Schmeisky
>> >>> wrote:
>> >>>
>> >>> Hi Graham,
>> >>>
>> >>> I am very glad to hear from you!
>> >>>
>> >>> Franz already told me about you
>> >>> and I read your quite
>> >>> enthusiastic blog
>> >>> post about Saros for Eclipse and
>> >>> how it compares to other
>> >>> solutions :-)
>> >>>
>> >>> There probably will be too much
>> >>> churn in the development
>> >>> branch
>> >>> for it
>> >>> be a good base for
>> collaboration.
>> >>> I think it is a better
>> >>> idea to
>> >>> wait
>> >>> with that until a runnable
>> >>> version is in the master branch, so
>> >>> you can
>> >>> branch from there and develop
>> >>> from a clean state.
>> >>>
>> >>> The next biggest impediment is,
>> >>> that there are no automated
>> >>> tests for
>> >>> the development version and it
>> >>> has to be tested manually -- we
>> >>> should
>> >>> fix that rather early I'd say.
>> >>>
>> >>> I'm working on that at the
>> >>> moment, but experiencing
>> >>> problems. Is
>> >>> anybody
>> >>> here who has experience testing
>> >>> IDEA IntelliJ plugins? :-)
>> >>>
>> >>> Regards,
>> >>> Holger
>> >>>
>> >>>
>> >>> Holger Schmeisky;
>> >>> holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>
>> >>> <mailto:holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>>
>> >>> Takustraße 9, Room 008, Freie
>> >>> Universität Berlin, 14195 Berlin
>> >>> +49 176 64146306
>> >>> <tel:%2B49%20176%2064146306>
>> >>> <tel:%2B49%20176%2064146306>
>> >>>
>> >>> Am 18.07.2014 20:23, schrieb
>> >>> Graham Allan:
>> >>>
>> >>> Hi Holger,
>> >>>
>> >>> Great to hear!
>> >>>
>> >>> I work for a company based
>> in
>> >>> London, from my home in
>> >>> Scotland. Saros
>> >>> has been a big part of our
>> >>> development process for over 18
>> >>> months now,
>> >>> and myself and my team are
>> >>> very keen to see the IntelliJ
>> >>> plugin. I've
>> >>> already contributed the ant
>> >>> build script for the Saros-I
>> >>> project and am
>> >>> eager to do more.
>> >>>
>> >>> Would you recommend checking
>> >>> out the current code or will
>> >>> there be so
>> >>> much churn in that area that
>> >>> we may as well wait?
>> >>>
>> >>> Kind regards and have a
>> great
>> >>> weekend,
>> >>> Graham
>> >>>
>> >>>
>> >>> On 16 July 2014 13:43,
>> Holger
>> >>> Schmeisky
>> >>> <holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>
>> >>> <mailto:holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>>
>> >>> <mailto:
>> holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>
>> >>> <mailto:holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>>>__>
>> wrote:
>> >>>
>> >>> Hello everyone,
>> >>>
>> >>> my name is Holger and
>> I
>> >>> am a colleague of Franz,
>> >>> currently working at FU
>> >>> Berlin on the
>> >>> development of Saros for JetBrains
>> >>> IDEA
>> >>> (IntelliJ,
>> >>> PyCharm, PhpStorm,
>> ...).
>> >>>
>> >>> An IDEA version is
>> >>> under way and there is already a
>> >>> halfway-usable
>> >>> development version
>> (in
>> >>> the development/raimondas2
>> >>> branch). It already
>> >>> has the basic features
>> >>> like project sharing,
>> >>> editing,
>> >>> follow mode, etc.
>> >>> However this version
>> >>> still misses a lot, is without
>> >>> automated tests and
>> >>> has only partially
>> been
>> >>> merged into the master
>> >>> branch.
>> >>>
>> >>> In about 2-3 weeks,
>> the
>> >>> code will be in a shape
>> >>> where
>> >>> other people can
>> >>> actually develop on
>> it.
>> >>> I think it already makes
>> >>> sense
>> >>> to get in touch
>> >>> before, to get to know
>> >>> the codebase and our
>> >>> development process.
>> >>>
>> >>> So if you are
>> >>> interested in joining Saros/I
>> >>> development, please contact
>> >>> me or write here, so I
>> >>> can get to know you and
>> >>> get an
>> >>> overview how much
>> >>> interest there is :-)
>> >>>
>> >>> Regards,
>> >>> Holger
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Holger Schmeisky;
>> >>> holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>
>> >>> <mailto:
>> holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>>
>> >>> <mailto:holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>
>> >>> <mailto:
>> holge...@fu-berlin.de
>> >>> <mailto:holge...@fu-berlin.de>>>
>> >>> Takustraße 9, Room
>> 008,
>> >>> Freie Universität Berlin,
>> >>> 14195 Berlin
>> >>> +49 176 64146306
>> >>> <tel:%2B49%20176%2064146306>
>> >>> <tel:%2B49%20176%2064146306>
>> >>> <tel:%2B49%20176%2064146306>
>> >>>
>> >>>
>> >>>
>>
>> ------------------------------__------------------------------__------------------
>> >>>
>> >>>
>> >>> Want fast and easy
>> >>> access to all the code in your
>> >>> enterprise? Index and
>> >>> search up to 200,000
>> >>> lines of code with a free
>> >>> copy of
>> >>> Black Duck
>> >>> Code Sight - the same
>> >>> software that powers the
>> >>> world's
>> >>> largest code
>> >>> search on Ohloh, the
>> >>> Black Duck Open Hub! Try it
>> >>> now.
>> >>> http://p.sf.net/sfu/bds
>> >>>
>> _________________________________________________
>> >>> DPP-Devel mailing list
>> >>> DPP-Devel@lists.sourceforge.__net
>> >>> <mailto:DPP-Devel@lists.sourceforge.
>> __net>
>> >>> <mailto:DPP-Devel@lists.sourceforge.net
>> >>> <mailto:DPP-Devel@lists.sourceforge.net
>> >>
>> >>> <mailto:DPP-Devel@lists.
>> >>> <mailto:DPP-Devel@lists.>__
>> sourceforge.net
>> >>> <http://sourceforge.net>
>> >>> <mailto:DPP-Devel@lists.sourceforge.net
>> >>> <mailto:DPP-Devel@lists.sourceforge.net
>> >>>
>> >>>
>> https://lists.sourceforge.net/__lists/listinfo/dpp-devel
>> >>> <
>> https://lists.sourceforge.net/lists/listinfo/dpp-devel>
>> >>>
>> >>>
>> >>>
>>
>> ------------------------------__------------------------------__------------------
>> >>>
>> >>>
>> >>> Want fast and easy access to all
>> >>> the code in your enterprise?
>> >>> Index and
>> >>> search up to 200,000 lines of
>> >>> code with a free copy of Black
>> >>> Duck
>> >>> Code Sight - the same software
>> >>> that powers the world's
>> >>> largest code
>> >>> search on Ohloh, the Black Duck
>> >>> Open Hub! Try it now.
>> >>> http://p.sf.net/sfu/bds
>> >>>
>> >>>
>> _________________________________________________
>> >>> DPP-Devel mailing list
>> >>> DPP-Devel@lists.sourceforge.__net
>> >>> <mailto:DPP-Devel@lists.sourceforge.
>> __net>
>> >>>
>> >>> <mailto:DPP-Devel@lists.sourceforge.net
>> >>> <mailto:DPP-Devel@lists.sourceforge.net
>> >>
>> >>>
>> https://lists.sourceforge.net/__lists/listinfo/dpp-devel
>> >>> <
>> https://lists.sourceforge.net/lists/listinfo/dpp-devel>
>> >>>
>> >>>
>> >>>
>>
>> ------------------------------------------------------------------------------
>> >>>
>> >>>
>> >>> Want fast and easy access to all the code in your
>> >>> enterprise? Index and
>> >>> search up to 200,000 lines of code with a free
>> >>> copy of Black Duck
>> >>> Code Sight - the same software that powers the
>> >>> world's largest code
>> >>> search on Ohloh, the Black Duck Open Hub! Try it
>> now.
>> >>> http://p.sf.net/sfu/bds
>> >>> _______________________________________________
>> >>> DPP-Devel mailing list
>> >>> DPP-Devel@lists.sourceforge.net
>> >>> <mailto:DPP-Devel@lists.sourceforge.net>
>> >>>
>> https://lists.sourceforge.net/lists/listinfo/dpp-devel
>> >>>
>> >>>
>> >>
>> >
>> ------------------------------------------------------------------------------
>> > Want fast and easy access to all the code in your enterprise? Index and
>> > search up to 200,000 lines of code with a free copy of Black Duck
>> > Code Sight - the same software that powers the world's largest code
>> > search on Ohloh, the Black Duck Open Hub! Try it now.
>> > http://p.sf.net/sfu/bds
>> > _______________________________________________
>> > DPP-Devel mailing list
>> > DPP-Devel@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/dpp-devel
>>
>>
>> ------------------------------------------------------------------------------
>> Want fast and easy access to all the code in your enterprise? Index and
>> search up to 200,000 lines of code with a free copy of Black Duck
>> Code Sight - the same software that powers the world's largest code
>> search on Ohloh, the Black Duck Open Hub! Try it now.
>> http://p.sf.net/sfu/bds
>> _______________________________________________
>> DPP-Devel mailing list
>> DPP-Devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/dpp-devel
>>
>
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls.
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
DPP-Devel mailing list
DPP-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dpp-devel