<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ReflectUtil.loadClass() and custom classloader in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57305#M34810</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;A href="http://www.javaworld.com/javaworld/javaqa/2003-03/01-qa-0314-forname.html" rel="nofollow noopener noreferrer"&gt;http://www.javaworld.com/javaworld/javaqa/2003-03/01-qa-0314-forname.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Class.forName() does what you want but activiti caches instances of JavaDelegate in the DeploymentCache.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This hurts you if you deploy a process and then redeploy your classes without creating a new process engine deployment. Then the DeploymentCache will continue to hold on to your "old" class definition.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 21 Nov 2011 09:51:52 GMT</pubDate>
    <dc:creator>meyerd</dc:creator>
    <dc:date>2011-11-21T09:51:52Z</dc:date>
    <item>
      <title>ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57304#M34809</link>
      <description>I'm implementing custom classloader which loads classes from BAR archives and I'm wondering why it is not directly called in ReflectUtil.loadClass()public static Class&amp;lt;?&amp;gt; loadClass(String className) {&amp;nbsp;&amp;nbsp; Class&amp;lt;?&amp;gt; clazz = null;&amp;nbsp;&amp;nbsp; ClassLoader classLoader = getCustomClassLoader();&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; // Fi</description>
      <pubDate>Thu, 17 Nov 2011 15:11:41 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57304#M34809</guid>
      <dc:creator>pgadecki</dc:creator>
      <dc:date>2011-11-17T15:11:41Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57305#M34810</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;A href="http://www.javaworld.com/javaworld/javaqa/2003-03/01-qa-0314-forname.html" rel="nofollow noopener noreferrer"&gt;http://www.javaworld.com/javaworld/javaqa/2003-03/01-qa-0314-forname.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Class.forName() does what you want but activiti caches instances of JavaDelegate in the DeploymentCache.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This hurts you if you deploy a process and then redeploy your classes without creating a new process engine deployment. Then the DeploymentCache will continue to hold on to your "old" class definition.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 09:51:52 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57305#M34810</guid>
      <dc:creator>meyerd</dc:creator>
      <dc:date>2011-11-21T09:51:52Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57306#M34811</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Could you be more specific on how DeploymentCache is meant to hold classes?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've written my own BarDeployer on top of com.camunda.fox.activiti.enterprise.deployer.ActivitiDeployerJboss5. For each BAR deployment it creates a BarClassloader(also written by myself) which caches and loads classes from BAR resource file. I can see two possibilities here: I can manage handling class caching with DeploymentCache or give up DeploymentCache and do it all by myself. But to do it I would have to know how is it done in engine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've debbuged DeploymentCache uses during deployment of Bar file and all that is done there is that the process definition is added to the cache.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2011 10:45:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57306#M34811</guid>
      <dc:creator>pgadecki</dc:creator>
      <dc:date>2011-11-22T10:45:24Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57307#M34812</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I did more research and debugging and with &lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;clazz = classLoader.loadClass(className);&lt;/CODE&gt;&lt;SPAN&gt;the method loadClass of my classLoader is called every time loadClass in ReflectUtil was called - which is the way I want to achieve&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but with original &lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;clazz = Class.forName(className, true, classLoader);&lt;/CODE&gt;&lt;SPAN&gt;it is done only for the first time the class is loaded&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So maybe I have to change my question to: What I have to do to be sure that my classloader is called every time some activiti engine class calls ReflectUtil.loadClass?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From my point of view, possibility of specifying custom classloader in the enginge is a great idea, but it gives a user almost no flexibility with dynamic loading different versions of the same class.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Nov 2011 14:34:42 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57307#M34812</guid>
      <dc:creator>pgadecki</dc:creator>
      <dc:date>2011-11-23T14:34:42Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57308#M34813</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Pawel,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;1) On the deployment cache:&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Instances of JavaDelegate/ActivityBehavior referenced by a process are loaded by activiti at process execution time. (See for instance org.activiti.engine.impl.bpmn.helper.ClassDelegate.activityBehaviorInstance). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, as activiti maintains a cache of process definitions (the org.activiti.engine.impl.persistence.deploy.DeploymentCache), process definitions will continue to reference an ActivityBehavior instance for the lifetime of the process engine (the cache does not support eviction).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This means that:&lt;/SPAN&gt;&lt;BR /&gt;&lt;UL&gt;&lt;LI&gt;after an instance of the delegate is loaded for the first time the process engine continues referencing that instance through the DeploymentCache&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;instances of JavaDelegate are shared between all process instances in the same process engine&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;you will see inconsistent behavior if you use custom classloaders and the the deployment lifecycle of your classes is not in sync with your processes (i.e. if you redeploy your classes without creating a new process definition, activiti will continue referencing the "old" classes. If you "restart" the engine, it will load the "new" classes.)&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;also in combination with a custom classloader: activiti will continue to hold on to any classes loaded by the process definition: even if you "undeploy" these classes through some other mechanism (ie. if you load classes fro man osgi bundle and undeploy that bundle, activiti will still reference them)&lt;/LI&gt;&lt;/UL&gt;&lt;SPAN&gt;Here are a few tips on how to deal with this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;UL&gt;&lt;LI&gt;deactivate the deployment cache (implement a subclass which does not cache anything)&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;use proxy delegates (a delegate which loads the "actual" delegate)&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;do not use java delegates (but lookup objects the lifecycle of which is managed by some other container like EJB/CDI, OSGi, Spring, … )&lt;/LI&gt;&lt;/UL&gt;&lt;SPAN&gt;The related Jira is ACT-834.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;2) On Class.forName(name, initialize, classloader) vs. Classloader.loadClass(name)&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You have to garbage collect the classloader that loaded a class / create a new instance of your classloader. If you don't, the JVM will not attempt to reload the class. Th JVM will ask the same classloader only once for the same class. Maybe that is the behavior you see.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Nov 2011 06:11:05 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57308#M34813</guid>
      <dc:creator>meyerd</dc:creator>
      <dc:date>2011-11-28T06:11:05Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57309#M34814</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Daniel,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks for the comprehensive reply.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;At the end of the last week I had an idea to override ProcessEngineConfigurationImpl.getClassLoader() in the manner that it returns deployment-based classloader (deploymentId is obtained from the ExecutionContext; if there's no classloader for specified deployment or there's no execution context, some default classloader is returned) and it seems that in my simple test cases for all of the processes proper version of classes are loaded.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you see any possible drawbacks in doing it this way? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(Actually I have to think it over as well&lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://connect.hyland.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Nov 2011 11:04:05 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57309#M34814</guid>
      <dc:creator>pgadecki</dc:creator>
      <dc:date>2011-11-28T11:04:05Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57310#M34815</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;On Class.forName(name, initialize, classloader) vs. Classloader.loadClass(name)&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Method forName caches classes (see &lt;/SPAN&gt;&lt;A href="http://blog.bjhargrave.com/2007/09/classforname-caches-defined-class-in.html" rel="nofollow noopener noreferrer"&gt;http://blog.bjhargrave.com/2007/09/classforname-caches-defined-class-in.html&lt;/A&gt;&lt;SPAN&gt;) internally in native implementation for no understandable reason.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This blocks implementing per-deployment class loading with a single dispatcher class loader set to activiti configuration, which detects deployment context and delegates to a per-deployment class loader.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could anyone explain why ReflectUtil shouldn't use ClassLoader.loadClass instead of Class.forName?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To anyone who is trying to implement per-deployment class loading: the workaround is to override &amp;lt;java&amp;gt;org.activiti.engine.ProcessEngineConfiguration.getClassLoader()&amp;lt;/java&amp;gt; method and return your per-deployment class loader (you can detect deployment context via &amp;lt;java&amp;gt;org.activiti.engine.impl.context.Context.getExecutionContext().getProcessDefinition().getDeploymentId()&amp;lt;/java&amp;gt;).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Aug 2014 07:33:48 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57310#M34815</guid>
      <dc:creator>oefimov</dc:creator>
      <dc:date>2014-08-13T07:33:48Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57311#M34816</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I didn't know that. I don't think there is a reason for it - the main bit is that the correct classloader is used.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Aug 2014 09:28:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57311#M34816</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2014-08-19T09:28:00Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57312#M34817</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Joram, the problem is that the correct classloader doesn't have a chance to be used – Java caches the result and bypasses classloader invocation!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Aug 2014 14:36:22 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57312#M34817</guid>
      <dc:creator>oefimov</dc:creator>
      <dc:date>2014-08-19T14:36:22Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57313#M34818</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Yes - indeed (according to the article). I remember we added the Class.forName method back in the day when we added OSGI support.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you reckon it is simply a matter of changing the implementation? I'm kind of nervous cause the OSGO bits are always hard (and hard to test!) and I definitely don't want to go break them.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Aug 2014 18:46:27 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57313#M34818</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2014-08-20T18:46:27Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57314#M34819</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Joram, I've looked through the ReflectUtil change history – Class.forName has been used since the first version, OSGI changes (&lt;/SPAN&gt;&lt;A href="https://github.com/Activiti/Activiti/commit/8b88dbcaf28cd26789d86f2baeca1cf09fe986fc#diff-bc393452a05d29a6517cf236763e2159" rel="nofollow noopener noreferrer"&gt;commit 1&lt;/A&gt;&lt;SPAN&gt; and &lt;/SPAN&gt;&lt;A href="https://github.com/Activiti/Activiti/commit/5b23168b2219dc4fb01fcc37a6dd4140458eedf9#diff-bc393452a05d29a6517cf236763e2159" rel="nofollow noopener noreferrer"&gt;commit 2&lt;/A&gt;&lt;SPAN&gt;) only added fallback strategy (custom cl -&amp;gt; tccl -&amp;gt; local cl).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not an expert in OSGI, but I believe this change won't make any unforeseen consequences. On the other hand, I understand your adherence to conservative code changes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe it's possible to add configuration option to support both behaviours? E.g.:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. boolean property &lt;/SPAN&gt;&lt;CODE&gt;useClassForNameClassLoading&lt;/CODE&gt;&lt;SPAN&gt; in class &lt;/SPAN&gt;&lt;CODE&gt;org.activiti.engine.ProcessEngineConfiguration&lt;/CODE&gt;&lt;SPAN&gt; set to &lt;/SPAN&gt;&lt;CODE&gt;true&lt;/CODE&gt;&lt;SPAN&gt; by default&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. System property &lt;/SPAN&gt;&lt;CODE&gt;org.activiti.engine.useClassForNameClassLoading&lt;/CODE&gt;&lt;SPAN&gt; with the same semantics&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I can provide pull request if you approve one of these options.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Aug 2014 07:07:43 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57314#M34819</guid>
      <dc:creator>oefimov</dc:creator>
      <dc:date>2014-08-21T07:07:43Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57315#M34820</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Option 1 is the typical way of doing it in Activiti.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you would create a pull request, I would most certainly be happy to review it!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 30 Aug 2014 16:36:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57315#M34820</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2014-08-30T16:36:36Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57316#M34821</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Any progress on this? I am also interested in calling classloader rather than Class.forName with its caching…&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Sep 2014 10:42:28 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57316#M34821</guid>
      <dc:creator>redguy1</dc:creator>
      <dc:date>2014-09-24T10:42:28Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57317#M34822</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I haven't made a pull request yet – probably in a week or two I'll come up with it.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Sep 2014 10:50:19 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57317#M34822</guid>
      <dc:creator>oefimov</dc:creator>
      <dc:date>2014-09-24T10:50:19Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57318#M34823</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello Joram,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've thought about the two options and saw the following problem with the option 1:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I need the configurable parameter in the static context of ReflectUtil, and it will be available only in non-static context of ProcessEngineConfiguration instance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you please suggest smth? Is it acceptable to implement option 2 in Activiti?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Oleg.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Oct 2014 15:07:11 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57318#M34823</guid>
      <dc:creator>oefimov</dc:creator>
      <dc:date>2014-10-23T15:07:11Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57319#M34824</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;good point. There is a way though, the ProcessEngineConfiguration is set in a static threadlocal, see org.activiti.engine.impl.context.Context. So in theory you can access the configuration through there.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Oct 2014 06:50:58 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57319#M34824</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2014-10-24T06:50:58Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57320#M34825</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Created &lt;/SPAN&gt;&lt;A href="https://github.com/Activiti/Activiti/pull/414" rel="nofollow noopener noreferrer"&gt;https://github.com/Activiti/Activiti/pull/414&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Oct 2014 08:57:15 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57320#M34825</guid>
      <dc:creator>oefimov</dc:creator>
      <dc:date>2014-10-25T08:57:15Z</dc:date>
    </item>
    <item>
      <title>Re: ReflectUtil.loadClass() and custom classloader</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57321#M34826</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;TWIMC: bundled in 5.17.0, thanks to Activiti team.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Jan 2015 11:26:03 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/reflectutil-loadclass-and-custom-classloader/m-p/57321#M34826</guid>
      <dc:creator>oefimov</dc:creator>
      <dc:date>2015-01-19T11:26:03Z</dc:date>
    </item>
  </channel>
</rss>

