Resources Importer Web

Background #

Resources Importer is a web-plugin created by Ryan Park to allow front-end developers to package web content source and portlet configurations together in a theme.

All of the web content source files are located in the (my-theme-name)/WEB-INF/src/resources-importer/

A JSON file, named "sitemap.json" is used to describe the site pages, layouts, web content and portlet configurations.

When the theme is deployed with the accompanied resources-importer-web a site template is created. Note: The Welcome-Theme and its content gets applied to the default site if there isn't any user content found.

Bradley Wood has been working on getting the first batch of themes ready for Marketplace with this new method. So look at zoe-brochure, zoe-healthcare, zoe-resort, zoe-tech to get an idea of how some of the code looks.

Requested Features #

  • None pending.

Completed Features #

Version trunk #

Version 1.0.0 #

( Available in Marketplace) <hr />

- please create a ticket in JIRA using the resources-importer component type

Configurations #

Developer Mode #

A theme can have the developer moder turned by adding this property: resources-importer-developer-mode-enabled=true in their liferay-plugin-package.properties file of the theme.

When the theme that has the dev mode turn on, The site template is recreated the site template without having to delete the site that is using the template, then deleting the site template.

This dev mode is used if the content of the theme has been changed such as sitemap.json or anything in the "[theme_folder]/WEB-INF/src/resources-importer" folder.

Source File Folder Structure #

- WEB-INF
    - src
        - resources-importer
           - archive.lar (optional) 
            - sitemap.json
            - document_library
                - documents
                    - image1.png
                    - image2.png
            - journal
                - articles
                     - Main Carousel.html
                    - Featured Content (name of template)
                        - Exceptional Support.xml
                        - Our Goal.xml
                        - The Experience.xml
                - structures
                    - Featured Content.xml
                    - Parent Structure.xml
                    - Parent Structure [folder]
                          - Child Structure.xml
                - templates
                    - Featured Content [structure name]
                        - Featured Content.vm
                        - Featured Content2.vm

articles - group articles by a folder that matches the name of the template file structures - no folders only structure .xml files templates - group templates by a folder matches the name of the structure file

Archive.lar #

An Archive.lar file can be added in the resources folder and will get applied to the site template. The .lar is exported from the site scope.

Web Content #

Use title case [ex. Featured Content] for both folder and files within (articles, structures, templates) required folders

Document Library #

In order to include images in web content.html files or journal article .xml files here are how to reference the documents located in (./WEB-INF/src/resources-importer/document_library/documents/)

For .html:

 <img src="[$FILE=My Image.jpg$]" /> 

<a href="[$FILE=My Document.pdf$]">Click Here</a>

For .xml

 <![CDATA[[$FILE=carousel_2.png$]]]>

For .vm

 [$FILE=image_name.jpg$]

sitemap.json #

{
	"layoutTemplateId": "2_columns_ii",
	"layouts": [
		{
			"title": "Home",
			"name": "Home",
			"friendlyURL": "/home",
			"layoutTemplateId": "1-2-3-columns",
			"columns": [
				[
					"Home Banner.html"
				],
				[
					"Welcome to Our Clinics.html"
				],
				[
					"Our Mission.html"
				],
				[
					"Our Team.html"
				],
				[
					"Our Promise.html"
				],
				[
					"Recent News.html"
				]
			]
		},
		{
			"title": "About",
			"layoutTemplateId": "2-1-2-4-columns",
			"name": "About",
			"friendlyURL": "/about",
			"layouts": [
				{
					"title": "Category 1",
					"name": "Category 1",
					"friendlyURL": "/category-1",
				},
				{
					"title": "Category 2",
					"name": "Category 2",
					"friendlyURL": "/category-2",
				},
				{
					"title": "Category 3",
					"name": "Category 3",
					"friendlyURL": "/category-3",
				},
				{
					"title": "Category 4",
					"name": "Category 4",
					"friendlyURL": "/category-4",
				}
			],
			"columns": [
				[
					"The 7 Cogs Promise.html"
				],
				[
					{
						"portletId": "71",
						"portletPreferences": {
							"displayStyle": "from-level-1-with-title"
						}
					}
				],
				[
					"Make an Appointment.html"
				],
				[
					"Make an Appointment Left Image.html"
				],
				[
					{
						"portletId": "1_WAR_webformportlet_INSTANCE_${groupId}",
						"portletPreferences": {
							"portletSetupCss": {
								"advancedData": {
									"customCSSClassName": "make-appointment"
								}
							},
							"portletSetupShowBorders": "false",
							"fieldsEditingDisabled": "true",
							"fieldType1": "text",
							"fieldLabel1": "Full Name",
							"fieldType2": "text",
							"fieldLabel2": "Email",
							"fieldType3": "textarea",
							"fieldValue": "Write your short description here",
							"title" : "Seeing your Doctor, made easy",
							"description" : "Lorem ipsum dolor sit amet, lohtil
 consectetur adipiscing elit. 
Vivamus feugiat, augue in sollicitudin blandit, magna 
purus bibendum justo, quisnic scelerisque ipsum turpis 
eu dui. Nunc lobortis, augue ac viverra convallis."
						}
					}
				],
				[
					"Section 1.html"
				],
				[
					"Section 2.html"
				],
				[
					"Section 3.html"
				],
				[
					"Section 4.html"
				]
			]
		},
		{
			"title": "Clinic",
			"name": "Clinic",
			"friendlyURL": "/clinic"
		},
		{
			"title": "Services",
			"name": "Services",
			"friendlyURL": "/services"
		},
		{
			"title": "Health Plans",
			"name": "Health Plans",
			"friendlyURL": "/health-plans"
		},
		{
			"title": "Location",
			"name": "Location",
			"friendlyURL": "/location"
		},
		{
			"title": "Contact Us",
			"name": "Contact Us",
			"friendlyURL": "/contact-us"
		}
	]
}


