skip to main content
Skip header Section
Contributing to Eclipse: Principles, Patterns, and PluginsOctober 2003
Publisher:
  • Addison Wesley Longman Publishing Co., Inc.
  • 350 Bridge Pkwy suite 208 Redwood City, CA
  • United States
ISBN:978-0-321-20575-9
Published:01 October 2003
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

Erich Gamma and Kent Beck introduce you quickly, yet thoroughly, to Eclipse, the emerging environment for software development. Instead of simply walking you through the actions you should take, Contributing to Eclipse, with its many sidebars, essays, and forward pointers, guides you through Eclipse. You will not just do. You will also understand.Whether you need to get up to speed immediately or want to better understand the design rationale behind Eclipse, Contributing to Eclipse is the Eclipse resource for you.

Cited By

  1. Snook C, Butler M, Hoang T, Fathabadi A and Dghaym D Developing the UML-B Modelling Tools Software Engineering and Formal Methods. SEFM 2022 Collocated Workshops, (181-188)
  2. Noei E and Heydarnoori A (2016). EXAF, Information and Software Technology, 75:C, (135-147), Online publication date: 1-Jul-2016.
  3. Voisin L and Abrial J The Rodin Platform Has Turned Ten Proceedings of the 4th International Conference on Abstract State Machines, Alloy, B, TLA, VDM, and Z - Volume 8477, (1-8)
  4. ACM
    Boghrati R, Heydarnoori A and Kazemitabaar M Activities performed by programmers while using framework examples as a guide Proceedings of the 29th Annual ACM Symposium on Applied Computing, (1146-1151)
  5. Greiler M, Zaidman A, Deursen A and Storey M Strategies for avoiding text fixture smells during software evolution Proceedings of the 10th Working Conference on Mining Software Repositories, (387-396)
  6. ACM
    Lincke J and Hirschfeld R Scoping changes in self-supporting development environments using context-oriented programming Proceedings of the 4th ACM International Workshop on Context-Oriented Programming, (1-6)
  7. Reiss S Plugging in and into code bubbles Proceedings of the Second International Workshop on Developing Tools as Plug-Ins, (55-60)
  8. Greiler M, Deursen A and Storey M Test confessions: a study of testing practices for plug-in systems Proceedings of the 34th International Conference on Software Engineering, (244-254)
  9. Sarjoughian H and Markid A EMF-DEVS modeling Proceedings of the 2012 Symposium on Theory of Modeling and Simulation - DEVS Integrative M&S Symposium, (1-8)
  10. ACM
    Gama K, Pedraza G, Lévêque T and Donsez D Application management plug-ins through dynamically pluggable probes Proceedings of the 1st Workshop on Developing Tools as Plug-ins, (32-35)
  11. ACM
    Draxler S, Jung A, Boden A and Stevens G Workplace warriors Proceedings of the 4th International Workshop on Cooperative and Human Aspects of Software Engineering, (57-60)
  12. Stevens G, Pipek V and Wulf V (2010). Appropriation Infrastructure, Journal of Organizational and End User Computing, 22:2, (58-81), Online publication date: 1-Apr-2010.
  13. Wu H, Gray J and Mernik M Unit Testing for Domain-Specific Languages Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages, (125-147)
  14. Antkiewicz M, Tonelli Bartolomei T and Czarnecki K (2009). Fast extraction of high-quality framework-specific models from application code, Automated Software Engineering, 16:1, (101-144), Online publication date: 1-Mar-2009.
  15. Vainsencher D and Black A A pattern language for extensible program representation Transactions on Pattern Languages of Programming I, (1-47)
  16. ACM
    Nicoara A, Alonso G and Roscoe T (2008). Controlled, systematic, and efficient code replacement for running java programs, ACM SIGOPS Operating Systems Review, 42:4, (233-246), Online publication date: 25-Apr-2008.
  17. ACM
    Nicoara A, Alonso G and Roscoe T Controlled, systematic, and efficient code replacement for running java programs Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008, (233-246)
  18. Kopetz R and Moreau P Software quality improvement via pattern matching Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering, (296-300)
  19. Cho A, Deva P and Tempero E JWS Proceedings of the thirty-first Australasian conference on Computer science - Volume 74, (109-116)
  20. ACM
    Reiss S Automatic code stylizing Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (74-83)
  21. Alves G, Maciel P and Lima R Modeling and evaluation of supply chains with GSPN components Proceedings of the 2nd international conference on Performance evaluation methodologies and tools, (1-10)
  22. ACM
    Heydarnoori A and Czarnecki K Mining implementation recipes of framework-provided concepts in dynamic framework API interaction traces Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, (876-877)
  23. Concas G, Marchesi M, Pinna S and Serra N (2007). Power-Laws in a Large Object-Oriented Software System, IEEE Transactions on Software Engineering, 33:10, (687-708), Online publication date: 1-Oct-2007.
  24. Dalle O The OSA project Proceedings of the 2007 Summer Computer Simulation Conference, (1155-1162)
  25. Xu L (2007). RobotStudio, Journal of Computing Sciences in Colleges, 22:6, (65-72), Online publication date: 1-Jun-2007.
  26. Zeller A The Future of Programming Environments 2007 Future of Software Engineering, (316-325)
  27. ACM
    Xu L (2007). RobotStudio, ACM SIGCSE Bulletin, 39:1, (440-444), Online publication date: 7-Mar-2007.
  28. ACM
    Xu L RobotStudio Proceedings of the 38th SIGCSE technical symposium on Computer science education, (440-444)
  29. Djuric D, Devedzic V and Gasevic D (2007). Adopting Software Engineering Trends in AI, IEEE Intelligent Systems, 22:1, (59-66), Online publication date: 1-Jan-2007.
  30. ACM
    Fairbanks G, Garlan D and Scherlis W Design fragments make using frameworks easier Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, (75-88)
  31. ACM
    Warth A, Stanojević M and Millstein T Statically scoped object adaptation with expanders Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, (37-56)
  32. ACM
    Fairbanks G, Garlan D and Scherlis W Design fragments make using frameworks easier Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, (762-763)
  33. ACM
    Fairbanks G, Garlan D and Scherlis W (2006). Design fragments make using frameworks easier, ACM SIGPLAN Notices, 41:10, (75-88), Online publication date: 16-Oct-2006.
  34. ACM
    Warth A, Stanojević M and Millstein T (2006). Statically scoped object adaptation with expanders, ACM SIGPLAN Notices, 41:10, (37-56), Online publication date: 16-Oct-2006.
  35. ACM
    Stevens G and Wiedenhöfer T CHIC - a pluggable solution for community help in context Proceedings of the 4th Nordic conference on Human-computer interaction: changing roles, (212-221)
  36. Kleppe A MCC Proceedings of the Second European conference on Model Driven Architecture: foundations and Applications, (173-187)
  37. ACM
    Wendehals L and Orso A Recognizing behavioral patterns atruntime using finite automata Proceedings of the 2006 international workshop on Dynamic systems analysis, (33-40)
  38. ACM
    Sanchez A, Vega B, Gonzalez A and Jackson G Automatic support for testing web-based enterprise applications Proceedings of the 44th annual Southeast regional conference, (325-330)
  39. Schmit B and Dustdar S Systematic design of web service transactions Proceedings of the 6th international conference on Technologies for E-Services, (23-33)
  40. Flohr T and Schneider T An XP experiment with students Proceedings of the 6th international conference on Product Focused Software Process Improvement, (474-486)
  41. ACM
    Böttcher A Visualizing the MMIX superscalar pipeline Proceedings of the 2004 workshop on Computer architecture education: held in conjunction with the 31st International Symposium on Computer Architecture, (11-es)
  42. ACM
    Zhou S, Xu C, Wu H, Zhang J, Lin Y, Wang J, Gray J and Bryant B E-R modeler Proceedings of the 42nd annual Southeast regional conference, (160-165)
