<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>ServiceBuilder is Importing petra StringBundler instead of kernel.StringBun</title>
  <link rel="self" href="https://uat.liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=111296056" />
  <subtitle>ServiceBuilder is Importing petra StringBundler instead of kernel.StringBun</subtitle>
  <id>https://uat.liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=111296056</id>
  <updated>2026-10-15T10:47:53Z</updated>
  <dc:date>2026-10-15T10:47:53Z</dc:date>
  <entry>
    <title>RE: ServiceBuilder is Importing petra StringBundler instead of kernel.Strin</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=114881190" />
    <author>
      <name>Satyanarayana kolliboyin</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=114881190</id>
    <updated>2019-08-26T09:10:21Z</updated>
    <published>2019-08-26T09:10:21Z</published>
    <summary type="html">After updated dependency as below issue is resolved.Before : compileOnly group: &amp;#34;com.liferay.portal&amp;#34;, name: &amp;#34;com.liferay.portal.kernel&amp;#34;, version: &amp;#34;3.64.1&amp;#34; After (working) : compileOnly group: &amp;#34;com.liferay.portal&amp;#34;, name: &amp;#34;com.liferay.portal.kernel&amp;#34;, version: &lt;strong&gt;&amp;#34;3.0.0&amp;#34;&lt;/strong&gt; </summary>
    <dc:creator>Satyanarayana kolliboyin</dc:creator>
    <dc:date>2019-08-26T09:10:21Z</dc:date>
  </entry>
  <entry>
    <title>RE: ServiceBuilder is Importing petra StringBundler instead of kernel.Strin</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=111347534" />
    <author>
      <name>Minhchau Dang</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=111347534</id>
    <updated>2018-10-26T20:33:20Z</updated>
    <published>2018-10-26T20:33:20Z</published>
    <summary type="html">&lt;blockquote&gt;David Ilechukwu&lt;br /&gt;&lt;br /&gt;How do I resolve this please? Is this a servicebuilder issue?&lt;/blockquote&gt;&lt;br /&gt;Yes, it&amp;#39;s a service builder issue. I&amp;#39;m not exactly sure why this thread was forked from your &lt;a href="https://community.liferay.com/forums/-/message_boards/message/111346540"&gt;other thread&lt;/a&gt;, but you can read the reply there for ways to resolve the issue.</summary>
    <dc:creator>Minhchau Dang</dc:creator>
    <dc:date>2018-10-26T20:33:20Z</dc:date>
  </entry>
  <entry>
    <title>RE: ServiceBuilder is Importing petra StringBundler instead of kernel.Strin</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=111299059" />
    <author>
      <name>David Ilechukwu</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=111299059</id>
    <updated>2018-10-24T08:10:19Z</updated>
    <published>2018-10-24T08:10:19Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;blockquote&gt;Michel Schmidt&lt;blockquote&gt;However, the blogs-service module source code shows that the service builder uses the 7.1.0 servicebuilder and yet the generated -ServiceImplPersistence classes import the&amp;nbsp;com.liferay.portal.kernel.util.StringBundler class rather than com.liferay.petra.string.StringBundler - wondering how that works.&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;From what I can see, the dependency changed in most modules from&amp;nbsp;com.liferay.portal.kernel.util.StringBundler to com.liferay.petra.string.StringBundler (both in the 7.1-branch and also in the master-branch).&lt;br&gt;&lt;br&gt;Some examples:&amp;nbsp;&lt;a href="https://github.com/liferay/liferay-portal/blob/master/modules/apps/blogs/blogs-service/build.gradle#L34"&gt;Here&lt;/a&gt;, &lt;a href="https://github.com/liferay/liferay-portal/blob/7.1.x/modules/apps/blogs/blogs-service/build.gradle#L18"&gt;here&lt;/a&gt;, &lt;a href="https://github.com/liferay/liferay-portal/blob/7.1.x/modules/apps/blogs/blogs-service/build.gradle#L18"&gt;here&lt;/a&gt;, &lt;a href="https://github.com/liferay/liferay-portal/blob/master/modules/apps/announcements/announcements-web/build.gradle#L18"&gt;here&lt;/a&gt;&amp;nbsp;and &lt;a href="https://github.com/liferay/liferay-portal/blob/7.1.x/modules/apps/announcements/announcements-web/build.gradle#L8"&gt;here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;I also have ported a customized liferay core app to 7.1 and remember having done the same.&lt;/blockquote&gt;Many thanks Michel - for your quick reply! Yes, you're right. There's been a change in dependency from kernel StringBundler to petra package StringBundler (I've even included those same petra package dependencies in my own build.gradle). See here...&lt;br&gt;&lt;pre&gt;&lt;code&gt;buildscript {
&amp;amp;nbsp; &amp;amp;nbsp; dependencies {
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; classpath group: "com.liferay", name: "com.liferay.gradle.plugins.service.builder", version: "2.1.61"
&amp;amp;nbsp; &amp;amp;nbsp; }
&amp;amp;nbsp; &amp;amp;nbsp; repositories {
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; maven {
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; url "https://repository-cdn.liferay.com/nexus/content/groups/public"
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; }
&amp;amp;nbsp; &amp;amp;nbsp; }
} &amp;amp;nbsp; &amp;amp;nbsp;
apply plugin: "com.liferay.portal.tools.service.builder"
dependencies {
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "biz.aQute.bnd", name: "biz.aQute.bndlib", version: "3.1.0"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "com.liferay", name: "com.liferay.portal.spring.extender.api", version: "3.0.0"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "3.0.0"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "com.liferay", name: "com.liferay.petra.function", version: "2.0.0"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "com.liferay", name: "com.liferay.petra.model.adapter", version: "2.0.0"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "com.liferay", name: "com.liferay.petra.reflect", version: "2.0.0"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "com.liferay", name: "com.liferay.petra.string", version: "2.0.0" &amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "com.liferay", name: "com.liferay.portal.dao.orm.custom.sql.api", version: "1.0.0"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "javax.portlet", name: "portlet-api", version: "3.0.0"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "org.osgi", name: "org.osgi.core", version: "5.0.0"
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly group: "org.osgi", name: "org.osgi.service.component.annotations", version: "1.3.0" &amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp; &amp;amp;nbsp; compileOnly project(":hrm_core-api")
}
&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;But why then does the code generated by ServiceBuilder in my -ServicePersistenceImpl classes throw compile errors like this...&lt;pre&gt;&lt;code&gt;C:\Software\Devel\Src\Web\Component\hrm_core\hrm_core-service\src\main\java\com\tpl\pmedics\hrm_core\service\persistence\impl\JobVacancyPersistenceImpl.java:734: error: incompatible types: com.liferay.petra.string.StringBundler cannot be converted to com.liferay.portal.kernel.util.StringBundler
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;Apparently, the generated code is expecting the "query" object to be an instance of com.liferay.portal.kernel.util.StringBundler rather than com.liferay.petra.string.StringBundler in this method...&lt;pre&gt;&lt;code&gt;​​​​​​​&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;if (orderByComparator != null) {
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;orderByComparator);
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;How do I resolve this please? Is this a servicebuilder issue?&lt;br&gt;&lt;br&gt;​​​​​​​Thanks.&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>David Ilechukwu</dc:creator>
    <dc:date>2018-10-24T08:10:19Z</dc:date>
  </entry>
  <entry>
    <title>RE: ServiceBuilder is Importing petra StringBundler instead of kernel.Strin</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=111297709" />
    <author>
      <name>Michel Schmidt</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=111297709</id>
    <updated>2018-10-24T05:58:00Z</updated>
    <published>2018-10-24T05:58:00Z</published>
    <summary type="html">&lt;blockquote&gt;However, the blogs-service module source code shows that the service builder uses the 7.1.0 servicebuilder and yet the generated -ServiceImplPersistence classes import the com.liferay.portal.kernel.util.StringBundler class rather than com.liferay.petra.string.StringBundler - wondering how that works.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;From what I can see, the dependency changed in most modules from com.liferay.portal.kernel.util.StringBundler to com.liferay.petra.string.StringBundler (both in the 7.1-branch and also in the master-branch).&lt;br /&gt;&lt;br /&gt;Some examples: &lt;a href="https://github.com/liferay/liferay-portal/blob/master/modules/apps/blogs/blogs-service/build.gradle#L34"&gt;Here&lt;/a&gt;, &lt;a href="https://github.com/liferay/liferay-portal/blob/7.1.x/modules/apps/blogs/blogs-service/build.gradle#L18"&gt;here&lt;/a&gt;, &lt;a href="https://github.com/liferay/liferay-portal/blob/7.1.x/modules/apps/blogs/blogs-service/build.gradle#L18"&gt;here&lt;/a&gt;, &lt;a href="https://github.com/liferay/liferay-portal/blob/master/modules/apps/announcements/announcements-web/build.gradle#L18"&gt;here&lt;/a&gt; and &lt;a href="https://github.com/liferay/liferay-portal/blob/7.1.x/modules/apps/announcements/announcements-web/build.gradle#L8"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I also have ported a customized liferay core app to 7.1 and remember having done the same.</summary>
    <dc:creator>Michel Schmidt</dc:creator>
    <dc:date>2018-10-24T05:58:00Z</dc:date>
  </entry>
  <entry>
    <title>ServiceBuilder is Importing petra StringBundler instead of kernel.StringBun</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=111296055" />
    <author>
      <name>David Ilechukwu</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=111296055</id>
    <updated>2018-10-24T02:40:26Z</updated>
    <published>2018-10-24T02:40:26Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Hello folks!&lt;br&gt;The -ServicePersistenceImpl classes generated by ServiceBuilder all import the com.liferay.petra.string.StringBundler class instead of the com.liferay.portal.kernel.util.StringBundler class. This causes an compile error in the&amp;nbsp;&lt;br&gt;&lt;pre&gt;&lt;code&gt;appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;orderByComparator)