=== Web Form Portlet Example ===
{{{
{
      "portletId": "1_WAR_webformportlet_INSTANCE_${groupId}",
      "portletPreferences": {
           "fieldType2": "radio",
	   "fieldOptions2": "option1,option2,option3",
	   "title" : "",
	   "description" : "",
           "portletSetupCss": {
                 "advancedData": {
                       "customCSSClassName": "make-appointment"
		 }
	   }
      }
}
1 Attachment
31011 Views
Average (3 Votes)
The average rating is 5.0 stars out of 5.
Comments
Threaded Replies Author Date
Good job Ryan... Jay Patel August 27, 2012 7:49 AM
This is brilliant stuff Brad! Thanks a ton. I... Kamesh Sampath September 23, 2012 1:09 AM
One more thing which I forgot was the instance... Kamesh Sampath September 23, 2012 1:30 AM
i want to create a site template with the... Ahmed bouchriha October 11, 2012 6:48 AM
@Kamesh Sampath the instanceIds are generated... Bradley Wood October 11, 2012 9:33 AM
@ahmed bouchriha I'm looking at it and I think... Bradley Wood October 12, 2012 12:28 PM
Thank you that was very helpful Ahmed bouchriha October 16, 2012 10:02 AM
"create a portlet-ext.properties file in your... Ahmed bouchriha October 24, 2012 5:50 AM
I was wrong earlier, before you deploy the... Bradley Wood October 26, 2012 10:12 PM
How to install? 11:47:07,558 INFO [STDOUT]... Alex Perez November 28, 2012 7:02 AM
How to install??? S.O: SLES 11 SP2 jboss 5.1.0... Alex Perez November 28, 2012 7:12 AM
Not installed, I can not see ... In Control... Alex Perez November 28, 2012 7:13 AM
Solucionado... SOLVED... Create a... Alex Perez December 1, 2012 3:00 PM
I think this is a great idea, but I question... Joseph Toman January 10, 2013 11:48 AM
I would like to know where can I get this... Lipika Rout February 1, 2013 6:27 AM
@Lipika - You can download the resources... James Hinkey March 16, 2013 5:45 AM
Hm…, I'm reluctant to download the "latest... Reiner Saddey October 28, 2014 4:00 AM
Surprise! Having pushed all sorts of buttons... Reiner Saddey October 28, 2014 4:24 AM
Hi All, When I try to deploy resource importer... ramakanth reddy June 4, 2013 10:16 AM
Hi All, When I try to deploy resource importer... ramakanth reddy June 4, 2013 10:16 AM
@Ramakanth - Have you tried setting... James Hinkey June 4, 2013 11:50 AM
Hi Jim, Thanks for your reply. I have tried... ramakanth reddy June 4, 2013 10:39 PM
Awesome stuff thanks!, What about performance?... Adolfo Benedetti December 3, 2013 12:38 AM
How can I get the values to set up the webform... Bruno Lima September 3, 2014 6:33 AM

Good job Ryan...
Posted on 8/27/12 7:49 AM.
This is brilliant stuff Brad! Thanks a ton.

I have few thoughtsd proabably queries,

1. Can we make the redploys override if the Template already exists, this will be highly useful during develoment
2. Can we do partial import of resources e.g. when the layout already exist then create only the content, layout of portlets etc.,
3.Can we also include mechanism to create the users ? Not sure it makes sense here but then it would be handy

Let me know your thoughts.
Posted on 9/23/12 1:09 AM.
One more thing which I forgot was the instance id attributes, does it need to be some valid instance id or we have just dummy ones. If we have dummy ones whether they need to be unique ?
Posted on 9/23/12 1:30 AM.
i want to create a site template with the resources importer plugin and i have an article that use a web content structure that extends another structure and i didn't find the method to do that
the situation is :
structure A used by my article have a parent structure B how can i references the 2 on the resources importer .
note that i have to use the structure B because its used on many others structure as parant and i cant just solve this problem by repeating its elements on each child structure.
Thanks
Posted on 10/11/12 6:48 AM in reply to Kamesh Sampath.
Bradley Wood
@Kamesh Sampath the instanceIds are generated when I initially create the web content then download the article.xml file
Posted on 10/11/12 9:33 AM.
Bradley Wood
@ahmed bouchriha I'm looking at it and I think you are correct that as of right now I don't see it possible. This is an idea of how the structure could look in the future for this issue.

journal
- sturctures
-- Parent Structure.xml
-- Parent Structure
---- Child Structure.xml

Here is the ticket for this request:
http://issues.liferay.com/browse/LPS-30462

This feature has been completed, make sure to checkout and update from github.com https://github.com/liferay/liferay-plugins/compare/shinnlok:260341f890...c4dc8db­500
Posted on 10/12/12 12:28 PM.
Thank you that was very helpful
Posted on 10/16/12 10:02 AM in reply to Bradley Wood.
"create a portlet-ext.properties file in your bundle located: /tomcat/webapps/ROOT/WEB-INF/classes/

in portlet-ext.properties set. developer.mode.enabled=true

This will turn resources importer into developer mode which will update the site template the resources importer creates."
i did that but still not updating the site template it prompt this message
Group or layout set prototype already exists for company liferay.com
is this a known issue or am i missing something
Thanks
Posted on 10/24/12 5:50 AM in reply to ahmed bouchriha.
Bradley Wood
I was wrong earlier, before you deploy the resources importer find the portlet.properties file. in there is a value for developer.mode.enabled set that to true.
Posted on 10/26/12 10:12 PM in reply to ahmed bouchriha.
How to install?

11:47:07,558 INFO 11:47:07,558 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:177] Processing resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.war
11:47:07,560 INFO 11:47:07,560 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:­48] Copying web plugin for /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war
11:47:07,562 INFO 11:47:07,562 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:763] Deploying resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.war
11:47:07,616 INFO Expanding: /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war into /tmp/20121128114707568
11:47:07,687 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF
11:47:07,751 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF/classes
11:47:07,757 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF/classes
11:47:07,758 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF
11:47:07,856 INFO 11:47:07,856 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:2083] Modifying Servlet 2.4 /tmp/20121128114707568/WEB-INF/web.xml
11:47:07,963 INFO Copying 34 files to /opt/liferay-6.1/jboss-5.1.0.GA/standalone/deployments/resources-importer-web.wa­r
11:47:07,972 INFO Copying 1 file to /opt/liferay-6.1/jboss-5.1.0.GA/standalone/deployments/resources-importer-web.wa­r
11:47:07,981 INFO Deleting directory /tmp/20121128114707568
11:47:07,989 INFO 11:47:07,989 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:­54] Web plugin for /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war copied successfully. Deployment will start in a few seconds.
Posted on 11/28/12 7:02 AM.
How to install???

