spring-projects / sts4

The next generation of tooling for Spring Boot, including support for Cloud Foundry manifest files, Concourse CI pipeline definitions, BOSH deployment manifests, and more... - Available for Eclipse, Visual Studio Code, and Theia
https://spring.io/tools
Eclipse Public License 1.0
869 stars 203 forks source link

Available software sites list cluttered and update painfully slow #851

Closed 4javier closed 2 years ago

4javier commented 2 years ago

My STS installation is extremely slow on updates. 5-10 kb/s in the fetching and calculating space phase. I checked my available software sites and found some strange entries.

This is the export

<?xml version="1.0" encoding="UTF-8"?>
<bookmarks>
   <site url="https://download.eclipse.org/technology/epp/packages/2020-09/" selected="true" name="2020-09"/>
   <site url="https://download.eclipse.org/shellwax/releases/latest/" selected="true" name="[updatesite] org.eclipse.shellwax.site.eclipse-repository"/>
   <site url="http://download.eclipse.org/buildship/updates/e410/releases/3.x" selected="true" name="Buildship"/>
   <site url="https://download.eclipse.org/releases/2020-09" selected="true" name="Eclipse Repository"/>
   <site url="file:/home/javier/.eclipse/org.eclipse.platform_4.21.0_816530253_linux_gtk_x86_64/p2/org.eclipse.equinox.p2.engine/profileRegistry/DefaultProfile.profile" selected="true" name="file:/home/javier/.eclipse/org.eclipse.platform_4.21.0_816530253_linux_gtk_x86_64/p2/org.eclipse.equinox.p2.engine/profileRegistry/DefaultProfile.profile"/>
   <site url="file:/home/javier/.eclipse/org.eclipse.platform_4.23.0_816530253_linux_gtk_x86_64/p2/org.eclipse.equinox.p2.engine/profileRegistry/DefaultProfile.profile" selected="true" name="file:/home/javier/.eclipse/org.eclipse.platform_4.23.0_816530253_linux_gtk_x86_64/p2/org.eclipse.equinox.p2.engine/profileRegistry/DefaultProfile.profile"/>
   <site url="file:/home/javier/.eclipse/org.eclipse.platform_4.24.0_816530253_linux_gtk_x86_64/p2/org.eclipse.equinox.p2.engine/profileRegistry/DefaultProfile.profile" selected="true" name="file:/home/javier/.eclipse/org.eclipse.platform_4.24.0_816530253_linux_gtk_x86_64/p2/org.eclipse.equinox.p2.engine/profileRegistry/DefaultProfile.profile"/>
   <site url="https://download.eclipse.org/releases/latest" selected="true" name="Latest Eclipse Release"/>
   <site url="https://download.eclipse.org/linuxtools/update-docker" selected="false" name="Linux Tools Docker Tooling"/>
   <site url="http://download.oracle.com/otn_software/oepe/library/oracle-maf-2.3.1-examples" selected="true" name="Oracle Eclipse Pack for Eclipse"/>
   <site url="http://download.oracle.com/otn_software/oepe/oxygen/" selected="true" name="Oracle Enterprise Pack for Eclipse"/>
   <site url="http://download.oracle.com/otn_software/oepe/12.2.1.8/oxygen/repository" selected="true" name="Oracle Enterprise Pack for Eclipse 12.2.1.8"/>
   <site url="http://download.oracle.com/otn_software/oepe/12.2.1.8/oxygen/repository/dependencies/" selected="true" name="Oracle Enterprise Pack for Eclipse 12.2.1.8 Dependencies"/>
   <site url="https://dist.springsource.org/snapshot/GRECLIPSE/e4.24" selected="true" name="org.codehaus.groovy.eclipse.site"/>
   <site url="http://download.eclipse.org/e4/snapshots/org.eclipse.e4.ui" selected="true" name="org.eclipse.e4.ui update site"/>
   <site url="http://download.eclipse.org/wildwebdeveloper/releases/latest/" selected="true" name="repository"/>
   <site url="https://download.eclipse.org/wildwebdeveloper/releases/latest/" selected="true" name="repository"/>
   <site url="https://download.eclipse.org/wildwebdeveloper/snapshots/" selected="true" name="repository"/>
   <site url="https://download.springsource.com/release/TOOLS/sts4/update/latest" selected="true" name="Spring Tool Suite 4"/>
   <site url="https://download.springsource.com/release/TOOLS/sts4-language-server-integrations" selected="true" name="Spring Tools 4 Language Servers for Eclipse"/>
   <site url="http://testng.org/testng-p2-update-site/" selected="true" name="TestNG P2 Composite P2 Repo"/>
   <site url="http://download.eclipse.org/usssdk/updates" selected="true" name="User Storage All"/>
   <site url="http://download.eclipse.org/oomph/uss/updates/latest" selected="true" name="User Storage Latest"/>
   <site url="https://dist.springsource.org/release/GRECLIPSE/e4.23" selected="true" name="{$dist.name} for e4.23"/>
   <site url="http://download.eclipse.org/mylyn/releases/3.23" selected="false" name=""/>
   <site url="http://download.eclipse.org/technology/m2e/releases/" selected="true" name=""/>
   <site url="https://download.eclipse.org/technology/epp/packages/2020-09/202009101200" selected="true" name=""/>
