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 Attachement
52840 vues
Moyenne (3 Voter)
L'estimation moyenne est de 5.0 étoiles sur 5.
Commentaires
Réponses Auteur Données
Good job Ryan... Jay Patel 27 août 2012 07:49
This is brilliant stuff Brad! Thanks a ton. I... Kamesh Sampath 23 septembre 2012 01:09
One more thing which I forgot was the instance... Kamesh Sampath 23 septembre 2012 01:30
i want to create a site template with the... Ahmed bouchriha 11 octobre 2012 06:48
@Kamesh Sampath the instanceIds are generated... Bradley Wood 11 octobre 2012 09:33
@ahmed bouchriha I'm looking at it and I think... Bradley Wood 12 octobre 2012 12:28
Thank you that was very helpful Ahmed bouchriha 16 octobre 2012 10:02
"create a portlet-ext.properties file in your... Ahmed bouchriha 24 octobre 2012 05:50
I was wrong earlier, before you deploy the... Bradley Wood 26 octobre 2012 22:12
How to install? 11:47:07,558 INFO [STDOUT]... Alex Perez 28 novembre 2012 07:02
How to install??? S.O: SLES 11 SP2 jboss 5.1.0... Alex Perez 28 novembre 2012 07:12
Not installed, I can not see ... In Control... Alex Perez 28 novembre 2012 07:13
Solucionado... SOLVED... Create a... Alex Perez 1 décembre 2012 15:00
I think this is a great idea, but I question... Joseph Toman 10 janvier 2013 11:48
I would like to know where can I get this... Lipika Rout 1 février 2013 06:27
@Lipika - You can download the resources... Jim Hinkey 16 mars 2013 05:45
Hm…, I'm reluctant to download the "latest... Reiner Saddey 28 octobre 2014 04:00
Surprise! Having pushed all sorts of buttons... Reiner Saddey 28 octobre 2014 04:24
Hi All, When I try to deploy resource importer... ramakanth reddy 4 juin 2013 10:16
Hi All, When I try to deploy resource importer... ramakanth reddy 4 juin 2013 10:16
@Ramakanth - Have you tried setting... Jim Hinkey 4 juin 2013 11:50
Hi Jim, Thanks for your reply. I have tried... ramakanth reddy 4 juin 2013 22:39
Awesome stuff thanks!, What about performance?... Adolfo Benedetti 3 décembre 2013 00:38
How can I get the values to set up the webform... Artur Mello 3 septembre 2014 06:33

Publié le 27/08/12 07:49.
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.
Publié le 23/09/12 01:09.
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 ?
Publié le 23/09/12 01:30.
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
Publié le 11/10/12 06:48 en réponse à Kamesh Sampath.
Bradley Wood
@Kamesh Sampath the instanceIds are generated when I initially create the web content then download the article.xml file
Publié le 11/10/12 09:33.
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
Publié le 12/10/12 12:28.
Thank you that was very helpful
Publié le 16/10/12 10:02 en réponse à 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
Publié le 24/10/12 05:50 en réponse à 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.
Publié le 26/10/12 22:12 en réponse à 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.
Publié le 28/11/12 07:02.
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
Publié le 28/11/12 07:12.
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
Publié le 28/11/12 07:13.
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
Publié le 01/12/12 15:00 en réponse à 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.
Publié le 10/01/13 11:48.
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?
Publié le 01/02/13 06:27.
@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.
Publié le 16/03/13 05:45 en réponse à 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
Publié le 04/06/13 10:16.
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
Publié le 04/06/13 10:16.
@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
Publié le 04/06/13 11:50.
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
Publié le 04/06/13 22:39 en réponse à Jim Hinkey.
Awesome stuff thanks!,
What about performance? should we shutdown the lucene index during the deployment and site template instantiation ?
Publié le 03/12/13 00:38.
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!
Publié le 03/09/14 06:33.
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.
Publié le 28/10/14 04:00 en réponse à 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 :-)
Publié le 28/10/14 04:24 en réponse à Reiner Saddey.