S.O: SLES 11 SP2
jboss 5.1.0 GA
JDK 1.7
liferay 6.1 CE (war)
DataBase: Hypersonic

11:47:07,558 INFO 11:47:07,558 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:177] Processing resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.war
11:47:07,560 INFO 11:47:07,560 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:­48] Copying web plugin for /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war
11:47:07,562 INFO 11:47:07,562 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:763] Deploying resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.war
11:47:07,616 INFO Expanding: /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war into /tmp/20121128114707568
11:47:07,687 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF
11:47:07,751 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF/classes
11:47:07,757 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF/classes
11:47:07,758 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF
11:47:07,856 INFO 11:47:07,856 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:2083] Modifying Servlet 2.4 /tmp/20121128114707568/WEB-INF/web.xml
11:47:07,963 INFO Copying 34 files to /opt/liferay-6.1/jboss-5.1.0.GA/standalone/deployments/resources-importer-web.wa­r
11:47:07,972 INFO Copying 1 file to /opt/liferay-6.1/jboss-5.1.0.GA/standalone/deployments/resources-importer-web.wa­r
11:47:07,981 INFO Deleting directory /tmp/20121128114707568
11:47:07,989 INFO 11:47:07,989 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:­54] Web plugin for /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war copied successfully. Deployment will start in a few seconds.

