score:1
the adapter pattern seems like the right way, if you really want to provide continual support for the different versions of the widgetmaster plug-in, for long term scope.
for a shorter support time, i'd duplicate the plug-in and leverage my version control system and its merging capabilities. i'd create a different branch that uses the most recent version of widgetmaster. so i'd have two versions of my plug-in, each would use the different versions of widgetmaster, calling to the specific version's api call. make sure that your vcs has been informed of the merge resolution once it's all set so that future merges do not overwrite the api call customization (e.g. ours
strategy with git merge).
the two different approaches have overheads but at different times. the adapter approach has a bigger initial overhead while the vcs approach would be quicker to setup. but once the adapters have been implemented, the overhead is minimal, while the vcs approach will always have the merging overhead.
as a side note, i wonder if osgi fragments are really the best option for you to setup the version to use of widgetmaster (if you pick the adapter approach). i am no osgi expert, but you could look into osgi service factories to give you the right version of widgetmaster. there are more evolved ways apparently to accomplish dependency injection with osgi: apache felix maven scr plugin, blueprint container, apache felix ipojo. this so question seems to cover the question of di in osgi.
good luck! i'd like to know which route you take, as i'll face some similar challenge soon!
Source: stackoverflow.com
Related Query
- Eclipse plugin compatibility layer (using fragments?)
- Using compatibility layer from Eclipse 3.8 to 4.x
- Can not import Eclipse mars plugin to Eclipse neon using import->plugins and fragments
- Getting "CHECKOUT can only be performed on a version resource" when trying to commit using Eclipse subversive plugin
- Cannot search for artifact in Eclipse Kepler using m2e plugin
- noClassDefFoundError using Scala Plugin for Eclipse
- How do I configure Eclipse to launch a browser when Run or Debug is selected using Pydev plugin
- Android preferences freeze when using ADT Plugin v9 with Eclipse on Mac?
- Adding license to new files when using Eclipse and the Copyright wizard plugin
- How can I connect to a SFTP server using the "Remote System Explorer End-User Runtime" Eclipse plugin and a .pem private key?
- Developing eclipse plugin using maven dependencies
- null pointer exception for new google appending using eclipse plugin
- Automatic WSDL Java Stub generation in Eclipse Workspace using Apache CXF and CXF Maven Plugin
- Using Kotlin to develope an Eclipse plugin
- Using eclipse plugin independent from eclipse
- Eclipse 2020-09: org/omg/CORBA/UserException when trying to run WebSphere AS 8.5 Servers using Plugin
- Creating a helloWorld plugin for Android using Cordova and Eclipse
- Using Eclipse SimpleTest plugin - SimpleTest not working
- How to build and install an Eclipse plugin using ant
- Maven project dependency error in eclipse using m2e plugin (for maven)
- How do I create an Eclipse plugin release using Maven and Tycho?
- More fine grained sorting of methods using Eclipse Ganymede: Is there a good plugin available?
- How to unzip an archive during Eclipse plugin installation using p2 touchpoint instructions
- How to install groovy plugin for eclipse without using the update site link
- Using Eclipse ant plugin from command line?
- How to create a struts 2 project using m2eclipse plugin using Eclipse Indigo?
- Compatibility issue between the 'groovy-all' jars present in eclipse plugin and maven dependency
- Creating a Site Using Eclipse Maven Plugin
- Using sqlitegen plugin in Eclipse for Android
- using EvoSuite plugin for eclipse on Windows 7 OS
More Query from same tag
- mvn package or mvn install
- Shortcut to leave textfield that accepts tab in eclipse
- Where to download GlassFish plugins for Eclipse 3.6 (Helios)
- Eclipse JSDT - declaring the type of a function argument
- How can I use an Eclipse formatter profile in VIm?
- "Eclipse for PHP Developers" highlight color
- CMake output in Eclipse CDT console
- How do I install XULRunner 1.8.x/libxul0d on Ubuntu Lucid Lynx (10.x)? Required for Eclipse SWT Browser
- eclipse.buildScript Complete Example Script for headless build
- Error installing Maven Integration on Eclipse
- Eclipse Source / Organize Imports option does not show up for project or folder
- How to write dynamic code for xml code below using eclipse IDE for Android
- Eclipse plugin developement : Schematic Editor
- Can I use somehow printpoints in IntelliJ
- Install Jar Dependency to Local Repository as Part of Maven Build Process
- Maven does not add classpath to Eclipse project
- Command Path issue with Roxio installed
- Avoid Action execution twice in struts2
- Do Any Changes to the Maven Java Project Have to Do the Maven "Package or Install" to Run in Eclipse
- How do I change the folder Eclipse exports libraries to?
- Eclipse and Appengine
- Copyright symbol "©" is invalid?
- I updated java and eclipse does not work
- Download finished with wrong size - eclipse and android
- Groovy geb.waiting class is not found
- Configure p2 Repository Managers to connect to HTTPS repository(-ies) with client certificate(s) programmatically
- Eclipse exported jar file just shows a black Jpanel
- Build path entry is missing in eclipse
- Parsable and "linkable" format for Eclipse
- is it possible to click a link outside eclipse to open the marketplace page inside eclipse?