</bookmarks>

Is there a clean list I can use, adding just the sources I know are needed by some libs I installed explicitly? And anyone knows how could I ended up with this mess?

martinlippert commented 2 years ago

This looks indeed very broken and weird. I can see many update sites from various third-party extensions in this list, including Groovy-Eclipse, old things from Oracle, some a huge number of update sites from various Eclipse projects. This looks indeed like a huge mess.

From the Spring Tools perspective, we usually keep only two update sites around:

Since it looks like you installed a bunch of additional features and extensions, I obviously don't know the correct update sites for them.

I don't know whether that is feasible for you or not, but I would recommend to start with a fresh and vanilla Spring Tools 4 for Eclipse 4.16.0.RELEASE distribution build. And then install the third-party plugins again that you want to use.

To make your life easier when setting up fresh installations of the IDE that continues to contain all your favorite third-party extensions, you might want to take a look at Oomph and the Eclipse installer (https://wiki.eclipse.org/Eclipse_Installer). As a lightweight alternative, I am using a script to install a number of features from specific update sites into an existing installation (https://gist.github.com/martinlippert/5155155).

4javier commented 2 years ago

Hi, thanks for replying about something that looks like is not exactly a "bug" in the software. I prefer to stick with my distro package manager to install software, and with a real clean install I'd lose UI customization and probably git repos auth. Re-install without deleting config in home would make little sense, I suppose. This is the list shown under Help→About STS4→Installed Software

  BOSH Language Server Feature  4.16.0.202209151102 org.springframework.tooling.bosh.ls.feature.feature.group   VMware, Inc.
  Buildship: Eclipse Plug-ins for Gradle    3.1.6.v20220511-1359    org.eclipse.buildship.feature.group Eclipse Buildship
  Cloud Foundry Manifest Language Server Feature    4.16.0.202209151102 org.springframework.tooling.cloudfoundry.manifest.ls.feature.feature.group  VMware, Inc.
  Concourse Pipeline Language Server Feature    4.16.0.202209151102 org.springframework.tooling.concourse.ls.feature.feature.group  VMware, Inc.
  Docker Tooling    5.8.0.202209062047  org.eclipse.linuxtools.docker.feature.feature.group Eclipse Linux Tools
  Eclipse Groovy Development Tools  4.7.0.v202207252131-e2206   org.codehaus.groovy.eclipse.feature.feature.group   Pivotal Software, Inc.
  Eclipse Help System   2.3.1100.v20220831-1800 org.eclipse.help.feature.group  Eclipse.org
  Eclipse Java Development Tools    3.18.1300.v20220831-1800    org.eclipse.jdt.feature.group   Eclipse.org
  Eclipse Plug-in Development Environment   3.14.1300.v20220831-1800    org.eclipse.pde.feature.group   Eclipse.org
  Equinox p2, Provisioning for IDEs.    2.4.1700.v20220819-1949 org.eclipse.equinox.p2.user.ui.feature.group    Eclipse.org - Equinox
  Git integration for Eclipse   6.3.0.202209071007-r    org.eclipse.egit.feature.group  Eclipse EGit
  Git integration for Eclipse - Gitflow support 6.3.0.202209071007-r    org.eclipse.egit.gitflow.feature.feature.group  Eclipse EGit
  Groovy Compiler 3.0   4.7.0.v202207252131-e2206   org.codehaus.groovy30.feature.feature.group Pivotal Software, Inc.
  Groovy Compiler 4.0   4.7.0.v202207252131-e2206   org.codehaus.groovy40.feature.feature.group Pivotal Software, Inc.
  Java implementation of Git    6.3.0.202209071007-r    org.eclipse.jgit.feature.group  Eclipse JGit
  Java implementation of Git - optional LFS support 6.3.0.202209071007-r    org.eclipse.jgit.lfs.feature.group  Eclipse JGit
  JDT Docker Launcher   5.8.0.202209062047  org.eclipse.linuxtools.jdt.docker.launcher.feature.feature.group    Eclipse Linux Tools
  JST Server Adapters   3.2.700.v202204301608   org.eclipse.jst.server_adapters.feature.feature.group   Eclipse Web Tools Platform
  JST Server Adapters Extensions (Apache Tomcat)    3.4.500.v202208260501   org.eclipse.jst.server_adapters.ext.feature.feature.group   Eclipse Web Tools Platform
  JustJ Adoptium OpenJDK Hotspot JRE Complete   17.0.4.v20220903-1038   org.eclipse.justj.openjdk.hotspot.jre.full.feature.group    Eclipse JustJ
  M2E - Maven Integration for Eclipse   2.0.5.20220912-1211 org.eclipse.m2e.feature.feature.group   Eclipse.org - m2e
  M2E - POM Editor using LemMinX language server (includes Incubating components)   2.0.0.20220729-1256 org.eclipse.m2e.lemminx.feature.feature.group   Eclipse.org - m2e
  M2E - SLF4J over Logback Logging  2.0.0.20220717-0848 org.eclipse.m2e.logback.feature.feature.group   Eclipse.org - m2e
  m2e connector for WRO4J   1.2.0.202209071019  org.jboss.tools.m2e.wro4j.feature.feature.group Red Hat, Inc.
  m2e-wtp - Maven Integration for WTP   1.5.2.20220906-1452 org.eclipse.m2e.wtp.feature.feature.group   Eclipse.org - m2e-wtp
  Marketplace Client    1.10.0.v20220502-0731   org.eclipse.epp.mpc.feature.group   Eclipse Marketplace Client
  Mylyn WikiText Editors    3.0.42.202201072301 org.eclipse.mylyn.wikitext.editors_feature.feature.group    Eclipse Mylyn
  Node.js embedder from Wild Web Developer  0.3.1.202208021128  org.eclipse.wildwebdeveloper.embedder.node.feature.feature.group    Eclipse Wild Web Developer project
  Spring Boot Language Server Feature   4.16.0.202209151102 org.springframework.tooling.boot.ls.feature.feature.group   VMware, Inc.
  Spring IDE Boot Microservices Dash    4.16.0.202209151144 org.springframework.ide.eclipse.boot.dash.feature.feature.group Spring IDE Developers
  Spring Tool Suite 4   4.16.0.202209151144 org.springframework.boot.ide.branding.sts4  null
  Spring Tool Suite 4 Main Feature  4.16.0.202209151144 org.springframework.boot.ide.main.feature.feature.group VMware, Inc.
  Spring XML Namespace Support  4.16.0.202209151144 org.springframework.ide.eclipse.xml.namespaces.feature.feature.group    VMware, Inc.
  Tip of the Day UI Feature 0.2.1800.v20220811-0542 org.eclipse.tips.feature.feature.group  Eclipse.org
  TM Terminal   10.7.1.202208160035 org.eclipse.tm.terminal.feature.feature.group   Eclipse CDT
  Wild Web Developer HTML, CSS, JSON, Yaml, JavaScript, TypeScript, Node tools  0.11.0.202206231201 org.eclipse.wildwebdeveloper.feature.feature.group  Eclipse Wild Web Developer project
  Wild Web Developer XML tools  0.15.0.202207081036 org.eclipse.wildwebdeveloper.xml.feature.feature.group  Eclipse Wild Web Developer project
  WST Server Adapters   3.2.1000.v202208120424  org.eclipse.wst.server_adapters.feature.feature.group   Eclipse Web Tools Platform
  WST Server UI 3.3.1300.v202208260501  org.eclipse.wst.server_ui.feature.feature.group Eclipse Web Tools Platform

Is that menu exhaustive of what is actually installed, or it doesn't show everything? Do you see any "foreign" package apart from Groovy that I know I explicitly installed? Btw, even checking for updates, what it looks like taking really much time is "Fetching p2.index from https://download.eclipse.org/whatever..."

martinlippert commented 2 years ago

Btw, even checking for updates, what it looks like taking really much time is "Fetching p2.index from https://download.eclipse.org/whatever..."

Yes, the mechanism walks through all of the update sites in your preferences and downloads all the necessary information from all of them to see if there is anything "interesting".

To me the list looks fine and I indeed see only Groovy-Eclipse to be around beyond what you usually would get from a plain installation. In case you want to verify, you can install a plain Spring Tools 4.16.0 distribution and compare the list.

With that, I would recommend to remove all the update sites from the preferences, add those that I mentioned in my previous comment, add the latest one for Groovy-Eclipse (although I don't know whether there is a version of Groovy-Eclipse out there yet that is based on Eclipse 2022-09), and go from there.