No se instala, no puedo verlo...

En panel de control -->Servidor-->Gestor de actualizaciones

Me indica:

Plugin: Resources Importer/resources-importer-web

Fiable: No

Estado: Instalación en proceso

Version instalada: 6.1.1.1-ce-ga2-20120824095956608
Posted on 11/28/12 7:12 AM.
Not installed, I can not see ...

In Control Panel -> Server -> Update Manager

I stated:

Plugin: Resources Importer / resources-web-Importer

Reliable: No

State: Installation in progress

Installed Version: 6.1.1.1-ce-GA2-20120824095956608
Posted on 11/28/12 7:13 AM.
Solucionado... SOLVED...

Create a portal-ext.properties file in $LIFERAY_HOME (one level above $JBOSS_HOME and add the following properties:

NOTE: The autodeploy folder must be set with the full name of the folder - you can’t use any variables to define the location

auto.deploy.jboss.dest.dir=${jboss.home.dir}/server/default/deploy
auto.d­eploy.deploy.dir=C:/JBoss-<version>/deploy
Posted on 12/1/12 3:00 PM in reply to Alex Perez.
I think this is a great idea, but I question whether it's the right implementation. Looking at FileSystemImporter.java, I see you are parsing the JSON by hand. Because of this, you essentially have to recapitulate the entire site template LAR code in order to have complete coverage of the features that have already been implemented there. Not only that, but you have to stay in sync with any changes that happen in that code. That's a lot of work. I think you would have been better off writing a generic JSON to LAR converter and then feeding the transformed sitemap.json file into the LAR import system. I noticed this because I need to add keywords to some of my pages and there was no way to do it in sitemap.json . Yes, I could add a LAR to the theme, but at that point, what's the point? I can import a site template LAR directly. But like I said, it's a good idea, and front end developers who have to deal with Liferay deserve all the help they can get.
Posted on 1/10/13 11:48 AM.
I would like to know where can I get this plugin war.When I build from source I am getting lots of compilation error for portal-service-6.1.0.jar dependencies.

Does it support Liferay 6.1.20 - EE?
Posted on 2/1/13 6:27 AM.
@Lipika - You can download the resources importer application from Liferay Marketplace. Search for either Resources Importer CE or Resources Importer EE, depending on your Liferay Portal platform, and download the latest version. Install and deploy the resources importer to your Liferay instance the same way you would deploy any other Liferay plugin or Marketplace app.
Posted on 3/16/13 5:45 AM in reply to Lipika Rout.
Hi All,
When I try to deploy resource importer in liferay 6.1.20 EE version, I am getting struts related warnings followed by liferay journal error as follows :

Failed to define class org.apache.portals.bridges.struts.taglib.FormTag in Module "deployment.test-resourceimporter-6.1.20.1.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link org/apache/portals/bridges/struts/taglib/FormTag (Module "deployment.test-resourceimporter-6.1.20.1.war:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.Module.loadModuleClass(Module.java:517) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClas­sLoader.java:468) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassL­oader.java:456) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassL­oader.java:423) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.j­ava:398) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120­) [jboss-modules.jar:1.1.1.GA]
at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_43]
at java.lang.Class.forName(Class.java:249) [rt.jar:1.6.0_43]
at org.jboss.as.server.deployment.reflect.DeploymentClassIndex.classIndex(Deploymen­tClassIndex.java:54)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processCompon­entConfig(InterceptorAnnotationProcessor.java:63) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(Interc­eptorAnnotationProcessor.java:55) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPh­aseService.java:113)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceContro­llerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.­java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:8­95) [rt.jar:1.6.0_43]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_43]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_43]

