Details
-
Type: Improvement
-
Status: Closed (View Workflow)
-
Priority: Minor
-
Resolution: Done
-
Affects Version/s: None
-
Fix Version/s: None
-
Labels:
-
Story Points:1
-
Epic Link:
-
Sprint:Summer 3: 6 Jul - 17 Jul, Summer 4: 14 Jul - 28 Jul, Summer 5: 3 Aug - 14 Aug, Summer 6: 17 Aug - 28 Aug, Summer 7: 31 Aug - 11 Sep, Fall 1: 14 Sep - 25 Sep, Fall 2: 28 Sep - 9 Oct
Description
The IGB project contains a dependency on a library from Affymetrix that they are no longer supporting. We have copy of the jar file for this library in one of our legacy maven repositories. We would like to retire that repository but make sure IGB can still build and function.
For this task, lets remove the affymetrix "fusion" library and the "jlfgr" library.
To begin, let's try to remove dependencies such as com.affymetrix:fusion that are not needed anymore.
Attachments
- jflow-2.0.jar
- 47 kB
- jflow-3.0.jar
- 49 kB
- jflow-mvn.zip
- 2.79 MB
- jflow-new.zip
- 2.80 MB
- Jidesoft_error.png
- 139 kB
Issue Links
Activity
The following files contain references to com.affymetrix.genometry.quickload.QuickLoadSymLoader, which in turns imports ChpParser which in turn imports classes from the affymetrix fusion library:
import affymetrix.fusion.chp.FusionCHPData; import affymetrix.fusion.chp.FusionCHPDataReg; import affymetrix.fusion.chp.FusionCHPGenericData; import affymetrix.fusion.chp.FusionCHPHeader; import affymetrix.fusion.chp.FusionCHPLegacyData; import affymetrix.fusion.chp.FusionCHPQuantificationData; import affymetrix.fusion.chp.FusionCHPQuantificationDetectionData; import affymetrix.fusion.chp.FusionCHPTilingData; import affymetrix.fusion.chp.FusionExpressionProbeSetResults;
Classes that use QuickLoadSymLoaderChp:
./core/igb/src/main/java/com/affymetrix/igb/parsers/QuickLoadSymLoaderChp.java:public class QuickLoadSymLoaderChp extends QuickLoadSymLoader { ./core/igb/src/main/java/com/affymetrix/igb/parsers/QuickLoadSymLoaderChp.java: public QuickLoadSymLoaderChp(URI uri, Optional<URI> indexUri, String featureName, GenomeVersion genomeVersion) { ./core/igb/src/main/java/com/affymetrix/igb/parsers/QuickLoadSymLoaderChp.java: return addMethodsToFeature(feature, QuickLoadSymLoaderChp.this.getGenome()); ./core/igb/src/main/java/com/affymetrix/igb/parsers/ChpQuickLoadSymLoaderHook.java:// return new QuickLoadSymLoaderChp(quickLoadSymLoader.uri, quickLoadSymLoader.featureName, quickLoadSymLoader.getAnnotatedSeqGroup()); ./core/igb/src/main/java/com/affymetrix/igb/view/load/GeneralLoadUtils.java:import com.affymetrix.igb.parsers.QuickLoadSymLoaderChp; ./core/igb/src/main/java/com/affymetrix/igb/view/load/GeneralLoadUtils.java: ? new QuickLoadSymLoaderChp(uri, indexUri, friendlyName, dataContainer.getGenomeVersion())
For the next step, let's remove the package com.affymetrix.igb.parsers and delete any code that uses anything in same. Also, let's remove testing assets, including example "chp" files and unit tests for same.
To find the package in bitbucket, go to:
Note: "chp" stands for "chip". Affymetrix makes chips for DNA analysis.
Changes made:
- Affymetrix fusion was removed from both POM files
- Deleted "parser" folder than contained:
ChpParser.java, ChpQuickLoadSymLoaderHook.java, and QuickLoadSymLoaderChp.java - Removed code that referenced Affymetrix fusion
[~aloraine], IGB builds and runs with no issues at all after the changes made, however the BitBucket pipeline for the branch is failing to build.
I am getting an error on:
version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
Please see the following pipleline
https://bitbucket.org/Gchamma/integrated-genome-browser/addon/pipelines/home#!/results/26
=====================================================
Prutha Kulkarni I got some questions regarding the variable dataSet in GeneralLoadUtils.java:
Hey Prutha, IGB was able to build and run when I commented out the following code in GeneralLoadUtils.java, which comes after the code commented out in the commit.
// DataSet dataSet = new DataSet(uri, fileName, featureProps, dataContainer, quickLoad, autoload, isReferenceSequence);
//
// dataContainer.addDataSet(dataSet);
//
// dataSet.setVisible(); // this should be automatically checked in the feature tree
// loadedDataSet = Optional.of(dataSet);
"quickLoad" was causing issues in the constructor because it referenced the data I removed. It's of type SymLoader
Please take a look at the commit posted above. I changed the initialization of dataSet to use a constructor that did not need a SymLoader, and IGB built perfectly with it included.
So I am not sure whether to entirely delete the dataSet variable and everything related to it in GeneralLoadUtils, or keep it as the changed version (which can be seen in the commit), because IGB builds and runs with no issues with or without it.
I just don't know whether deleting the dataSet variable would cause a problem in the background of IGB, where it would be hard for me to notice it upon launch of IGB and loading data.
Ticket is ready for first level review
commit: https://bitbucket.org/Gchamma/integrated-genome-browser/commits/e908fc278932daa49bf6994425845a0d26c4752f?at=IGBF-1986
[~aloraine], In addition to what we discussed, Shamika and Prutha determined that there were two files that were not being used by IGB and were causing issues when trying to build IGB.
Those files were: QuantByIntIdComparator and QuantDetectByIntIdComparator
Also, an additional pom.xml file had to be changed, which was the core/shared-lib-wrapper/pom.xml file
The branch pipeline built succesfully and anyone who wants to test these changes can download them here: https://bitbucket.org/Gchamma/integrated-genome-browser/downloads/IGBF-1986.exe
The unneeded code is commented out but not completely removed. I will completely remove the unneeded code once it is confirmed that the branch builds and runs successfully by others.
This looks great! Please submit PR at your earliest convenience!
attn: Jay Chamma
I attempted to remove the three legacy maven repositories from the parent POM. However, I got this error:
[INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 5.323 s [INFO] Finished at: 2020-07-21T19:50:20-04:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project affymetrix-common: Could not resolve dependencies for project org.lorainelab.igb:affymetrix-common:bundle:9.1.6: Could not find artifact javax.jlfgr:jlfgr:jar:1.0 in maven-releases (https://nexus.bioviz.org/repository/maven-releases) -> [Help 1]
I used grep to search all non-binary files in the codebase for the string "jlfgr" and found this:
local aloraine$ ft | xargs grep jlfgr ./target/classes/NOTICES.txt: The file, if present, will be named jlfgr-1_0.jar, in the "ext" directory. ./pom.xml: <groupId>javax.jlfgr</groupId> ./pom.xml: <artifactId>jlfgr</artifactId> ./src/main/resources/NOTICES.txt: The file, if present, will be named jlfgr-1_0.jar, in the "ext" directory. ./src/main/java/com/affymetrix/common/CommonUtils.java: * example, it could be in the jlfgr-1_0.jar file. If the resource is absent or can't be found, this routine will
It looks like jlfgr is still needed.
Investigating.
FYI: "ft" on my system is an alias for
'find . -type f -exec grep -Iq . {} \; -print'
jlfgr is the Java Look and Feel Graphics Repository 1.0.
Oracle created it and makes it available for download (after accepting a license agreement) from https://www.oracle.com/java/technologies/java-archive-downloads-java-client-downloads.html#7520-jlf-1.0-oth-JPR.
I searched for it in maven central, but it was not there.
If found it various other repositories.
A comment in our Affymetrix "CommonUtils" file:
/** * Loads an ImageIcon from the specified system resource. The system resource should be in the classpath, for * example, it could be in the jlfgr-1_0.jar file. If the resource is absent or can't be found, this routine will * not throw an exception, but will return null. For example: "toolbarButtonGraphics/general/About16.gif". * * @return An ImageIcon or null if the one specified could not be found. */ public ImageIcon getIcon(String resource_name) { ImageIcon icon = getIcon(CommonUtils.class, resource_name); if (icon == null) { return getIcon(CommonUtils.class, "org/freedesktop/tango/" + resource_name); } return icon; }
Next steps:
- Download the jar file for artifact jlfgr. Get it from one of the legacy maven repositories mentioned above.
- Unpack it. List the contents here.
- Make a test branch (
IGBF-1986). (Branch from the tip of master branch, not from Jay Chamma's development branch listed above, which has already been merged.) - On the branch, remove jlfgr dependencies and remove the legacy maven repositories listed above.
- Report back here what happens. Does the project build?
[~aloraine] The contents of jlfgr.jar are following:
META-INF/
META-INF/MANIFEST.MF
paletteButtonGraphics/
toolbarButtonGraphics/
toolbarButtonGraphics/text/
toolbarButtonGraphics/text/Italic24.gif
toolbarButtonGraphics/text/Bold24.gif
toolbarButtonGraphics/text/Normal16.gif
toolbarButtonGraphics/text/Normal24.gif
toolbarButtonGraphics/text/Underline16.gif
toolbarButtonGraphics/text/Underline24.gif
toolbarButtonGraphics/text/Bold16.gif
toolbarButtonGraphics/text/Italic16.gif
toolbarButtonGraphics/text/AlignCenter16.gif
toolbarButtonGraphics/text/AlignCenter24.gif
toolbarButtonGraphics/text/AlignLeft24.gif
toolbarButtonGraphics/text/AlignLeft16.gif
toolbarButtonGraphics/text/AlignRight16.gif
toolbarButtonGraphics/text/AlignRight24.gif
toolbarButtonGraphics/text/AlignJustify24.gif
toolbarButtonGraphics/text/AlignJustify16.gif
toolbarButtonGraphics/table/
toolbarButtonGraphics/table/RowDelete24.gif
toolbarButtonGraphics/table/ColumnInsertAfter24.gif
toolbarButtonGraphics/table/ColumnInsertBefore24.gif
toolbarButtonGraphics/table/RowInsertAfter24.gif
toolbarButtonGraphics/table/RowInsertBefore24.gif
toolbarButtonGraphics/table/ColumnDelete24.gif
toolbarButtonGraphics/table/ColumnDelete16.gif
toolbarButtonGraphics/table/ColumnInsertAfter16.gif
toolbarButtonGraphics/table/ColumnInsertBefore16.gif
toolbarButtonGraphics/table/RowDelete16.gif
toolbarButtonGraphics/table/RowInsertAfter16.gif
toolbarButtonGraphics/table/RowInsertBefore16.gif
toolbarButtonGraphics/navigation/
toolbarButtonGraphics/navigation/Up16.gif
toolbarButtonGraphics/navigation/Back24.gif
toolbarButtonGraphics/navigation/Down16.gif
toolbarButtonGraphics/navigation/Down24.gif
toolbarButtonGraphics/navigation/Forward16.gif
toolbarButtonGraphics/navigation/Forward24.gif
toolbarButtonGraphics/navigation/Back16.gif
toolbarButtonGraphics/navigation/Up24.gif
toolbarButtonGraphics/navigation/Home16.gif
toolbarButtonGraphics/navigation/Home24.gif
toolbarButtonGraphics/media/
toolbarButtonGraphics/media/Pause16.gif
toolbarButtonGraphics/media/Play16.gif
toolbarButtonGraphics/media/Stop16.gif
toolbarButtonGraphics/media/StepBack16.gif
toolbarButtonGraphics/media/StepForward16.gif
toolbarButtonGraphics/media/Movie16.gif
toolbarButtonGraphics/media/Volume16.gif
toolbarButtonGraphics/media/Movie24.gif
toolbarButtonGraphics/media/Pause24.gif
toolbarButtonGraphics/media/Play24.gif
toolbarButtonGraphics/media/StepBack24.gif
toolbarButtonGraphics/media/StepForward24.gif
toolbarButtonGraphics/media/Stop24.gif
toolbarButtonGraphics/media/Volume24.gif
toolbarButtonGraphics/media/FastForward24.gif
toolbarButtonGraphics/media/FastForward16.gif
toolbarButtonGraphics/media/Rewind16.gif
toolbarButtonGraphics/media/Rewind24.gif
toolbarButtonGraphics/general/
toolbarButtonGraphics/general/Add16.gif
toolbarButtonGraphics/general/Add24.gif
toolbarButtonGraphics/general/AlignBottom24.gif
toolbarButtonGraphics/general/AlignCenter24.gif
toolbarButtonGraphics/general/AlignJustifyHorizontal24.gif
toolbarButtonGraphics/general/AlignJustifyVertical24.gif
toolbarButtonGraphics/general/AlignLeft24.gif
toolbarButtonGraphics/general/AlignRight24.gif
toolbarButtonGraphics/general/AlignTop24.gif
toolbarButtonGraphics/general/ContextualHelp16.gif
toolbarButtonGraphics/general/ContextualHelp24.gif
toolbarButtonGraphics/general/Copy16.gif
toolbarButtonGraphics/general/Copy24.gif
toolbarButtonGraphics/general/Cut16.gif
toolbarButtonGraphics/general/Cut24.gif
toolbarButtonGraphics/general/Delete16.gif
toolbarButtonGraphics/general/Delete24.gif
toolbarButtonGraphics/general/Find16.gif
toolbarButtonGraphics/general/Find24.gif
toolbarButtonGraphics/general/Help16.gif
toolbarButtonGraphics/general/Help24.gif
toolbarButtonGraphics/general/Open16.gif
toolbarButtonGraphics/general/Open24.gif
toolbarButtonGraphics/general/PageSetup16.gif
toolbarButtonGraphics/general/PageSetup24.gif
toolbarButtonGraphics/general/Paste16.gif
toolbarButtonGraphics/general/Paste24.gif
toolbarButtonGraphics/general/Preferences16.gif
toolbarButtonGraphics/general/Preferences24.gif
toolbarButtonGraphics/general/Print16.gif
toolbarButtonGraphics/general/Print24.gif
toolbarButtonGraphics/general/Redo16.gif
toolbarButtonGraphics/general/Redo24.gif
toolbarButtonGraphics/general/Save16.gif
toolbarButtonGraphics/general/Save24.gif
toolbarButtonGraphics/general/Undo16.gif
toolbarButtonGraphics/general/Undo24.gif
toolbarButtonGraphics/general/ZoomIn24.gif
toolbarButtonGraphics/general/ZoomOut24.gif
toolbarButtonGraphics/general/AlignBottom16.gif
toolbarButtonGraphics/general/AlignCenter16.gif
toolbarButtonGraphics/general/AlignLeft16.gif
toolbarButtonGraphics/general/AlignJustifyHorizontal16.gif
toolbarButtonGraphics/general/AlignJustifyVertical16.gif
toolbarButtonGraphics/general/AlignRight16.gif
toolbarButtonGraphics/general/AlignTop16.gif
toolbarButtonGraphics/general/ZoomIn16.gif
toolbarButtonGraphics/general/ZoomOut16.gif
toolbarButtonGraphics/general/Zoom16.gif
toolbarButtonGraphics/general/About24.gif
toolbarButtonGraphics/general/Bookmarks16.gif
toolbarButtonGraphics/general/Bookmarks24.gif
toolbarButtonGraphics/general/ComposeMail16.gif
toolbarButtonGraphics/general/ComposeMail24.gif
toolbarButtonGraphics/general/Edit16.gif
toolbarButtonGraphics/general/Edit24.gif
toolbarButtonGraphics/general/Export16.gif
toolbarButtonGraphics/general/Export24.gif
toolbarButtonGraphics/general/FindAgain16.gif
toolbarButtonGraphics/general/FindAgain24.gif
toolbarButtonGraphics/general/History16.gif
toolbarButtonGraphics/general/History24.gif
toolbarButtonGraphics/general/Import16.gif
toolbarButtonGraphics/general/Import24.gif
toolbarButtonGraphics/general/New16.gif
toolbarButtonGraphics/general/New24.gif
toolbarButtonGraphics/general/PrintPreview16.gif
toolbarButtonGraphics/general/PrintPreview24.gif
toolbarButtonGraphics/general/Properties16.gif
toolbarButtonGraphics/general/Properties24.gif
toolbarButtonGraphics/general/Refresh16.gif
toolbarButtonGraphics/general/Refresh24.gif
toolbarButtonGraphics/general/Replace16.gif
toolbarButtonGraphics/general/Replace24.gif
toolbarButtonGraphics/general/SaveAll16.gif
toolbarButtonGraphics/general/SaveAll24.gif
toolbarButtonGraphics/general/SaveAs16.gif
toolbarButtonGraphics/general/SaveAs24.gif
toolbarButtonGraphics/general/Search16.gif
toolbarButtonGraphics/general/Search24.gif
toolbarButtonGraphics/general/SendMail16.gif
toolbarButtonGraphics/general/SendMail24.gif
toolbarButtonGraphics/general/Stop16.gif
toolbarButtonGraphics/general/Stop24.gif
toolbarButtonGraphics/general/TipOfTheDay16.gif
toolbarButtonGraphics/general/TipOfTheDay24.gif
toolbarButtonGraphics/general/About16.gif
toolbarButtonGraphics/general/Zoom24.gif
toolbarButtonGraphics/general/Information16.gif
toolbarButtonGraphics/general/Information24.gif
toolbarButtonGraphics/general/Remove16.gif
toolbarButtonGraphics/general/Remove24.gif
toolbarButtonGraphics/development/
toolbarButtonGraphics/development/Jar16.gif
toolbarButtonGraphics/development/Jar24.gif
toolbarButtonGraphics/development/BeanAdd16.gif
toolbarButtonGraphics/development/JarAdd24.gif
toolbarButtonGraphics/development/JarAdd16.gif
toolbarButtonGraphics/development/BeanAdd24.gif
toolbarButtonGraphics/development/Bean24.gif
toolbarButtonGraphics/development/WebComponentAdd24.gif
toolbarButtonGraphics/development/J2EEApplicationClientAdd24.gif
toolbarButtonGraphics/development/Bean16.gif
toolbarButtonGraphics/development/J2EEApplicationClient24.gif
toolbarButtonGraphics/development/EnterpriseJavaBean16.gif
toolbarButtonGraphics/development/EnterpriseJavaBean24.gif
toolbarButtonGraphics/development/J2EEApplication16.gif
toolbarButtonGraphics/development/J2EEApplication24.gif
toolbarButtonGraphics/development/Host24.gif
toolbarButtonGraphics/development/J2EEServer16.gif
toolbarButtonGraphics/development/War16.gif
toolbarButtonGraphics/development/J2EEServer24.gif
toolbarButtonGraphics/development/Applet24.gif
toolbarButtonGraphics/development/Application16.gif
toolbarButtonGraphics/development/War24.gif
toolbarButtonGraphics/development/WarAdd16.gif
toolbarButtonGraphics/development/WarAdd24.gif
toolbarButtonGraphics/development/WebComponent16.gif
toolbarButtonGraphics/development/WebComponent24.gif
toolbarButtonGraphics/development/WebComponentAdd16.gif
toolbarButtonGraphics/development/J2EEApplicationClient16.gif
toolbarButtonGraphics/development/J2EEApplicationClientAdd16.gif
toolbarButtonGraphics/development/Application24.gif
toolbarButtonGraphics/development/Host16.gif
toolbarButtonGraphics/development/Applet16.gif
toolbarButtonGraphics/development/Server16.gif
toolbarButtonGraphics/development/Server24.gif
toolbarButtonGraphics/development/EnterpriseJavaBeanJar24.gif
toolbarButtonGraphics/development/EnterpriseJavaBeanJar16.gif
toolbarButtonGraphics/development/ApplicationDeploy16.gif
toolbarButtonGraphics/development/ApplicationDeploy24.gif
treeIcons/
LICENSE
The project is building successfully after removing jlfgr dependencies.
Link of the branch: https://bitbucket.org/chirag06/integrated-genome-browser/branch/IGBF-1986#diff
A couple of change requests:
- Please configure fork with link back to Jira. See: https://canvas.instructure.com/courses/1164217/pages/set-up-your-fork-fork-igb-add-jira-link-add-ssh-key?module_item_id=31871518
- On the branch, also remove the legacy maven repositories listed above. They are listed in the top-level pom.xml file:
<repository> <id>repo1</id> <url>https://maven.bioviz.org/repo1</url> </repository> <repository> <id>repo2</id> <url>https://maven.bioviz.org/repo2</url> </repository> <repository> <id>repo3</id> <url>https://maven.bioviz.org/repo3</url> </repository>
Note: the project might fail to build when you get rid of them because there may still be some artifacts that are only available from one or more of these. To make sure of a clean build, check to see if your branch builds in bitbucket.
If you can't build it, make a note of any errors here.
[~aloraine] When we comment out all three legacy maven repositories we get following error:
Failed to execute goal on project genometry: Could not resolve dependencies for project org.lorainelab.igb:genometry:bundle:9.1.6: Failure to find net.sf:image4j:jar:0.7 in https://nexus.bioviz.org/repository/maven-releases was cached in the local repository, resolution will not be reattempted until the update interval of maven-releases has elapsed or updates are forced -> [Help 1] To see the full stack trace of the errors, re-run Maven with the -e switch. Re-run Maven using the -X switch to enable full debug logging. For more information about the errors and possible solutions, please read the following articles: [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException After correcting the problems, you can resume the build with the command mvn <args> -rf :geometry
The code builds and runs without error if we uncomment the 2nd maven repository.
Prof. [~aloraine] I am not sure I understand what to review in this ticket totally. Will speak to you on this in detail.
For the next step,
- please remove the first and third legacy maven repository.
- please identify a maven repository that contains the require artifact "net.sf:image4j:jar:0.7"
- also, investigate: is there a higher version we should use instead?
group_id: net.sf
artificact_id: image4j
artifact_type: jar
version: 0.7
In addition, please test latest IGB built from merging the topic branch mentioned in the previous comment.
I have removed the first and third legacy maven repository and also there is no higher version of the maven repository for "net.sf:image4j".
The maven repositories using this artifact is the second repository.
The modules using this dependency are IGB core Genometry and Bundle wrapper, deployer.
This dependency is used in com.affymetrix.genometry.util.GeneralUtils.determineFriendlyIcon method(IGB core Genometry module).
The image4j artifact is not available from maven central, the default maven repository available to all projects. However, it does appear to be available from some other repositories.
Let's try adding one of these repositories to the top-level POM and remove the second legacy maven repository.
If we do that, then maven should be able to get the necessary artifact.
Please make a branch and give it a try.
See:
https://mvnrepository.com/artifact/com.github.imcdonagh/image4j/0.7.2
https://github.com/imcdonagh/image4j
I have resolved image4j dependency but now I am getting an error for com.jidesoft:jide-ultimate:jar:3.5.15 jar. I have tried to remove the dependency from every module but I ran into more errors. I have tried to find jidesoft maven dependency with artifactId jide-ultimate but I am unable to find it. Please find a screenshot for error.
[~aloraine] Can you please guide me on how can I move forward?
Please use google to locate a maven repository that contains the artifact or a later version of same.
Also, unpack the jidesoft "ultimate" artifact to determine packages it contains. Based on the name, I am guessing it could be an omnibus collection of multiple other artifacts which are available in various public maven repositories.
Based on the discussion in this link, https://www.jidesoft.com/forum/viewtopic.php?f=4&t=8239&start=75 I have tried repositories http://www.jidesoft.com:8081/artifactory/libs-release and http://www.jidesoft.com:8081/artifactory/repo but dependencies are not downloaded from these repositories. So, I have started checking packages of jidesoft used by each module separately. Currently, I am facing errors in building core-igb module where it uses jidesoft-status dependency. I am unable to find a maven dependency for that as well. If I comment out dependency jidesoft-status for core-igb module, I have got an error for jflow and jgoogleanalytics modules. I have tried using jflow maven dependencies from online but the classes in the dependencies from online are different. I believe all these packages are downloaded and hosted in maven repo2. So, we need to download these packages and add them as external jars to our project.
Suggestion:
- Google "maven repository jidesoft" to locate various maven repositories that claim to have jidesoft artifacts.
Also, do please add link to developers discussing this as was mentioned Thursday last.
These are the links where developers are discussing this issue of jidesoft maven repository,
https://www.jidesoft.com/forum/viewtopic.php?f=4&t=8239&start=50 and https://www.jidesoft.com/forum/viewtopic.php?f=4&t=8239&start=75
I was able to resolve the jidesoft maven dependency. Now, I am facing issues for jflow dependency. I have googled these repositories and found 2 repositories https://mvnrepository.com/artifact/com.crivano/jflow/1.0.2 and https://1maven.com/dependency/com.github.maumay:jflow:0.5.3/gav. but the classes in these repositories are different. I believe if we resolve this issue, we can remove Maven repo2 most probably.
I see the code is basically stable - the last commit was long ago.
As a service to the community, I wonder if we ought to invest some time and effort to contribute it to maven central?
Guidelines for contributing a "jar" file to maven central:
Jira ticket I have created for claiming workspace in the Maven Central repository.
https://issues.sonatype.org/browse/OSSRH-61032
I have done this:
- Add a TXT record to your DNS referencing this JIRA ticket: OSSRH-61032 (Fastest)
[~aloraine] I am unable to see any TXT record added or any activity on this Jira ticket. Let me know if I am missing something?
I am not sure what a "txt" record is so I'm not sure if I did it correctly.
Can you investigate?
A request:
I would like to submit the jflow "jar" file as an OSGi bundle if at all possible.
Please take a look at some of our existing libraries – GenoViz SDK is probably a good place to start. Basically, to make a jar file into a bundle, we included the maven bundle plugin (a wrapper for the "BND" tool) in our build process.
More complicated is that we need to figure out which packages to export.
JFlow was probably not written as a bundle to star with. So, in this case, we probably ought to export all packages.
When I install jflow jar locally and try to build the entire application, I'm getting error for org.lorainelab.igb:org.lorainelab.igb.error.reporter.api:jar:1.0.0 and this jar is hosted in maven repository2. Is there any other way to do this?
Try removing the dependency for the "reporter" jar. I think the "plugin" that uses it is not actually included in the module list in the parent POM.
Does import org.lorainelab.igb.services.IgbService means importing these packages?
- org.lorainelab.igb.remote.services.distribution.provider.http,
- org.lorainelab.igb.remote.services.topology.manager,
- org.lorainelab.igb.remote.services.commons,
- org.lorainelab.igb.remote.services.discovery.provider.configured
If not from where we get these org.lorainelab.igb.services.IgbService?
I'm facing issues with Response object in BookmarkHttpRequestHandler.java in package com.affymetrix.igb.bookmarks
I have published the jar to Maven central successfully. But the code was not present in the jar. Here is the link for the published jar.
https://search.maven.org/artifact/org.lorainelab/jflow/1.0/jar
Jflow github: https://github.com/timdp/jflow
This is the entire Maven project for the jflow jar file and you can see the jar file generated in the target folder. I have attached a jar file as well for reference. I can change the version number to 1.1 after testing. The name of the folder is jflow-mvn and the name of jar is jflow-2.0.jar
This is the jflow bundle generated. You can see the jar file generated in the target folder. The name of the folder is jflow-new and the name of the jar is jflow-3.0.jar.
I have removed the dependency of jidesoft-ultimate and replaced it with jidesoft-grids, jidesoft-oss and jidesoft-components. After replacing them, the build was successful but I am unable to run the application. Please find the error log as well.
15:50:04.423 ERROR com.affymetrix.main.OSGiHandler - Unable to resolve annotation-tab [2](R 2.0): missing requirement [annotation-tab [2](R 2.0)] osgi.wiring.package; (osgi.wiring.package=com.jidesoft.combobox) [caused by: Unable to resolve com.jidesoft.grid [43](R 43.0): missing requirement [com.jidesoft.grid [43](R 43.0)] osgi.wiring.package; (osgi.wiring.package=com.jidesoft.comparator)] Unresolved requirements: [[annotation-tab [2](R 2.0)] osgi.wiring.package; (osgi.wiring.package=com.jidesoft.combobox)]
org.osgi.framework.BundleException: Unable to resolve annotation-tab [2](R 2.0): missing requirement [annotation-tab [2](R 2.0)] osgi.wiring.package; (osgi.wiring.package=com.jidesoft.combobox) [caused by: Unable to resolve com.jidesoft.grid [43](R 43.0): missing requirement [com.jidesoft.grid [43](R 43.0)] osgi.wiring.package; (osgi.wiring.package=com.jidesoft.comparator)] Unresolved requirements: [[annotation-tab [2](R 2.0)] osgi.wiring.package; (osgi.wiring.package=com.jidesoft.combobox)]
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4114) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.Felix.startBundle(Felix.java:2111) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:977) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:964) ~[org.apache.felix.main-5.2.0.jar:na]
at com.affymetrix.main.OSGiHandler.loadBundles(OSGiHandler.java:83) [classes/:na]
at com.affymetrix.main.OSGiHandler.startOSGi(OSGiHandler.java:63) [classes/:na]
at com.affymetrix.main.Main.main(Main.java:30) [classes/:na]
In our project, there are 3 legacy Maven repositories repo1, repo2 and repo3. The dependencies of repo1 and repo3 are removed. Repo2 has most of our dependencies. The first dependency I came across when I commented out repo2 is jidesoft-ultimate. This dependency jidesoft-ultimate has 35-40 packages. Jidesoft-ultimate was divided into so many dependencies like Jide Common Layer(OSS), Jide Common, Jide Grids, Jide Components, Jide Charts and so many. IGB codebase uses only 3 dependencies among them. They are Jide Common Layer(OSS), Jide Grids and Jide Components. Now I have replaced jidesoft dependency and the build was successful but there are issues when I ran IGB.
The next dependency I faced issue is jflow. The jflow used by IGB is not present in Maven repositories. But we do have a GitHub repository containing the entire code of jflow. Using this GitHub repository, I have tried to publish the jar file to Maven Central. I have published version 1.0 with no code in the jar file by mistake. Once we publish a jar file into Maven Central we can't remove it from Maven Central. I have corrected the mistakes and have shared the jar files in the above comments which are in my staging profile. If testing goes well with this jar, then I can go ahead and release the repository into Maven Central.
Please go through this link for the Jira ticket for publishing a repository to Maven Central https://issues.sonatype.org/browse/OSSRH-61032.
Please go through the videos in this link if you want to publish a repository to Maven Central https://central.sonatype.org/pages/producers.html#individual-projects-open-source-software-repository-hosting-ossrh
Please go through the GitHub repository containing jflow code: https://github.com/timdp/jflow
I have solved yesterday's issue. Today I am facing this new issue
14:07:10.150 INFO com.affymetrix.main.OSGiHandler - Starting Bundle: igb
14:00:32.462 INFO com.affymetrix.igb.Activator - Verifying Jidesoft license
14:00:32.535 ERROR com.affymetrix.main.OSGiHandler - Activator start error in bundle igb [31].
org.osgi.framework.BundleException: Activator start error in bundle igb [31].
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2270) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.Felix.startBundle(Felix.java:2138) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:977) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:964) ~[org.apache.felix.main-5.2.0.jar:na]
at com.affymetrix.main.OSGiHandler.loadBundles(OSGiHandler.java:83) [classes/:na]
at com.affymetrix.main.OSGiHandler.startOSGi(OSGiHandler.java:63) [classes/:na]
at com.affymetrix.main.Main.main(Main.java:30) [classes/:na]
Caused by: java.lang.NoClassDefFoundError: com/jidesoft/utils/Lm
at com.affymetrix.igb.Activator.verifyJidesoftLicense(Activator.java:160) ~[igb-9.1.6.jar:na]
at com.affymetrix.igb.Activator.start(Activator.java:109) ~[igb-9.1.6.jar:na]
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2220) ~[org.apache.felix.main-5.2.0.jar:na]
... 6 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.jidesoft.utils.Lm not found by shared-lib-wrapper [81]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1558) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998) ~[org.apache.felix.main-5.2.0.jar:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_221]
at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1399) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1579) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1509) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) ~[org.apache.felix.main-5.2.0.jar:na]
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998) ~[org.apache.felix.main-5.2.0.jar:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_221]
... 10 common frames omitted
14:00:32.537 ERROR com.affymetrix.main.OSGiHandler - Error starting bundle igb:9.1.6
The other issue I am facing is the name of the bundle is showing null but it's running fine for com.jidesoft.oss
14:00:33.107 INFO com.affymetrix.main.OSGiHandler - Starting Bundle: com.jidesoft.components
14:00:33.111 INFO com.affymetrix.main.OSGiHandler - Starting Bundle: com.jidesoft.grid
14:00:33.115 INFO com.affymetrix.main.OSGiHandler - Starting Bundle: null
I can see org.lorainelab.igb.logging-config as fragment. Shall I go ahead and remove this as well?
cc: [~aloraine]
The next dependency I have tried to remove is NanoHTTPD having 15 - 25 classes. I have found the Maven repository of this dependency divided into 2 repositories namely nanohttpd and nanohttpd-webserver. These 2 repositories combined have the exact same classes as the NanoHTTPD dependency in our IGB code. But if I replace these Maven repositories in our IGB code, I got an error from the Response object in BookmarkHttpRequestHandler.java in package com.affymetrix.igb.bookmarks. This Response object is using NanoHTTPDResponse class. I have decompiled both the classes one in IGB code and the other from the Maven repository but unable to find why this error is coming.
Next steps:
- Circle back to jidesoft components -
- Check: Need to update POMs for IGB bundles that use them? (And declare them as dependencies)
- [~aloraine] needs to get maven central account (see above links)
[~aloraine] Sonatype account user: "aloraine"
Sai Supreeth Segu - Can you please add user "aloraine" as an admin user for the group id org.lorainelab. Thank you!!
Created project for "org.bioviz" at central.sonatype.org.
Video was helpful:
Please find all my changes for replacing jidesoft dependencies in my branch.
Please find the link for my branch: https://bitbucket.org/supreeth27/integrated-genome-browser/commits/be32565302acca1498357eac41b4afb71c75fccc
The build for igb project was successful in my local but when I pushed my changes to bitbucket build was failure in my bitbucket. Please look into my pipeline for failure trace: https://bitbucket.org/supreeth27/integrated-genome-browser/addon/pipelines/home#!/results/26/steps/%7B7ec81457-b38d-452c-969b-659e5a9dd437%7D
Error log from my pipeline:
[INFO] Compiling 336 source files to /opt/atlassian/pipelines/agent/build/core/igb/target/classes
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/MapRangeBox.java:34: error: package com.jidesoft.hints does not exist
import com.jidesoft.hints.ListDataIntelliHints;
^
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/IGB.java:55: error: cannot find symbol
import com.jidesoft.plaf.LookAndFeelFactory;
^
symbol: class LookAndFeelFactory
location: package com.jidesoft.plaf
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/MapRangeBox.java:604: error: cannot find symbol
private class SearchHints extends ListDataIntelliHints<String> {
^
symbol: class ListDataIntelliHints
location: class MapRangeBox
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/MapRangeBox.java:610: error: method does not override or implement a method from a supertype
@Override
^
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/MapRangeBox.java:613: error: cannot find symbol
super.acceptHint(context);
^
symbol: method acceptHint(Object)
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/MapRangeBox.java:618: error: method does not override or implement a method from a supertype
@Override
^
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/MapRangeBox.java:636: error: cannot find symbol
this.setListData(results.toArray());
^
symbol: method setListData(Object[])
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/IGB.java:181: error: cannot find symbol
Class<?> cl = Class.forName(LookAndFeelFactory.WINDOWS_LNF);
^
symbol: variable LookAndFeelFactory
location: class IGB
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/IGB.java:185: error: cannot find symbol
LookAndFeelFactory.installJideExtension();
^
symbol: variable LookAndFeelFactory
location: class IGB
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/IGB.java:199: error: cannot find symbol
Class<?> cl = Class.forName(LookAndFeelFactory.METAL_LNF);
^
symbol: variable LookAndFeelFactory
location: class IGB
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/IGB.java:203: error: cannot find symbol
LookAndFeelFactory.installJideExtension();
^
symbol: variable LookAndFeelFactory
location: class IGB
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/StatusBar.java:68: error: cannot access NullPanel
memory_item.setShowMaxMemory(true);
^
class file for com.jidesoft.swing.NullPanel not found
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/StatusBar.java:117: error: no suitable method found for addComponent(MemoryStatusBarItem,int,int,int)
.addComponent(memory_item, 1, 200, 200)
^
method GroupLayout.Group.addComponent(Component,int,int,int) is not applicable
(argument mismatch; MemoryStatusBarItem cannot be converted to Component)
method GroupLayout.SequentialGroup.addComponent(Component,int,int,int) is not applicable
(argument mismatch; MemoryStatusBarItem cannot be converted to Component)
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/StatusBar.java:128: error: no suitable method found for addComponent(MemoryStatusBarItem)
.addComponent(memory_item)
^
method GroupLayout.Group.addComponent(Component) is not applicable
(argument mismatch; MemoryStatusBarItem cannot be converted to Component)
method GroupLayout.ParallelGroup.addComponent(Component) is not applicable
(argument mismatch; MemoryStatusBarItem cannot be converted to Component)
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/view/StatusBar.java:147: error: cannot find symbol
int availablePixelSpace = memory_item.getBounds().x - status_ta.getBounds().x;
^
symbol: method getBounds()
location: variable memory_item of type MemoryStatusBarItem
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/prefs/TrackPreferences.java:135: error: cannot access ConverterContextSupport
possitiveColorComboBox.setBackground(new Color(255, 255, 255));
^
class file for com.jidesoft.converter.ConverterContextSupport not found
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/prefs/TrackPreferences.java:136: error: cannot access AlignmentSupport
possitiveColorComboBox.setBorder(new LineBorder(new Color(255, 255, 255), 1, true));
^
class file for com.jidesoft.swing.AlignmentSupport not found
/opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/Activator.java:160: error: package com.jidesoft.utils does not exist
com.jidesoft.utils.Lm.verifyLicense("Dept. of Bioinformatics and Genomics, UNCC",
^
Note: /opt/atlassian/pipelines/agent/build/core/igb/src/main/java/com/affymetrix/igb/IgbServiceImpl.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
18 errors
Thank you Sai Supreeth Segu! Let's put this aside for now.
Can you please check whether permissions are granted for "aloraine" as an admin user for the group id org.lorainelab? Thank you!!
cc: [~aloraine]
Sai Supreeth Segu - please provide link to maven central login so that I can check that I can upload artifacts.
[~aloraine] Link for Nexus Repository Manager: https://oss.sonatype.org/#welcome
I logged in to maven central nexus server. To test "admin" priv's, I deleted an artifact from staging.
Yes, All the staging repositories are deleted in profile.
Moving to Closed.
Prof. [~aloraine], I have removed com.affymetrix:fusion as well as javax.jlfgr dependencies from the codebase.
But, one of the file i.e. ChpParser in the "parsers" directory of IGB module is using "fusion". It's also being called in the "getGenome()" in the "QuickLoadSymLoaderChp" of same directory.
This function is being used in many files. So, I am not sure if we can remove "fusion" dependency from IGB module.
Could you please guide me on that?
Thanks.