Difference between Clp and Impl classesDifference between Clp and Impl classeshttps://liferay.dev/en/c/message_boards/find_thread?p_l_id=119785333&threadId=1150299202024-03-29T13:57:08Z2024-03-29T13:57:08ZRE: Difference between Clp and Impl classesDavid H Nebingerhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1150324622019-08-30T13:55:34Z2019-08-30T13:55:34ZInside of the SB code, you'll often get the Impl class.<br /><br />Outside of the SB code, i.e. accessing from another WAR, you'll be using the Clp (class loader proxy) which knows how to cross the class loader boundary in the app server to invoke the service.<br /><br /><br />The Clp will end up getting a reference to the Impl (it is, after all, just a proxy to it).David H Nebinger2019-08-30T13:55:34ZRE: Difference between Clp and Impl classesOlaf Kockhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1150321032019-08-30T13:51:40Z2019-08-30T13:51:40Z<div class="quote-title">Nikolaos Kroustalakis:</div><blockquote><br />Hello,I'm new to Liferay and currently i'm using Liferay 6.2.<br />I'm having difficulty understanding the difference between Clp and Impl classes.<br /></blockquote>In Liferay 6.2, plugins are deployed in different webapplications, e.g. in completely different classloaders.<br />But the implementation of a service is only deployed once. If you want to consume services from other plugins (or Liferay's core), the calls must traverse classloader boundaries. This is well encapsulated within the "Clp" classes (Clp is short for "Class Loader Proxy"). Thus, in any plugin that doesn't host the implementation of a service, you'll end up with the Clp classes in your stacktrace. The plugin that defines the services themselves will not need to go through hoops to access its own classloader.<br />Once you migrate to the current version (starting with 7.0) that classloading mess will have an end, that's one of the beauties of OSGi.Olaf Kock2019-08-30T13:51:40ZDifference between Clp and Impl classesNikolaos Kroustalakishttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1150299192019-08-30T13:42:43Z2019-08-30T13:42:43ZHello,I'm new to Liferay and currently i'm using Liferay 6.2.<br />I'm having difficulty understanding the difference between Clp and Impl classes. What i mean is that, i can't really understand when and why the service builder is generating Clp classes and other times it's generating Impl classes.<br /><br /> Working in the same project with a colleague, having the same portlets and the same code. When i print the class generated from service builder i get <strong>class cwm.services.builder.model.SendTypeClp, </strong>but when he prints the same thing, he gets<strong> class cwm.services.builder.model.impl.SendTypeImpl.</strong><br /><strong>