ERROR:

Plugin package on context test-resourceimporter-6.1.20.1 cannot be tracked because this WAR does not contain a liferay-plugin-package.xml file
05:52:31,640 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1421] Checking for available updates
05:52:31,656 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1465] Finished checking for available updates in 0 ms
05:52:32,436 ERROR [liferay/hot_deploy-1][SerialDestination:113] Unable to process message {destinationName=liferay/hot_deploy, response=null, responseDestinationName=null, responseId=null, payload=null, values={principalPassword=null, principalName=null, command=deploy, companyId=0, servletContextName=test-resourceimporter-6.1.20.1}}
com.liferay.portal.kernel.mes­saging.MessageListenerException: com.liferay.portlet.journal.StructureXsdException
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListe­ner.java:31)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessag­eListener.java:63)
at com.liferay.portal.kernel.messaging.SerialDestination$1.run(SerialDestination.ja­va:110)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(Thre­adPoolExecutor.java:671)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoo­lExecutor.java:582)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.liferay.portlet.journal.StructureXsdException
at com.liferay.portlet.journal.service.impl.JournalStructureLocalServiceImpl.addStr­ucture(JournalStructureLocalServiceImpl.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at­ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:122)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionI­nterceptor.java:71)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.security.pacl.PACLAdvice.invoke(PACLAdvice.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.jav­a:211)
at com.sun.proxy.$Proxy221.addStructure(Unknown Source)
at com.liferay.portlet.journal.service.JournalStructureLocalServiceUtil.addStructur­e(JournalStructureLocalServiceUtil.java:295)
at com.liferay.resourcesimporter.util.FileSystemImporter.doAddJournalStructures(Fil­eSystemImporter.java:477)
at com.liferay.resourcesimporter.util.ResourceImporter.addJournalStructures(Resourc­eImporter.java:121)
at com.liferay.resourcesimporter.util.FileSystemImporter.setupAssets(FileSystemImpo­rter.java:744)
at com.liferay.resourcesimporter.util.FileSystemImporter.doImportResources(FileSyst­emImporter.java:530)
at com.liferay.resourcesimporter.util.ResourceImporter.importResources(ResourceImpo­rter.java:35)
at com.liferay.resourcesimporter.messaging.HotDeployMessageListener.doReceive(HotDe­ployMessageListener.java:166)
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListe­ner.java:25)
... 5 more


Please help me how to resolve the issues.

I have not added any articles,structures etc ,I have just added sitemap.json

liferay-pulgin-package.properties:

name=Test Resourceimporter
module-group-id=liferay
module-incremental-version=1
tags=
short-de­scription=
change-log=
page-url=http://www.liferay.com
author=Liferay, Inc.
licenses=LGPL
liferay-versions=6.1.1

#required-deployment-contexts=\
#resources­-importer-web
#resources-importer-developer-mode-enabled=true
Posted on 6/4/13 10:16 AM.
Hi All,
When I try to deploy resource importer in liferay 6.1.20 EE version, I am getting struts related warnings followed by liferay journal error as follows :

Failed to define class org.apache.portals.bridges.struts.taglib.FormTag in Module "deployment.test-resourceimporter-6.1.20.1.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link org/apache/portals/bridges/struts/taglib/FormTag (Module "deployment.test-resourceimporter-6.1.20.1.war:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.Module.loadModuleClass(Module.java:517) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClas­sLoader.java:468) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassL­oader.java:456) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassL­oader.java:423) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.j­ava:398) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120­) [jboss-modules.jar:1.1.1.GA]
at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_43]
at java.lang.Class.forName(Class.java:249) [rt.jar:1.6.0_43]
at org.jboss.as.server.deployment.reflect.DeploymentClassIndex.classIndex(Deploymen­tClassIndex.java:54)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processCompon­entConfig(InterceptorAnnotationProcessor.java:63) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(Interc­eptorAnnotationProcessor.java:55) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPh­aseService.java:113)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceContro­llerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.­java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:8­95) [rt.jar:1.6.0_43]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_43]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_43]

ERROR:

