Not to be confused:
- Eclipse Foundation
- Eclipse Platform
- Eclipse SDK (Platform + JDT + PDE)
- Eclipse IDEs (Platform + plugins such as JDT)
- Eclipse p2 is used to “Install New Software”.
- Eclipse working groups
- Eclipse projects
Wikipedia explains Eclipse better than Eclipse explains itself? [fn::https://en.wikipedia.org/wiki/Eclipse_Foundation]
What projects are in the Eclipse Foundation? Wikipedia answers this better than Eclipse itself does. [fn::https://en.wikipedia.org/wiki/List_of_Eclipse_projects]
<2019-06-11> No Eclipse events in Asia. Eclipse events seem to be mostly in Europe.
Eclipse is like Emacs but in Java instead of Elisp.
“The original vision of Eclipse was to accelerate the creation of IDEs”[fn::https://www.eclipse.org/org/councils/roadmap_v6_0/themes60.php]
I find the code unpleasant. For example, WorkbenchPage, why is openEditors not implemented in terms of openEditor? Also, the p2 API can be made easier to use.
Download Eclipse SDK (not to be confused with Eclipse Platform).
<2019-06-11> Eclipse 4.11 does not work on Ubuntu 14.04, but this is fixed in Eclipse 4.12. [fn::https://bugs.eclipse.org/bugs/show_bug.cgi?id=544498]
Switch View / Editor / Window / Tab ? What’s it called? What are the things/ontologies? Workbench? Workspace?
The mother of all shortcuts:
- Shift+Ctrl+L: Show Keyboard Shortcuts
- Ctrl+3: Quick Access
- Alt+Shift+Q: Show View
Perspectives:
- Ctrl+F8: Next Perspective
- Ctrl+Shift+F8: Previous Perspective
- Ctrl+O: Quick Outline, like IntelliJ IDEA Ctrl+F12
Mylyn[fn::https://wiki.eclipse.org/Mylyn/User_Guide#Shortcuts]
- Ctrl+F9: “Activate Task” dialog
- Ctrl+F12: “Open Task” dialog
- Shift+Alt+Q K: Open “Task List” View
- Shift+Ctrl+F9: Deactivate Task
Are there shortcuts for these?
- Open a Perspective
Learn Eclipse keyboard shortcuts?[fn::https://stackoverflow.com/questions/1986195/eclipse-list-of-default-keyboard-shortcuts]
To keep complexity under control, because we have extremely limited capacity for complexity.
You don’t need IDE for small programs (hundreds of lines of code, or maybe even in the low thousands of lines of code).
Install M2E[fn::https://www.eclipse.org/m2e/].[fn::https://www.vogella.com/tutorials/EclipseMaven/article.html]
- How to make Eclipse feel more like IntelliJ IDEA?
- What is the best way to navigate?
- How do I see the summary of all Eclipse projects? Where is the data source?
How do I ensure that all Eclipse installations at different machines use the same coding style for my project?
- Export my Eclipse preferences?
- Are per-project settings carried to different machines?
- Write a plugin to enforce that?
How do I import a Maven project (one with pom.xml)?
Who is the target audience of the eclipse.org website? “Eclipse.org always seemed more interested in promoting the Eclipse Foundation than the IDE. The website feels like a collection of independent projects which are not maintained.” [fn::https://movingfulcrum.com/the-fall-of-eclipse/] Some counter-arguments? [fn::https://www.reddit.com/r/programming/comments/52mcf3/the_fall_of_eclipse/] [fn::https://news.ycombinator.com/item?id=10273849] [fn::’this started with a simple but brilliant idea JetBrains developers had: “disk space is dirt cheap, let’s use 1-2 GB of it to store index, so that autocompletion could work lightining fast”’ https://news.ycombinator.com/item?id=10273849]
Why does Eclipse “Toggle Comment” have three shortcuts: Ctrl+/, Ctrl+7, Shift+Ctrl+C? Who is in charge of designing the user experience?
“A private actor giving away software to a foundation might be interpreted in different ways. In this case and despite all reassuring talks around the move, this is not a good sign for the future of Ceylon.” [fn::https://dzone.com/articles/the-rise-and-fall-of-jvm-languages]
(JetBrains Kotlin, Red Hat Ceylon, and Eclipse eXtend?)
There seems to be a trend of companies “donating” projects, that they no longer want, to non-profit foundations such as the Eclipse Foundation and the Apache Foundation.
Apache Foundation also has lots of Java projects. What is the difference between Eclipse Foundation and Apache Foundation?
“tl;dr Apache is no longer the place projects go to die and Eclipse is expanding from just IDEs.”[fn::http://insightfullogic.com/2013/Oct/12/resurgence-apache-and-eclipse/]
- “there’s one thing that a software foundation brings that GitHub can’t replicate: a home for intellectual property.”
Git 2.20.0 (2019) is faster than the Git that comes with Debian 9 (2017) which is faster than the Git that comes with Ubuntu 14.04 (2014).
https://eclipsesource.com/blogs/2012/05/10/eclipse-4-final-sprint-part-1-the-e4-application-model/
https://www.vogella.com/tutorials/EclipseJFace/article.html
https://wiki.eclipse.org/JDT_UI/How_to_Contribute
https://www.eclipse.org/jdt/ui/doc/bug-annotation.php
https://en.wikipedia.org/wiki/Dynamic_Languages_Toolkit
https://en.wikipedia.org/wiki/Xtext
https://jaxenter.com/eclipse-dynamic-language-toolkit-100025.html
https://stackoverflow.com/questions/15787916/headless-osgi-framework-from-command-line
Multiple profiles?[fn::https://stackoverflow.com/questions/5856735/multiple-eclipse-profiles]
The “Platform Plug-in Developer Guide” in Help Center[fn::https://www.eclipse.org/documentation/].
How do I install the Platform plugin that I am developing so that it overrides/shadows/replaces the version that comes with Eclipse?
First, make sure that your plugin will not prevent you from booting Eclipse. You can self-host (run another Eclipse instance from your Eclipse instance). As simple selecting a file in your plugin, and then Run > Debug As > Eclipse Application (or press F11 if that is already selected).
Then, use this menu: File > Export > Plug-in Development > Deployable plug-ins and fragments > Install into host. This is in the help that comes with Eclipse: Help > Help Contents > Plug-in Development Environment Guide > Tasks > PDE UI > Export and Install into the Running Host.
How do we know that our plugin is installed?
Help > About > Installation Details. (or Ctrl+3 “ins det”)
That feature is very handy: No need to understand P2. If anything breaks, nuke the Eclipse installation, and reinstall everything.
Can’t use dropins because it can’t override installed plugins.
What if it breaks? It can be reverted. [fn::https://wiki.eclipse.org/FAQ_Revert_an_Update_or_Installation_with_p2] But the same page says “Unfortunately, because of p2 design flaws, revert usually doesn’t work when you need it.” WHAT!?
But it worked for me, but perhaps that’s because I try not to be too wild with Eclipse.
Advanced: Creating an update site for your plugin[fn::https://www.vogella.com/tutorials/EclipsePlugin/article.html#exercise-create-an-update-site-your-plug-in]
Eclipse Jobs and Background Processing - Tutorial[fn::https://www.vogella.com/tutorials/EclipseJobs/article.html]
There is also an article in the Eclipse wiki but I forgot the URL.
What can be contributed?[fn::https://wiki.eclipse.org/Contribute] Code, documentation, issue report, money, votes for bugs, triaging, committing, moderating, usage?
“Google Summer of Code: Participate and get paid for coding!”[fn::https://wiki.eclipse.org/Contribute] But I’m not a student. Why is it only for students?
What does the Foundation think is important? What is the Foundation’s strategy and goals? Are we and the Foundation aligned with each other? What are the economic incentives?
The IDE does not make money?
https://www.eclipse.org/org/councils/roadmap_v6_0/
Strategic focus areas: cloud native Java, IoT and edge, automotive, tools[fn::https://www.eclipse.org/membership/documents/eclipse-foundation-overview.pdf]. “no GPL or AGPL”.
“Our community is innovating on the next generation of cloud native developer tools.” Does that mean that they will “abandon” the Java IDE?
They are de-emphasizing Java?
They missed the JavaScript boat?[fn::smrtinsert https://news.ycombinator.com/item?id=16940646]
They are going to focus on Orion and the Web.
“Eclipse tools have historically had a very strong correlation with the Java language. However, with the rapid growth of Rich Internet Application languages and technologies such as JavaScript and Ajax, the Eclipse community must support the requirements of these developers as well. Eclipse will begin to invest in re-tooling the Eclipse platform with the needs of Web developers in mind.”
What’s with all that IoT? Is that where the money is?
2011 will see another release of the Eclipse 4 stream, Eclipse 4.1. The major goals of this new release include:
- Making it easier to write plug-ins
- Allowing better control over the look of Eclipse based products
- Increasing diversity of contributors to the platform
- Maintaining backward compatibility for API-clean clients
mature = dead?
‘Then I read the Eclipse forums and found out that there was a major UI redesign with no automated testing and very little manual testing, and the reason was “unfortunately there’s no budget for testing”. This was the word of the actual official devs, by the way. They decided to do a massive rewrite without testing. It boggles the mind.’[fn::the_af https://news.ycombinator.com/item?id=16940646]
<2019-06-23> It has been around for 17 years (since 2001[fn::https://en.wikipedia.org/wiki/Eclipse_(software)]) and is still active as of 2019, and it won’t die soon.
Don’t invest in some technology that is going to be abandoned 10 years later.
We have two choices:
- Invest in shitty technology that has been around for 20 years and doesn’t seem to die any time soon.
- Pick a new rad thing that God knows how long it will survive.
Like it or not, Java is here to stay. Nobody is going to be too eager to rewrite all their legacy code. After all, those legacy code has been working fine.
All code becomes legacy as soon as it is written.[fn::https://leejo.github.io/2016/02/22/all_software_is_legacy/]
They will “abandon” the Java IDE; move people to other projects, every bug will be wontfix “Our community is innovating on the next generation of cloud native developer tools.”
To find whether a project is not dead, look at two things: its Git stats[fn::https://git.eclipse.org/c/] and its Bugzilla stats[fn::https://bugs.eclipse.org/bugs/].
https://wiki.eclipse.org/Category:How_to_Contribute
What is the code contribution process/workflow?
- component owner
Bug reporting FAQ[fn::https://wiki.eclipse.org/Bug_Reporting_FAQ]:
- “What is the difference between Severity and Priority?”
- Severity is assigned by a user. Priority is assigned by the developer/committer. Yes, there do exist P5 blockers[fn::https://bugs.eclipse.org/bugs/buglist.cgi?bug_severity=blocker&list_id=18791338&priority=P5&query_format=advanced] and P1 enhancements[fn::https://bugs.eclipse.org/bugs/buglist.cgi?bug_severity=enhancement&list_id=18791337&priority=P1&query_format=advanced].
“If the cost/benefit ratio of a bug does not change, it may remain unaddressed forever.”
There are too many issues and too few people to work on them. Committers are overloaded and are under time pressure of their release schedule.
https://wiki.eclipse.org/Development_Resources
How to use Eclipse Bugzilla?[fn::https://wiki.eclipse.org/Development_Resources/HOWTO/Bugzilla_Use] Life cycle. What conventions? “helpwanted” keyword? What is the difference between “bugday” and “helpwanted”? Which one is for beginner? Issues marked with “bugday” are friendly to absolute beginners. Issues marked with “helpwanted” is the next step.
The list of keywords and their meanings[fn::https://bugs.eclipse.org/bugs/describekeywords.cgi]
How do we make money from that? What is being bought and sold? What is being exchanged?
Build Eclipse Platform (not just the UI) from source code? Build instructions?[fn::https://wiki.eclipse.org/Platform-releng/Platform_Build]
There are two workflows:
- Bugzilla-first (talk first act later)
- Gerrit-first (act first talk later)
If your change is big, discuss it on Bugzilla first.
Use SSH to connect to Gerrit and push experimental commits.[fn::https://wiki.eclipse.org/Gerrit]
Must we make a Bugzilla issue before we push to Gerrit for review? Must every Gerrit review have a Bugzilla issue? No.
“Once a Gerrit change set is created, the link to the Gerrit change should be posted on the Bugzilla. If you are using the correct commit format, this is done automatically by the Eclipse infrastructure.”[fn::https://wiki.eclipse.org/Platform/How_to_Contribute]
But what if I just want to test my commits without notifying anyone, because the commits are still sketchy?
After Gerrit, EGit Bot automatically creates a continuous-integration build for the patch set. We can see build errors here before pushing to production and embarrassing ourselves. Cool!
Follow the wiki[fn::https://wiki.eclipse.org/Gerrit].
- Upload SSH public key to Gerrit.[fn::https://git.eclipse.org/r/#/settings/ssh-keys]
If you still can’t connect, file a bug in “Community > Gerrit”[fn::https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Community&component=Gerrit]. Sometimes you can’t connect to Gerrit.[fn::https://bugs.eclipse.org/bugs/show_bug.cgi?id=548554]
https://wiki.eclipse.org/Eclipse/Rhythm
Install “e4 spies” from the marketplace.[fn::https://marketplace.eclipse.org/content/e4-spies] There are several spies in that package.[fn::https://www.vogella.com/tutorials/EclipsePlatformDevelopment/article.html#eclipse_ide_spies]
Use Plugin Spy (Shift+Alt+F1) to find where to insert menus, modify Eclipse Platform UI, etc.
Menu Spy (Shift+Alt+F2)
https://wiki.eclipse.org/Status_Handling_Best_Practices
The official documentation[fn::https://wiki.eclipse.org/Mylyn/Integrator_Reference#Tasks_API] is somewhat outdated.
Does the 2009 Mylyn connector crash course[fn::http://mirror.rise.ph/eclipse//mylyn/docs/2009-03-mylyn-connector-crash-course-talk.pdf] help?
<2019-06-23> The last news was from 2011.[fn::https://www.eclipse.org/mylyn/] Is Mylyn dead? Did it ever catch on?
<2019-06-22> Mylyn has hardly any new developments? The Git commits are rather few?
<2019-06-22> Editing the Wiki requires review. But there does not seem to be any reviewer. I’ve been waiting for two days and there does not seem to be any approval. Perhaps I should try opening a Bugzilla issue to ask for a Wiki edit review?
It seems that back in 2008–2013 they tried to force-fed Mylyn to developers and it backfired. [fn::http://paranoid-engineering.blogspot.com/2008/07/what-is-eclipse-mylyn-anyway.html]
Open Resource: plugin.xml.
Open “Dependencies” page.
Add dependencies to these bundles:
org.eclipse.core.runtime org.eclipse.jface org.eclipse.mylyn.commons.ui org.eclipse.mylyn.tasks.core org.eclipse.mylyn.tasks.ui org.eclipse.ui.forms org.eclipse.ui.workbench
- Create a subclass of AbstractRepositoryConnector
- Define a static final String field KIND
- Implement getConnectorKind returning KIND
- Implement getLabel
- Create a subclass of AbstractTaskDataHandler
- Implement initializeTaskData
- Create a subclass of AbstractRepositoryConnector
- These methods should have been in AbstractTaskDataHandler
- Implement getTaskData
- Implement updateTaskFromTaskData
- These methods should have been in AbstractTaskDataHandler
- Create a subclass of AbstractTaskEditorPage
- Create a subclass of AbstractTaskEditorPageFactory
- In AbstractRepositoryConnector
- Implement canCreateNewTask
- Create a subclass of AbstractRepositoryConnectorUi
- Implement getSettingsPage
- Implement getQueryWizard
- Implement getNewTaskWizard
Add these extensions:
- org.eclipse.mylyn.tasks.ui.repositories
- connectorCore: the qualified name of your subclass of AbstractRepositoryConnector
- connectorUi: the qualified name of your subclass of AbstractRepositoryConnectorUi
While still retaining all our IPs?
One way is to be an employee of an Eclipse Foundation member such as RedHat? But what company doesn’t have IP assignment?
Can we get paid developing Eclipse?[fn::https://www.eclipse.org/contribute/dev_program.php]
no individual bug bounties, too much administrative overhead[fn::https://bugs.eclipse.org/bugs/show_bug.cgi?id=309536]
“This was the purpose of FEEP and it wasn’t so successful. It added a lot of work on the Foundation bucket and was unfair since effort was focused on the IDE while the community is about much more” [fn::https://bugs.eclipse.org/bugs/show_bug.cgi?id=516825]
“Technically, an Eclipse application is a plug-in that creates an extension for the extension point org.eclipse.core.runtime.applications.” [fn::https://wiki.eclipse.org/FAQ_What_is_an_Eclipse_application%3F]
Install New Software > “Equinox p2, SDK” (org.eclipse.equinox.p2.sdk.feature.group)
Use it carefully, because it may break your Eclipse installation?
(Begin rant.)
The wiki does not seem to answer that very basic question.[fn::https://wiki.eclipse.org/Equinox/p2/Admin_UI_Users_Guide]
Unanswered question, 2009[fn::https://www.eclipse.org/forums/index.php?t=tree&th=40275&goto=130850&]
Obscure page with the answer[fn::https://wiki.eclipse.org/Starting_Eclipse_Commandline_With_Equinox_Launcher/p2_Admin_UI]. It contains dangerous deletion scripts. Do not run.
“This article demonstrates how to use the OSGi console and how to extend the console” in Eclipse[fn::https://www.ibm.com/developerworks/library/os-ecl-osgiconsole/index.html].
List some bundles.[fn::https://www.javaworld.com/article/2077837/java-se-hello-osgi-part-1-bundles-for-beginners.html?page=3]
“The Gogo shell, on which the Equinox console is based, […]”[fn::https://help.eclipse.org/2019-03/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fconsole_shell.htm] “Apache Felix Gogo is a subproject of Apache Felix implementing a command line shell for OSGi.”[fn::https://felix.apache.org/documentation/subprojects/apache-felix-gogo.html]
List of Gogo shell commands[fn::https://felix.apache.org/documentation/subprojects/apache-felix-gogo.html]
Console is not a de jure OSGi standard. “Unfortunately [OSGi RFC 147] was never made a standard.”[fn::https://felix.apache.org/documentation/subprojects/apache-felix-gogo.html]
How does this relate with Java 9’s JShell, BeanShell, etc.?
What is OSGi’s ontology? Containers, runtime-environments, frameworks? Same or different?
Internet opinions on Equinox, Felix, and Knoplerfish? [fn::https://stackoverflow.com/questions/36276175/osgi-container-equinox-vs-apache-felix-inside-apache-karaf] [fn::https://www.quora.com/What-are-the-pros-and-cons-of-using-Apache-Felix-versus-Knopflerfish-as-OSGI-framework]
Why do we need more two OSGi container implementations from two non-profit organizations? Isn’t this a waste of resources?
Eclipse application is OSGi application
Product = application + branding[fn::https://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fruntime-options.html]
Eclipse workspace = OSGi instance area
Eclipse Communication Framework?
“The Eclipse Communication Framework has a Jabber client built in”[fn::https://stackoverflow.com/questions/12083285/chat-for-eclipse-ide-in-ubuntu]?
2014[fn::https://martijndashorst.com/blog/2014/07/07/custom-eclipse-luna]
Given a bundle id, how do I find the update site? Eclipse Oomph?[fn::https://wiki.eclipse.org/Eclipse_Oomph_Authoring#How_to_find_a_P2_repository_at_Eclipse_using_the_Repository_Explorer]
PDE build defect?[fn::https://wiki.eclipse.org/Platform_Releng/Common_build_issues]
Jed Anderson’s answer: “Plugins: Finding plugins involves lots of hunting for update sites and then you can never be sure you got the exact right binaries. Sometimes update sites go down, or you lose support for your Eclipse version when the plugin developers release a new update site. One suggestion is to make local copies of update sites to mitigate your exposure to such problems.”[fn::https://stackoverflow.com/questions/351373/creating-an-eclipse-distribution]
It may be more efficient to watch mailing lists than bug trackers.
- Email shows what people are actually working on.
- Email is much faster and more pleasant to use, navigate, and search than Eclipse Bugzilla is.
- When shit happens, it goes to email first, and then the bug tracker later, if it ever touches the bug tracker.
Example of shit happens: I20190520-1805[fn::https://www.eclipse.org/lists/platform-dev/msg01654.html]. How the hell are we going to know that, if not from the mailing list? The download page does not say anything?
Do not just download an I-build willy-nilly. Look at the platform-dev mailing list first.
This page[fn::https://download.eclipse.org/eclipse/downloads/build_types.html] reachable from this page[fn::https://download.eclipse.org/eclipse/downloads/] is stale. There are no more S-builds. There are only R-builds and I-builds now.
platform-dev[fn::https://www.eclipse.org/lists/platform-dev/threads.html]
pde-dev[fn::https://www.eclipse.org/lists/pde-dev/threads.html]
jdt-dev[fn::https://www.eclipse.org/lists/jdt-dev/threads.html]
The question: When should we use email, and when should we use bug tracker?
I used IDEA 2018 and Eclipse 2019.
- Eclipse starts faster and uses less RAM. Perhaps this is because Eclipse indexes less eagerly than IDEA does.
- IDEA has better navigation, autocompletion/intellisense/content-assist, and editor tab behavior.
Several options:
- Uni-Bonn PDT[fn::https://sewiki.iai.uni-bonn.de/research/pdt/docs/start]
- Cancinos ProDT[fn::https://marketplace.eclipse.org/content/prolog-development-tools-prodt] a.k.a. ProDevTools[fn::https://sourceforge.net/projects/prodevtools/]
Uni-Bonn PDT seems more mature.