Meta tags:
Headings (most frequently used words):
eclipse, 2010, 2009, monday, and, tuesday, june, declarative, the, p2, ruminations, december, 21, thursday, november, 11, february, 30, 29, sunday, may, april, 20, twitter, followers, blog, archive, about, me, to, visual, studio, what, missing, testing, expressions, junit4, test, framework, success, ui, policy, services, debugging, pde, build, publisher, cloning, profile, using, favoring, immutability,
Text of the page (most frequently used words):
the (173), and (66), that (60), #eclipse (50), for (42), test (35), this (34), you (32), was (30), with (26), have (25), product (24), immutable (19), org (19), equinox (19), build (18), core (18), which (17), out (16), one (16), when (15), into (15), osgi (14), then (13), but (13), feature (13), true (13), what (12), new (12), all (12), are (12), debug (12), those (11), there (11), from (11), some (11), run (11), about (10), your (10), can (10), version (10), pde (10), xml (10), etf (10), tests (10), time (9), object (9), just (9), not (9), way (9), had (9), since (9), policy (9), junit (9), framework (9), ben (8), vitale (8), comments (8), posted (8), really (8), again (8), how (8), working (8), bunch (8), could (8), install (8), bundle (8), sdk (8), expression (8), 2010 (7), make (7), objects (7), don (7), see (7), part (7), should (7), set (7), only (7), these (7), using (7), file (7), publisher (7), antrunner (7), enablement (7), editor (7), profile (6), visual (6), studio (6), them (6), still (6), has (6), java (6), need (6), around (6), click (6), platform (6), requirement (6), options (6), running (6), getting (6), after (6), code (6), testing (6), declarative (6), jetty (6), 2009 (5), get (5), another (5), writing (5), turns (5), started (5), problem (5), person (5), find (5), got (5), class (5), launch (5), add (5), thanks (5), context (5), based (5), wasn (5), added (5), two (5), page (5), console (5), bundles (5), junit4 (5), been (5), method (5), explorer (5), definition (5), may (4), created (4), start (4), off (4), beans (4), right (4), write (4), actually (4), take (4), back (4), couldn (4), same (4), different (4), type (4), data (4), their (4), name (4), trying (4), plug (4), because (4), enabled (4), debugging (4), ran (4), through (4), bugs (4), also (4), ant (4), post (4), launched (4), abc (4), didn (4), here (4), down (4), launching (4), services (4), bug (4), workbench (4), solution (4), plugin (4), expressions (4), particular (4), ctxt (4), iconfigurationelement (4), ctrl (4), view (3), february (3), june (3), missing (3), years (3), ago (3), read (3), first (3), sure (3), seen (3), multi (3), during (3), light (3), bulb (3), hit (3), its (3), other (3), wanted (3), across (3), versions (3), own (3), continued (3), basically (3), properties (3), once (3), last (3), application (3), finally (3), monday (3), repository (3), like (3), 5m7 (3), case (3), engine (3), plugins (3), restart (3), moving (3), where (3), dependency (3), worked (3), able (3), next (3), actions (3), look (3), did (3), resources (3), director (3), tracing (3), manually (3), more (3), building (3), team (3), any (3), service (3), generate (3), runtime (3), labels (3), jump (3), think (3), against (3), junit3 (3), they (3), before (3), work (3), editors (3), evaluate (3), null (3), elem (3), contextlaunch (3), please (3), open (3), over (3), brace (3), complete (2), april (2), november (2), december (2), blog (2), posts (2), mind (2), share (2), worry (2), made (2), while (2), lot (2), much (2), use (2), moved (2), project (2), pick (2), problems (2), will (2), serialize (2), bits (2), reassemble (2), doesn (2), feel (2), learned (2), want (2), ultimately (2), alone (2), etc (2), binding (2), setters (2), intermediate (2), came (2), today (2), various (2), doing (2), final (2), installable (2), allows (2), unit (2), setup (2), lets (2), aside (2), cloning (2), 5m6 (2), installed (2), along (2), would (2), pain (2), having (2), items (2), dtp (2), directory (2), help (2), software (2), local (2), select (2), show (2), finish (2), general (2), issue (2), even (2), metadata (2), features (2), fine (2), failed (2), turn (2), components (2), managed (2), pass (2), things (2), helpful (2), breakpoints (2), appropriate (2), setting (2), conditional (2), breakpoint (2), being (2), entries (2), outdated (2), included (2), clean (2), dependencies (2), figured (2), purposes (2), output (2), https (2), show_bug (2), cgi (2), stepping (2), trace (2), passing (2), parsing (2), planner (2), reconciler (2), step (2), update (2), number (2), plan (2), preference (2), rcp (2), developers (2), example (2), wiki (2), anything (2), our (2), discovered (2), route (2), filter (2), syntax (2), bit (2), logging (2), information (2), point (2), maybe (2), quick (2), sudden (2), custom (2), location (2), everything (2), configuration (2), world (2), useful (2), instance (2), area (2), config (2), ini (2), sdkpolicy (2), def (2), tuesday (2), windowtester (2), emma (2), victory (2), quite (2), needed (2), ships (2), without (2), delicately (2), constructed (2), lost (2), commented (2), list (2), now (2), specifying (2), provided (2), support (2), package (2), available (2), target (2), 153429 (2), shortcuts (2), huge (2), calls (2), easily (2), extensionpoint (2), idebuguiconstants (2), infos (2), string (2), getchildren (2), ide (2), track (2), keep (2), conceptual (2), extension (2), tab (2), net (2), link (2), resource (2), javadoc (2), reading (2), typically (2), externalized (2), ruminations (2), skip (2), march, archive, followers, twitter, subscribe, atom, home, older, few, stuck, wherever, possible, freely, checking, concurrency, programming, free, threaded, environments, benefit, book, happened, tool, stack, early, stages, goes, head, hey, silver, bullet, away, tried, bam, rfe, kind, hard, vaporize, side, ended, frustrating, alright, lesson, thought, deal, whether, serialization, hits, face, end, leaving, transfer, similar, ones, mutable, send, saga, age, height, weight, simple, entry, form, construction, stopped, tracks, getters, myself, become, counterparts, story, poking, apis, interface, stumble, stuff, pun, intended, put, question, readers, applications, lessons, units, description, client, state, incrementally, resulting, installableunitdescription, iinstallableunit, standard, bean, jface, jax, fields, gwt, item, effective, favoring, immutability, heard, eclipsecon, sounded, cool, customized, replicate, granted, better, ways, shared, pools, moment, decided, stab, svn, hoping, provision, web, course, probably, upgrade, steps, unpack, button, site, browse, previous, eclipse3, profileregistry, sdkprofile, give, might, uncheck, latest, group, category, check, ins, sadly, action, mark, multiple, wizard, done, awesome, simon, kaegi, implementing, bof, sunday, newsgroup, week, unexpected, requirements, wouldn, unsatisfied, clear, coming, somewhere, expressed, theory, capture, generating, source, squash, attempt, listed, stuffed, trick, app, drives, arguments, neither, were, results, reasoned, nobody, else, must, technique, solve, connect, remotely, jvm, args, enable, wire, protocol, connected, rogue, processed, problematic, watch, incoming, minimum, discover, old, references, several, ripped, successful, builds, glad, enforcing, types, constraints, helped, apparent, remote, session, inside, heck, flag, unless, prepared, wade, volumes, guess, 5672, conclusions, getversionrange, featuresaction, outputs, statements, nothing, publishing, candidate, enhancement, passes, onto, mode, clouded, 8mb, path, generator, installregistry, artifacts, mirrors, parseproblems, operands, projector, profilepreferences, removerepo, updatechecker, internal, helpers, becoming, short, far, series, making, especially, excited, resolution, qualifier, replaced, longer, increment, updating, nightly, unfortunately, dialog, ditto, robust, blocks, handy, described, great, detail, mention, leaps, bounds, ahead, props, rate, tipped, controls, showing, implemented, threw, loop, special, stock, stepped, empty, every, sent, fighting, command, googled, found, spitting, verbose, turned, logged, pretty, stumped, showed, active, spin, deluge, printed, voila, root, cause, specify, screwing, level, switched, migrate, releng, guys, explore, links, inf, resolved, behavior, http, adding_self, update_to_an_rcp_application, profit, unzip, 246060, eager, bolded, background, gems, effectively, whole, common, fact, considered, never, mentally, equated, went, vanilla, within, lucky, picked, via, task, wrong, loaded, realized, jar, used, brings, real, guts, discovering, execution, took, second, wow, looks, promising, headless, converted, script, smack, dab, captures, supports, least, year, wrote, meanwhile, milestones, kept, progress, stubbornly, left, refusing, rewrite, corner, successfully, executed, yet, grab, base, consume, observations, rather, than, spit, reason, additional, written, care, gotcha, dropped, folder, dropins, does, default, believe, works, nicely, measuring, coverage, everyone, who, voted, patches, community, supporting, completes, generally, formally, save, copy, enclose, expressing, hint, edit, include, simply, drop, zip, 6m5, utter, success, plugs, large, specified, ass, shortcut, disabled, isn, good, evaluation, comes, deeply, nested, times, gone, easier, follows, sample, elements, specific, scenario, appears, convert, mimic, muck, rest, assured, suite, watching, public, void, throws, exception, arraylist, selectedobject, iresource, perhaps, ievaluationcontext, evaluationcontext, addvariable, selection, non, nls, assertequals, evaluationresult, valueof, m_uienabled, iextensionpoint, getextensionregistry, getextensionpoint, plugin_id, extension_point_launch_shortcuts, getconfigurationelements, getattribute, myshortcutid, equals, contextuallaunch, expressionconverter, getdefault, perform, thursday, tfs, recently, spending, many, transition, somewhat, painful, order, experts, answers, resort, editing, workspaces, know, explain, complaints, relating, recent, solutions, separate, threads, preserved, somehow, switch, between, projects, daily, collapse, expand, needs, badly, outline, nuff, said, qualify, saying, implementation, details, definite, issues, functionality, critical, document, graphical, entity, models, lookin, gimme, synchronized, closing, both, fail, synchronize, hole, hell, people, sync, sane, jumping, quickly, lose, tree, toggle, untoggle, highlight, current, speaking, hover, ndoc, documentation, flexible, overload, parameters, sequenced, correctly, overloads, clustered, together, poor, man, strings, message, referenced, static, directly, hyperlinking, mouse, gesture, f12, told, curly, auto, completion, opening, enter, automatically, indent, close, following, line, fix, assign, variable, rhs, assignment, statement, suggest, insert, lhs, ruminate, matter, chew, cud, views, displayed, represent, employer, sidebar, main,
Text of the page (random words):
r order here are the features that i m still trying to track down vs experts help me out quick fix assign to local variable write the rhs of an assignment statement then ctrl 1 to have the ide suggest insert a lhs curly brace auto completion when i type the opening brace and hit enter automatically indent one tab and add a close brace on the following line ctrl click for type definition hyperlinking basically a mouse gesture for visual studio s go to definition f12 i ve been told there is an extension for this ctrl click for externalized strings resources in net in eclipse when i ctrl click on an externalized message referenced as a static string i can jump to the properties file directly flexible go to definition in eclipse if i write some code that calls a method and i don t have the particular overload parameters sequenced correctly i can still typically jump to the definition of one of the overloads since they re typically clustered together in the target type this is a poor man s way of getting around reading the javadoc speaking of javadoc hover over a method to see its ndoc documentation reading the commented xml syntax on a method doesn t do it for me link with editor show in when i m jumping around using go to definition i quickly lose track of where in the resource tree a particular class is in eclipse i can toggle and untoggle link with editor to highlight the resource in package explorer how do i select the current editor s file in solution explorer synchronize view this one is a huge hole how the hell do you net people sync your code in a sane way multi page editors i ll qualify this one a bit by saying that i ve seen the implementation details of multi page editors in eclipse and there are some definite issues but the functionality is critical when you have an xml document which also has a graphical editor entity framework conceptual models i m lookin at you gimme a synchronized two tab editor so i don t have to keep doing open with closing the other editor can t have both open at the same time another fail etc outline view in the xml editor nuff said collapse all expand all solution explorer needs these badly file restart after i install a visual studio extension i need to restart please make this one click thanks workspaces i really don t know how to explain this one you can see one of my complaints relating to team explorer in this post another example is that of recent solutions please just keep my last solution open what am i missing here i need to have separate threads of work that are preserved somehow so i can easily switch between conceptual projects in my daily work please post back in the comments with answers to all of these so that i don t resort to editing c code in eclipse thanks posted by ben vitale at 3 42 pm 12 comments labels eclipse ide team explorer tfs visual studio thursday november 11 2010 testing declarative eclipse expressions our eclipse based product plugs into the platform debug support and we have a large number of launch shortcuts which have enablement expressions specified in plugin xml and they are a huge pain in the ass to test manually if a particular shortcut is disabled when it should be enabled there isn t a good way that i ve seen to trace the evaluation of the enablement expression at runtime so it comes down to stepping through the deeply nested expression evaluate calls and you can easily get lost this is one of those times where i feel like the light bulb should have gone on for me years ago it turns out there is a much easier way to test these things by writing junit plug in tests for them what follows is some sample code to do this since i m testing the enablement of launch shortcuts the configuration elements are specific to that scenario but you should be able to do this for any expression that appears in a bundle s plugin xml in a before method i read the expression from the plugin xml and convert it into an expression object iextensionpoint extensionpoint platform getextensionregistry getextensionpoint idebuguiconstants plugin_id idebuguiconstants extension_point_launch_shortcuts iconfigurationelement infos extensionpoint getconfigurationelements for iconfigurationelement elem infos string id elem getattribute id iconfigurationelement contextlaunch null iconfigurationelement enablement null if myshortcutid equals id contextlaunch elem getchildren contextuallaunch 0 enablement contextlaunch getchildren enablement 0 expression expressionconverter getdefault perform enablement and in a test method i set up the context i m trying to mimic and evaluate the expression test public void ui throws exception list object ctxt new arraylist object ctxt add selectedobject some iresource perhaps ievaluationcontext context new evaluationcontext null ctxt context addvariable selection ctxt non nls 1 assertequals evaluationresult valueof m_uienabled expression evaluate context now i can muck around in those delicately constructed xml expressions and rest assured that i have a test suite watching my back posted by ben vitale at 12 13 pm 3 comments labels declarative eclipse expressions plugin xml monday february 1 2010 junit4 and the eclipse test framework success if you re eager just jump down to the bolded part about victory first some background i think the eclipse test framework is one of the gems that is part of eclipse effectively it s a way to run junit tests against your bundles while equinox osgi is running you can also have the whole workbench ui running if you like which i think is a common case in fact for quite some time that was the only case that i considered it for if i had a junit test that didn t need the workbench i could run as junit test if i had a junit test that needed the workbench i could run as junit plug in test but i never really mentally equated the workbench with osgi framework then i went to write a test for one of my bundles that has a dependency on jetty and its a version of jetty that is different from the one that ships with eclipse when i ran it as a vanilla junit test from within eclipse everything worked fine i think i just got lucky and it picked up the right version of jetty when i launched the test but when i ran my test via the ant junit task no eclipse test framework it failed because the wrong version of jetty got loaded all of a sudden i realized that without my delicately constructed dependencies being managed by osgi i was lost back in the world of which jar file is getting used so this brings me to the real guts of this blog post after discovering i needed osgi during test execution i took a second look at the eclipse test framework wow this looks promising headless osgi based bundle testing just what i need so i converted my build script to go that route only to run smack dab into bug 153429 which captures that the eclipse test framework only supports junit3 that was at least a year ago maybe two i commented out my jetty test and continued running my other junit4 tests using ant i even wrote some junit3 tests that i could run against the eclipse test framework meanwhile the cc list on bug 153429 continued to build and milestones kept passing without any progress i stubbornly left alone my jetty test refusing to rewrite it for junit3 since i figured junit4 on etf was right around the corner finally with eclipse 3 6m5 we have complete and utter victory i have successfully executed my junit4 tests with the eclipse test framework i m not building my product against 3 6 yet still 3 5 0 actually but i still was able to grab the zip for etf and make it part of my base eclipse for pde build to consume now that i have my tests working i do have some observations to share rather than launching the sdk to run my tests i m launching my own product spit out by pde build part of the reason is that i have some additional plug in tests written using windowtester and they care that it s my product which is launched not the sdk there was a gotcha with this etf was created before p2 so you just dropped your test bundles into the plugins folder of the sdk launched the sdk specifying the etf application and test bundle test class and off you go today if you do the same and you re launching the sdk to run your tests it will still work because the sdk ships with the dropins reconciler enabled my product does not which is the default i believe so i couldn t simply drop in my test bundles and make them available for etf to find the solution to this is actually quite clean and works nicely enclose test bundles in a test feature expressing the appropriate dependency on etf hint i had to edit the feature xml manually to include it since i didn t make etf part of my target so i couldn t pick it from the pde editors run pde build to build the test feature after building the product save off a copy of the product before i test with it formally install the test feature into the product using the p2 director launch the product specifying the etf application and a test bundle test class that has been installed into the product i ve also included in my test feature the emma osgi bundle for measuring the coverage provided by my bundle tests thanks to everyone who voted provided patches and general community support to get the etf supporting junit4 it really completes the testing package that is available to developers working with eclipse and more generally osgi posted by ben vitale at 12 37 pm 3 comments labels eclipse emma equinox etf junit osgi testing windowtester tuesday june 30 2009 p2 ui policy and declarative services this is another post in what is becoming a short so far only two series about moving a product from 3 4 to 3 5 after i got my build working the next step was making sure that i could update from one product version to the next i was especially excited about the resolution of https bugs eclipse org bugs show_bug cgi id 246060 which allows for qualifier to be replaced in a product version no longer would i have to manually increment the product version number for purposes of updating to and testing a nightly build so my plan was run pde product build to generate version 1 0 0 abc unzip 1 0 0 abc to some location run pde product build again to generate version 1 0 0 def launch 1 0 0 abc point it at the repository for 1 0 0 def and update profit unfortunately when i launched 1 0 0 abc the install new software dialog didn t have a way for me to add a new repository ditto for the preference page turns out there is a more robust set of p2 ui building blocks in 3 5 which is handy for rcp developers that is described in great detail here http wiki eclipse org equinox p2 adding_self update_to_an_rcp_application i should mention that the rcp p2 example in 3 5 is leaps and bounds ahead of the one from 3 4 there wasn t one so props to the p2 ui team on that at any rate the wiki page tipped me off that there is a ui policy which controls what components are showing and enabled this policy is implemented as an osgi declarative service what really threw me for a loop is that i wasn t trying to do anything special with this policy i just wanted the stock sdk one since our product is based on the sdk debugging the policy behavior i stepped through the preference page code and discovered that the sdkpolicy wasn t getting discovered as a service it was just getting an empty policy every time so this sent me down the route of launching with console to see the osgi console and look for the policy service after fighting with the filter syntax for the services filter console command i googled a bit more and found these useful runtime options for spitting out verbose ds logging information i turned those on but i didn t get anything logged i was pretty stumped at this point then a light bulb came on maybe declarative services wasn t running at all a quick ss ds at the console showed that it was resolved but not active i did a start to spin it up and all of a sudden a deluge of ds logging information printed out and then sdkpolicy started working and voila my p2 ui was working it turns out the root cause is that we had a custom config ini in 3 4 to specify a custom osgi instance area location this was screwing up the start level for the ds bundle i switched the product to generate a config ini for me did a new build and everything worked i plan to migrate the osgi instance area configuration step to a p2 inf file which is what the platform releng guys do useful links 1 equinox runtime options 2 explore eclipse s osgi console 3 around the world in java getting started with osgi declarative services 4 p2 ui policy bug 1 5 p2 ui policy bug 2 posted by ben vitale at 9 10 am 8 comments monday june 29 2009 debugging pde build and the publisher i posted a problem to the pde newsgroup last week about unexpected requirements in my product feature this was in the context of moving a 3 4 based product to 3 5 the general issue was that the director wouldn t install my product because of an unsatisfied requirement it wasn t clear to me where this requirement was even coming from somewhere there was some metadata in my plugins features that expressed a dependency that had worked fine in 3 4 but failed in 3 5 my theory was that if i could capture when the publisher was generating the requirement i d be able to see the source of that requirement and squash it tracing first attempt was to turn on tracing for the p2 components i managed to find the org eclipse equinox internal p2 core helpers tracing class which listed out the different options i stuffed those into a options file org eclipse equinox p2 core debug true org eclipse equinox p2 core generator parsing true org eclipse equinox p2 core engine installregistry true org eclipse equinox p2 core metadata parsing true org eclipse equinox p2 core artifacts mirrors true org eclipse equinox p2 core core parseproblems true org eclipse equinox p2 core planner operands true org eclipse equinox p2 core planner projector true org eclipse equinox p2 core engine profilepreferences true org eclipse equinox p2 core publisher true org eclipse equinox p2 core reconciler true org eclipse equinox p2 core core removerepo true org eclipse equinox p2 core updatechecker true then the trick was to pass along those options to the antrunner app which drives pde build i added debug path to options into my arguments to antrunner running the build again i got two things neither of which were helpful passing debug to the platform also passes debug onto ant thanks to antrunner so my ant ran in debug mode which really clouded the issue with about 8mb of debug output the publisher only outputs two trace statements start and finish nothing about what it is publishing this may be a candidate for enhancement based on these results i reasoned that nobody else must be using this technique to solve their p2 problems moving on stepping through the publisher next up run antrunner with java debug enabled so that i could connect remotely and set breakpoints in ...
|