﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://owl.unipharm.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Information_Systems%3AManaging_dependencies_in_Iptor_Integrator</id>
	<title>Information Systems:Managing dependencies in Iptor Integrator - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://owl.unipharm.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Information_Systems%3AManaging_dependencies_in_Iptor_Integrator"/>
	<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;action=history"/>
	<updated>2026-09-01T12:35:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13916&amp;oldid=prev</id>
		<title>Norwinu: Minor fixup</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13916&amp;oldid=prev"/>
		<updated>2021-06-02T17:31:44Z</updated>

		<summary type="html">&lt;p&gt;Minor fixup&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:31, 2 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Overview==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Overview==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This article discusses the limitations regarding Iptor Integrator and the Java [https://en.wikipedia.org/wiki/Classpath classpath], as well as the solution to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;problem&lt;/del&gt; (Maven and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pre-&lt;/del&gt;packaged project dependencies). This &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;does&lt;/del&gt; not &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;apply&lt;/del&gt; if you're using Integrator within its confines i.e. use &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Integrator&lt;/del&gt; Studio to develop programs, [[http://owl.unipharm.local/mediawiki/index.php/Information_Systems:Developing_integrations_using_Java_and_Iptor_Integrator#Not_using_Integrator_Studio_as_an_IDE which I don't do]].&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This article discusses the limitations regarding Iptor Integrator&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, dependencies,&lt;/ins&gt; and the Java [https://en.wikipedia.org/wiki/Classpath classpath], as well as the solution to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;these&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;problems&lt;/ins&gt; (&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;i.e. &lt;/ins&gt;Maven and packaged project dependencies). This &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;article is&lt;/ins&gt; not &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;of any conncern&lt;/ins&gt; if you're using Integrator within its confines i.e.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; if you&lt;/ins&gt; use &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Design&lt;/ins&gt; Studio to develop programs, [[http://owl.unipharm.local/mediawiki/index.php/Information_Systems:Developing_integrations_using_Java_and_Iptor_Integrator#Not_using_Integrator_Studio_as_an_IDE which I don't do]].&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Background==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Background==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* There is a IBSUserPackages folder, but it doesn't seem to get loaded whatsoever by Integrator. This is something worth asking about.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* There is a IBSUserPackages folder, but it doesn't seem to get loaded whatsoever by Integrator. This is something worth asking about.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Related to the previous point, Integrator Studio provides a mechanism so that users can add packages to the Integrator environment. Interestingly, using this feature puts the jar in an adjacent folder (plugins\IBSIntegrator), which is not part of the classpath for Timer and FolderWatcher jobs.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Related to the previous point, Integrator Studio provides a mechanism so that users can add packages to the Integrator environment. Interestingly, using this feature puts the jar in an adjacent folder (plugins\IBSIntegrator), which is not part of the classpath for Timer and FolderWatcher jobs.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* ''I guess I could just package everything into uwd.jar?? -[[User:Norwinu|norwizzle]] ([[User talk:Norwinu|talk]])''&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Iptor Integrator]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: Iptor Integrator]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:wikidiff2:1.12:old-13915:rev-13916:1.11.0 --&gt;
&lt;/table&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13915&amp;oldid=prev</id>
		<title>Norwinu at 17:20, 2 June 2021</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13915&amp;oldid=prev"/>
		<updated>2021-06-02T17:20:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:20, 2 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The classpath becomes too long as more JARs are added. There are alreaady 242 dependencies. Empirically, the classpath issue arises at around the 300 JAR mark. Integrator's JRE has some proprietary elements so it is not easy/possible to change the classpath to perhaps use the folder/wildcard notation.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The classpath becomes too long as more JARs are added. There are alreaady 242 dependencies. Empirically, the classpath issue arises at around the 300 JAR mark. Integrator's JRE has some proprietary elements so it is not easy/possible to change the classpath to perhaps use the folder/wildcard notation.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Version conflict between shared system and project dependencies. i.e. the project requires the same library as Integrator, but needs a newer version which is incompatible with Integrator. This is exacerbated when version conflicts exist within [https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies transitive dependencies]. To give an example, let's say Integrator can only use version 4.1 of a hypothetical &quot;logginglib&quot;, but the Backblaze B2 SDK (project dependency) requires v5.6 or higher of the lib. This is known as [https://en.wikipedia.org/wiki/Dependency_hell&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|&lt;/del&gt;'''dependency hell'''.]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Version conflict between shared system and project dependencies. i.e. the project requires the same library as Integrator, but needs a newer version which is incompatible with Integrator. This is exacerbated when version conflicts exist within [https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies transitive dependencies]. To give an example, let's say Integrator can only use version 4.1 of a hypothetical &quot;logginglib&quot;, but the Backblaze B2 SDK (project dependency) requires v5.6 or higher of the lib. This is known as [https://en.wikipedia.org/wiki/Dependency_hell&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;'''dependency hell'''.]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Solution==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Solution==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:wikidiff2:1.12:old-13912:rev-13915:1.11.0 --&gt;
&lt;/table&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13912&amp;oldid=prev</id>
		<title>Norwinu: /* Solution */</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13912&amp;oldid=prev"/>
		<updated>2021-06-02T01:17:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Solution&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:17, 2 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There were several things tried, but the eventual solution involves 2 things: &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There were several things tried, but the eventual solution involves 2 things: &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The incorporation of Maven to manage project dependencies and package them into a fat jar (aka uber jar) called uwd.jar''. Now, Integrator loads only uwd.jar from the classpath and there is no longer a risk of this becoming too long. Regarding Maven, IntelliJ IDEA has plugins that can be used to simplify Maven processes (e.g mvn:compile, mvn:install etc.). The pom.xml file is found in the root folder of the project. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The incorporation of Maven to manage project dependencies and package them into a fat jar (aka uber jar) called &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/ins&gt;uwd.jar''. Now, Integrator loads only uwd.jar from the classpath and there is no longer a risk of this becoming too long. Regarding Maven, IntelliJ IDEA has plugins that can be used to simplify Maven processes (e.g mvn:compile, mvn:install etc.). The pom.xml file is found in the root folder of the project. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Manual and careful curation of shared dependencies (libs required by both Integrator and the project). This is not an elegant process and can basically be described as follows: if I encounter an error like NoClassFoundError or NoSuchMethodError related to a shared dependency when running project code in Integrator, I check to confirm that the Integrator lib folder contains an older version of the shared dependency (uwd.jar contains the newer one). I then delete this so the new version gets used, and test (by stopping and starting the Integrator service) to see if Integrator complains about having to use the new version. If it doesn't, rejoice. If it does, then I figure something else out (''Like I said, inelegant.'')&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Manual and careful curation of shared dependencies (libs required by both Integrator and the project). This is not an elegant process and can basically be described as follows: if I encounter an error like NoClassFoundError or NoSuchMethodError related to a shared dependency when running project code in Integrator, I check to confirm that the Integrator lib folder contains an older version of the shared dependency (uwd.jar contains the newer one). I then delete this so the new version gets used, and test (by stopping and starting the Integrator service) to see if Integrator complains about having to use the new version. If it doesn't, rejoice. If it does, then I figure something else out (''Like I said, inelegant.'')&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:wikidiff2:1.12:old-13911:rev-13912:1.11.0 --&gt;
&lt;/table&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13911&amp;oldid=prev</id>
		<title>Norwinu at 01:16, 2 June 2021</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13911&amp;oldid=prev"/>
		<updated>2021-06-02T01:16:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:16, 2 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The classpath becomes too long as more JARs are added. There are alreaady 242 dependencies. Empirically, the classpath issue arises at around the 300 JAR mark. Integrator's JRE has some proprietary elements so it is not easy/possible to change the classpath to perhaps use the folder/wildcard notation.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The classpath becomes too long as more JARs are added. There are alreaady 242 dependencies. Empirically, the classpath issue arises at around the 300 JAR mark. Integrator's JRE has some proprietary elements so it is not easy/possible to change the classpath to perhaps use the folder/wildcard notation.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Version conflict between shared system and project dependencies. i.e. the project requires the same library as Integrator, but needs a newer version which is incompatible with Integrator. This is exacerbated when version conflicts exist within [https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies transitive dependencies]. To give an example, let's say Integrator can only use version 4.1 of a hypothetical &quot;logginglib&quot;, but the Backblaze B2 SDK (project dependency) requires v5.6 or higher of the lib. This is known as &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/del&gt;[https://en.wikipedia.org/wiki/Dependency_hell|'''dependency hell'''.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Version conflict between shared system and project dependencies. i.e. the project requires the same library as Integrator, but needs a newer version which is incompatible with Integrator. This is exacerbated when version conflicts exist within [https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies transitive dependencies]. To give an example, let's say Integrator can only use version 4.1 of a hypothetical &quot;logginglib&quot;, but the Backblaze B2 SDK (project dependency) requires v5.6 or higher of the lib. This is known as [https://en.wikipedia.org/wiki/Dependency_hell|'''dependency hell'''.]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Solution==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Solution==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:wikidiff2:1.12:old-13910:rev-13911:1.11.0 --&gt;
&lt;/table&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13910&amp;oldid=prev</id>
		<title>Norwinu: Created page with &quot;==Overview== This article discusses the limitations regarding Iptor Integrator and the Java [https://en.wikipedia.org/wiki/Classpath classpath], as well as the solution to the...&quot;</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_dependencies_in_Iptor_Integrator&amp;diff=13910&amp;oldid=prev"/>
		<updated>2021-06-02T01:16:42Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Overview== This article discusses the limitations regarding Iptor Integrator and the Java [https://en.wikipedia.org/wiki/Classpath classpath], as well as the solution to the...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Overview==&lt;br /&gt;
This article discusses the limitations regarding Iptor Integrator and the Java [https://en.wikipedia.org/wiki/Classpath classpath], as well as the solution to the problem (Maven and pre-packaged project dependencies). This does not apply if you're using Integrator within its confines i.e. use Integrator Studio to develop programs, [[http://owl.unipharm.local/mediawiki/index.php/Information_Systems:Developing_integrations_using_Java_and_Iptor_Integrator#Not_using_Integrator_Studio_as_an_IDE which I don't do]].&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
Being itself built with Java, Iptor Integrator relies on open-source Java libraries to run. An example is the Apache DBCP library for database connection pooling, which Integrator's own Connection Pooling feature is built on (''This could be inaccurate, but the dbcp JAR does exist and I'm just making a point anyway'' -[[User:Norwinu|norwizzle]] ([[User talk:Norwinu|talk]])). These open-source libraries (about 250 JARs) come pre-packaged with the Integrator installation and are found in &amp;lt;code&amp;gt;C:\Integrator\bin\extensions\ibs\eclipse\plugins\IBSExternalPackages&amp;lt;/code&amp;gt;. Because this folder is part of the classpath, it makes sense to also put project dependencies in here. However, adding JARs to this folder gives rise to two problems: &lt;br /&gt;
&lt;br /&gt;
# The classpath becomes too long as more JARs are added. There are alreaady 242 dependencies. Empirically, the classpath issue arises at around the 300 JAR mark. Integrator's JRE has some proprietary elements so it is not easy/possible to change the classpath to perhaps use the folder/wildcard notation.&lt;br /&gt;
# Version conflict between shared system and project dependencies. i.e. the project requires the same library as Integrator, but needs a newer version which is incompatible with Integrator. This is exacerbated when version conflicts exist within [https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies transitive dependencies]. To give an example, let's say Integrator can only use version 4.1 of a hypothetical &amp;quot;logginglib&amp;quot;, but the Backblaze B2 SDK (project dependency) requires v5.6 or higher of the lib. This is known as [[https://en.wikipedia.org/wiki/Dependency_hell|'''dependency hell'''.]]&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
There were several things tried, but the eventual solution involves 2 things: &lt;br /&gt;
&lt;br /&gt;
# The incorporation of Maven to manage project dependencies and package them into a fat jar (aka uber jar) called uwd.jar''. Now, Integrator loads only uwd.jar from the classpath and there is no longer a risk of this becoming too long. Regarding Maven, IntelliJ IDEA has plugins that can be used to simplify Maven processes (e.g mvn:compile, mvn:install etc.). The pom.xml file is found in the root folder of the project. &lt;br /&gt;
# Manual and careful curation of shared dependencies (libs required by both Integrator and the project). This is not an elegant process and can basically be described as follows: if I encounter an error like NoClassFoundError or NoSuchMethodError related to a shared dependency when running project code in Integrator, I check to confirm that the Integrator lib folder contains an older version of the shared dependency (uwd.jar contains the newer one). I then delete this so the new version gets used, and test (by stopping and starting the Integrator service) to see if Integrator complains about having to use the new version. If it doesn't, rejoice. If it does, then I figure something else out (''Like I said, inelegant.'')&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* There is a IBSUserPackages folder, but it doesn't seem to get loaded whatsoever by Integrator. This is something worth asking about.&lt;br /&gt;
* Related to the previous point, Integrator Studio provides a mechanism so that users can add packages to the Integrator environment. Interestingly, using this feature puts the jar in an adjacent folder (plugins\IBSIntegrator), which is not part of the classpath for Timer and FolderWatcher jobs.&lt;br /&gt;
&lt;br /&gt;
[[Category: Iptor Integrator]]&lt;br /&gt;
[[Category: Programming/Development]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
</feed>