Plugin package on context test-resourceimporter-6.1.20.1 cannot be tracked because this WAR does not contain a liferay-plugin-package.xml file
05:52:31,640 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1421] Checking for available updates
05:52:31,656 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1465] Finished checking for available updates in 0 ms
05:52:32,436 ERROR [liferay/hot_deploy-1][SerialDestination:113] Unable to process message {destinationName=liferay/hot_deploy, response=null, responseDestinationName=null, responseId=null, payload=null, values={principalPassword=null, principalName=null, command=deploy, companyId=0, servletContextName=test-resourceimporter-6.1.20.1}}
com.liferay.portal.kernel.mes­saging.MessageListenerException: com.liferay.portlet.journal.StructureXsdException
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListe­ner.java:31)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessag­eListener.java:63)
at com.liferay.portal.kernel.messaging.SerialDestination$1.run(SerialDestination.ja­va:110)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(Thre­adPoolExecutor.java:671)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoo­lExecutor.java:582)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.liferay.portlet.journal.StructureXsdException
at com.liferay.portlet.journal.service.impl.JournalStructureLocalServiceImpl.addStr­ucture(JournalStructureLocalServiceImpl.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at­ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:122)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionI­nterceptor.java:71)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.security.pacl.PACLAdvice.invoke(PACLAdvice.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.jav­a:211)
at com.sun.proxy.$Proxy221.addStructure(Unknown Source)
at com.liferay.portlet.journal.service.JournalStructureLocalServiceUtil.addStructur­e(JournalStructureLocalServiceUtil.java:295)
at com.liferay.resourcesimporter.util.FileSystemImporter.doAddJournalStructures(Fil­eSystemImporter.java:477)
at com.liferay.resourcesimporter.util.ResourceImporter.addJournalStructures(Resourc­eImporter.java:121)
at com.liferay.resourcesimporter.util.FileSystemImporter.setupAssets(FileSystemImpo­rter.java:744)
at com.liferay.resourcesimporter.util.FileSystemImporter.doImportResources(FileSyst­emImporter.java:530)
at com.liferay.resourcesimporter.util.ResourceImporter.importResources(ResourceImpo­rter.java:35)
at com.liferay.resourcesimporter.messaging.HotDeployMessageListener.doReceive(HotDe­ployMessageListener.java:166)
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListe­ner.java:25)
... 5 more


Please help me how to resolve the issues.

I have not added any articles,structures etc ,I have just added sitemap.json

liferay-pulgin-package.properties:

name=Test Resourceimporter
module-group-id=liferay
module-incremental-version=1
tags=
short-de­scription=
change-log=
page-url=http://www.liferay.com
author=Liferay, Inc.
licenses=LGPL
liferay-versions=6.1.1

#required-deployment-contexts=\
#resources­-importer-web
#resources-importer-developer-mode-enabled=true
Posted on 6/4/13 10:16 AM.
@Ramakanth - Have you tried setting required-deployment-contexts in your liferay-plugin-package.properties as follows?

required-deployment-contexts=\
resources-importer-web

This declares your theme’s dependency on the resources importer plugin.
http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/­6-1-importing-resources-with-themes
Posted on 6/4/13 11:50 AM.
Hi Jim,

Thanks for your reply.

I have tried setting below property in iferay-plugin-package.properties but still I am getting same warnings and errors.
required-deployment-contexts=\
resources-importer-web
Posted on 6/4/13 10:39 PM in reply to Jim Hinkey.
Awesome stuff thanks!,
What about performance? should we shutdown the lucene index during the deployment and site template instantiation ?
Posted on 12/3/13 12:38 AM.
How can I get the values to set up the webform portlet?

I'm new in liferay and I'm getting crazy to setup and customize this webform. What are the options that I can set through sitemap.json? Where can I get a list of that options?

Thank you!
Posted on 9/3/14 6:33 AM.
Hm…, I'm reluctant to download the "latest version", as it might not be suitable for 6.1 CE GA3 (internal version number 6.1.2). Is this true?

I fail to access any prior version of the Resources Importer. Any help appreciated.
Posted on 10/28/14 4:00 AM in reply to Jim Hinkey.
Surprise!

Having pushed all sorts of buttons ("never push this button again"), I ran into the Update Manager listing "Resources Imported Web" "6.1.1.4-ce-ga3" as "Up to Date".

Must have been included off the shelf :-)
Posted on 10/28/14 4:24 AM in reply to Reiner Saddey.