&lt;/code&gt;&lt;/pre&gt;method which is expecting a query argument of type&amp;nbsp;com.liferay.portal.kernel.util.StringBundler.&lt;br&gt;&lt;br&gt;The following error is thrown&lt;pre&gt;&lt;code&gt;C:\Software\Devel\Src\Web\Component\hrm_core\hrm_core-service\src\main\java\com\tpl\pmedics\hrm_core\service\persistence\impl\JobVacancyPersistenceImpl.java:231: error: incompatible types: com.liferay.petra.string.StringBundler cannot be converted to com.liferay.portal.kernel.util.StringBundler
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; ^
C:\Software\Devel\Src\Web\Component\hrm_core\hrm_core-service\src\main\java\com\tpl\pmedics\hrm_core\service\persistence\impl\JobVacancyPersistenceImpl.java:734: error: incompatible types: com.liferay.petra.string.StringBundler cannot be converted to com.liferay.portal.kernel.util.StringBundler
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;I'm using ServiceBuilder plugin declared as follows in my build.gradle&lt;pre&gt;&lt;code&gt;buildscript {
&amp;amp;nbsp; &amp;amp;nbsp; dependencies {
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; classpath group: "com.liferay", name: "com.liferay.gradle.plugins.service.builder", version: "2.1.61"
&amp;amp;nbsp; &amp;amp;nbsp; }
&amp;amp;nbsp; &amp;amp;nbsp; repositories {
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; maven {
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; url "https://repository-cdn.liferay.com/nexus/content/groups/public"
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; }
&amp;amp;nbsp; &amp;amp;nbsp; }
} &amp;amp;nbsp; &amp;amp;nbsp;
apply plugin: "com.liferay.portal.tools.service.builder"
&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;Also, I noticed that servicebuilder started importing the petra package StringBundler after I changed the dtd declaration in my service.xml file from&amp;nbsp;&lt;pre&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;to&lt;pre&gt;&lt;code&gt;​​​​​​​&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;It imports the com.liferay.portal.kernel.util.StringBundler class when the dtd is 7.0.0 rather than 7.1.0&lt;br&gt;&lt;br&gt;However, the blogs-service module source code shows that the service builder uses the 7.1.0 servicebuilder and yet the generated -ServiceImplPersistence classes import the&amp;nbsp;com.liferay.portal.kernel.util.StringBundler class rather than com.liferay.petra.string.StringBundler - wondering how that works.&lt;br&gt;&lt;br&gt;Any helps, please? Searched around without any mention of this kind of occurence.&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>David Ilechukwu</dc:creator>
    <dc:date>2018-10-24T02:40:26Z</dc:date>
  </entry>
</feed>