Contributors
  • International Business Machines
  • Facebook, Inc.

Recommendations

Reviews

Diomidis Spinellis

The Eclipse platform can best be described as a meta integrated development environment (IDE): a platform designed for building integrated development environments. As its developers point out, “the Eclipse platform is an IDE for anything, and nothing in particular.” A notable and important part of the platform is the plug-in development environment. This allows programmers working, for example, with Eclipse’s Java development tools, to turn themselves from plain users and configurers of their environment into sophisticated extenders, publishers, and enablers. These roles form an important part of what Gamma and Beck term a “contribution circle,” so it is worth expanding on them. Configurers are simply users who customize their experience of Eclipse, changing their programming environment in ways envisioned by the original developer. Extenders, on the other hand, make changes to their Eclipse environment by developing plug-ins that provide new functionality. Interestingly, Eclipse is almost entirely built by plugging in functionality. Extenders can graduate to publishers by bundling their extensions in a form that other fellow programmers can load and use. Finally, by equipping their plug-ins with places where new functionality can be provided, the so-called extension points, publishers become enablers: users who consciously enrich the extension modalities of the Eclipse ecosystem. These roles actually form a circle, because enablers will become users of their own work. Fittingly, for a work co-authored by the evangelist of extreme programming, the book is organized around four concentric circles, each following the contribution circle in increasing detail. The first circle (circle zero) describes a simple “hello world” plug-in. Here, the authors present the basic tasks for developing a plug-in and integrating it with Eclipse. Circle one moves away from the toy example and describes the development of a plug-in for running test cases, based on Gamma and Beck’s famous JUnit tool. Circle two expands the plug-in’s functionality, adding all the capabilities expected from mature Eclipse contributions: views, context menus, builders, an editor, perspectives, help, internationalization, and an extension point. The book’s circle three section departs from the detailed step-by-step “here is how to do it” approach of the previous parts, and, in the form of design stories based on patterns, provides additional insights into Eclipse’s components. Many readers of this review who know Erich Gamma from his work on design patterns will doubtlessly enjoy reading the clearly illustrated descriptions of existing patterns in the context of the Eclipse framework. Although the prescriptive style adopted in the book’s first three parts can sometimes be tiring and appear shallow, programmers who wish to extend Eclipse will probably appreciate the detailed instructions, code samples, and corresponding screen dumps. Others (myself included) might have preferred the writing to have been more analytical, descriptive, and organized, and less prescriptive and (in places) unapologetically utilitarian. Eclipse brings to IDEs what Unix brought to programmer toolboxes: a rich, intellectually fulfilling development environment that individual programmers can extend and build on. This book will probably be a valuable guide for a brave new generation of tool builders. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.