Details
-
Type: New Feature
-
Status: Closed (View Workflow)
-
Priority: Major
-
Resolution: Done
-
Affects Version/s: None
-
Fix Version/s: None
-
Labels:None
-
Story Points:1.5
-
Epic Link:
-
Sprint:Fall 4 Oct 26 - Nov 6, Fall 5 Nov 9 - Nov 20, Fall 6 Nov 30 - Dec 11, Fall 7 Dec 14 - Dec 23, Winter 1 Dec 28 - Jan 8, Winter 2 Jan 11 - Jan 22
Description
IGB uses GUI components from Jidesoft.
For many years, the IGB project has imported these components by including the following configuration in the parent POM:
<properties> ... <jide.version>3.5.15</jide.version> ... </properties> ... <dependencyManagement> ... <dependency> <groupId>com.jidesoft</groupId> <artifactId>jide-ultimate</artifactId> <version>${jide.version}</version> </dependency> ... </dependencyManagement>
The jide-ultimate artifact is available from legacy maven repository 2, specified in the parent POM with:
<repositories>
...
<repository>
<id>repo2</id>
<url>https://maven.bioviz.org/repo2</url>
</repository>
...
</repositories>
Sai Supreeth Segu investigated obtaining jide-ultimate artifact from maven central. He could not find it there, but he did find some other artifacts that appear to contain packages from jide-ultimate.
For this task, review the packages he found. Compare them jide-ultimate. Answer the question:
- Which combination of packages contain all the packages used by jide-ultimate?
Next, use the IGB Docker image to test building IGB, or use your local environment after removing all artifacts from your local .m2 repository to avoid getting confused by local caching.
Recommended steps:
- Make a branch on your IGB fork
- Replace jide-ultimate artifact in the top level POM with the other artifacts.
- Modify shared-lib-wrapper code to import the packages from the other artifacts into our large OSGi bundle, as is currently being done with jide-ultimate
- Remove jide-ultimate artifact from the project
- Test the build on a totally clean environment, e.g., no jidesoft artifacts in the repository local to the build process; ensure it can built on bitbucket using bitbucket pipelines as usual
- Run the built application; check the log for OSGi-related errors, e.g., can't find a package
Tip: IGB contains a Felix Web Console you can use to check whether or not a bundle has been loaded and resolve properly. Errors occur when a bundles dependencies can't be resolved due the framework not being able to locate them. See IGB repository top-level README for how to access and use the Felix Web console.
Also, read: https://www.jidesoft.com/products/. Note that this documentation says that the first 14 artifacts are packaged with JIDE Ultimate Suite, which is probably the human-friendly name for the jide-ultimate.jar artifact. Do a global search of the IGB code base for all jidesoft imports and determine: Which classes and packages are being used? Use this information to identify the subset of artifacts we need for the IGB project.
JIDE Software products are focused on feature-rich Swing components to simplify the development of rich-client applications. We currently offer 15 component products - the JIDE Docking Framework, JIDE Action Framework, JIDE Components, JIDE Grids, JIDE Dialogs, JIDE Shortcut Editor, JIDE Pivot Grid, JIDE Data Grids, JIDE Code Editor, JIDE Feed Reader, JIDE Dashboard, JIDE Charts, JIDE Gantt Chart, and JIDE Diff - which cover almost every aspect of Swing development. All those products above are bundled into JIDE Ultimate Suite. We also have JIDE Professional Suite and JIDE Enterprise Suite which bundle the first two and the first five products respectively.
Also, note this message from Jidesoft:
As of April 2007, we decided to open source the JIDE Common Layer - the foundation of all JIDE other products. You can get the JIDE Common Layer release or access the github repository from github (it was formally hosted on java.net which is now discontinued). If you use maven for your project, all released versions of JIDE Common Layer are also available on the centeral maven repository through sonatype. If you are paid JIDE customers, the source code for JIDE Common Layer is always included in the release under src subfolder.
The above quote is from: https://www.jidesoft.com/products/oss.htm
Attachments
Issue Links
- relates to
-
IGBF-1986 Clean up and streamline dependencies, deploy to maven central
- Closed
I have made code changes and has removed jide-ultimate dependency by replacing it with jide-grids, jide-components, jide-common. I have pushed the code in my branch and it worked fine but there are some issues in the log generated when I ran igb but the application is running fine.
Link for my branch: https://bitbucket.org/supreeth27/integrated-genome-browser/branch/IGBF-1986#diff
Issue 1: Name of the com.jidesoft.common is null
18:05:26.660 INFO com.affymetrix.main.OSGiHandler - Starting Bundle: null
18:05:26.673 INFO com.affymetrix.main.OSGiHandler - Starting Bundle: com.jidesoft.components
18:05:26.677 INFO com.affymetrix.main.OSGiHandler - Starting Bundle: com.jidesoft.grid
Issue 2: Warning for Quickload
18:05:33.404 WARN o.l.i.quickload.util.QuickloadUtils - Optional quickload synonyms.txt file could not be loaded from http://lorainelab-quickload.scidas.org/rnaseq/synonyms.txt
18:05:33.455 WARN o.l.i.quickload.util.QuickloadUtils - Optional species.txt could not be loaded from: http://lorainelab-quickload.scidas.org/rnaseq/species.txt
icon toolbarButtonGraphics/general/Refresh16.gif returned null
icon toolbarButtonGraphics/general/Refresh16.gif returned null
Issue 3: Null Pointer Exception(first one)
18:05:36.573 INFO c.a.i.b.action.BookmarkActionManager - Loading bookmarks from file /Users/supreeth/.igb/bookmarks.html
18:05:36.576 INFO c.a.i.b.action.BookmarkActionManager - Saving bookmarks to file /Users/supreeth/.igb/bookmarks.html~
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at org.lorainelab.igb.plugin.manager.BundleInfoManager.lambda$isVersionOfBundleInstalled$50(BundleInfoManager.java:149)
at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449)
at org.lorainelab.igb.plugin.manager.BundleInfoManager.isVersionOfBundleInstalled(BundleInfoManager.java:149)
at org.lorainelab.igb.plugin.manager.AppManagerFxPanel.lambda$null$7(AppManagerFxPanel.java:150)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at org.lorainelab.igb.plugin.manager.AppManagerFxPanel.lambda$udpateDataEventNotification$8(AppManagerFxPanel.java:149)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at org.lorainelab.igb.plugin.manager.BundleInfoManager.lambda$isVersionOfBundleInstalled$50(BundleInfoManager.java:149)
at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449)
at org.lorainelab.igb.plugin.manager.BundleInfoManager.isVersionOfBundleInstalled(BundleInfoManager.java:149)
at org.lorainelab.igb.plugin.manager.AppManagerFxPanel.lambda$null$7(AppManagerFxPanel.java:150)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at org.lorainelab.igb.plugin.manager.AppManagerFxPanel.lambda$udpateDataEventNotification$8(AppManagerFxPanel.java:149)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Issue 4: Null pointer exception(the second one)
18:05:39.497 INFO o.l.i.q.QuickloadDataProvider - Initializing Quickload Server http://lorainelab-quickload.scidas.org/quickload/
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at org.lorainelab.igb.plugin.manager.BundleInfoManager.lambda$isVersionOfBundleInstalled$50(BundleInfoManager.java:149)
at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449)
at org.lorainelab.igb.plugin.manager.BundleInfoManager.isVersionOfBundleInstalled(BundleInfoManager.java:149)
at org.lorainelab.igb.plugin.manager.AppManagerFxPanel.lambda$null$7(AppManagerFxPanel.java:150)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at org.lorainelab.igb.plugin.manager.AppManagerFxPanel.lambda$udpateDataEventNotification$8(AppManagerFxPanel.java:149)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Issue 6: Error for setting action
18:05:40.141 WARN com.affymetrix.igb.IGB - Trying to add set keystroke for action com.affymetrix.igb.action.HomeAction. But action class com.affymetrix.igb.action.HomeAction exists with same keystroke "ctrl pressed H".
Using keystroke with the latest action.
Issue 7: Not sure if this is the same as the above error(Issue 2)
18:05:41.654 INFO c.a.igb.util.IGBTrustManager - Authenticated CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US,CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US, certificates using default trust store
icon toolbarButtonGraphics/general/Refresh16.gif returned null
cc: [~aloraine]