Fórum

Mocking Liferay Services for Unit Testing

Phoenix Zerin, modificado 12 Anos atrás.

Mocking Liferay Services for Unit Testing

Junior Member Postagens: 60 Data de Entrada: 28/06/11 Postagens Recentes
I'm developing a portlet for Liferay 6 that will display content that is determined to be related to other content being displayed on the page.

I've currently got a working prototype that simply displays a few strings that are assigned programmatically. I think the next step is to change it from displaying strings to displaying web content, but I don't want to have to have a running Liferay instance to run my unit tests.

From the developer training for Liferay EE, I remember the instructor mentioning using dependency injection to inject mock service implementations, but he did not go into how to do this.

How do I inject mock service implementations (e.g., for the JournalArticleLocalServiceUtil) so that I can unit test my code without having to have a Liferay instance running?

[EDIT: I did see this thread (http://www.liferay.com/community/forums/-/message_boards/message/95801), but it is far too advanced for my level. I am very new to Liferay and to Java in general as well.]
thumbnail
David H Nebinger, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Liferay Legend Postagens: 14919 Data de Entrada: 02/09/06 Postagens Recentes
What you're asking about is outside the normal Liferay discussions and is really more appropriately targeted towards Spring...

Basically since Liferay uses Spring, there is an interface which defines the methods the concrete implementation of the services must implement.

When creating a mock service, you have a class which also implements the interface but effectively does nothing (it may return a static list or something, whatever is necessary to satisfy the interface).

Then to use your mock service, you'd use Spring magic to instantiate and wire it up. For a JUnit test case, you can either allow Spring to do all of this for you or you can manually wire the mock into the instance you're testing.
thumbnail
Steffen Schuler, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Regular Member Postagens: 137 Data de Entrada: 12/05/08 Postagens Recentes
Can you tell us more about your setup? I assume you are using the Liferay IDE, and Service Builder etc, and added some config files...
Phoenix Zerin, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Junior Member Postagens: 60 Data de Entrada: 28/06/11 Postagens Recentes
I'm using Liferay IDE and a stock Liferay EE + Tomcat server. The only configuration change I've made so far is adding MySQL configuration to portal-ext.properties.
jm mayer, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing (Resposta)

New Member Postagens: 23 Data de Entrada: 28/07/10 Postagens Recentes
I use PowerMock with Mockito typically to mock out static calls to Liferay services.

@RunWith(PowerMockRunner.class)
@PrepareForTest({HttpUtil.class})
public class SomeTest {
  @Test
  public void testSomething() { 
    String doAsUserLanguageId = "foo";
    String expected = "whatever?doAsUserLanguageId=foo";
    when(HttpUtil.addParameter("whatever", "doAsUserLanguageId", doAsUserLanguageId)).thenReturn(expected);
  }
}
jm mayer, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

New Member Postagens: 23 Data de Entrada: 28/07/10 Postagens Recentes
Does this answer your question?
Phoenix Zerin, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Junior Member Postagens: 60 Data de Entrada: 28/06/11 Postagens Recentes
Thanks JM. This looks promising, but I'm having a little difficulty getting it to work; could you advise?

My test case looks like this:
@RunWith(PowerMockRunner.class)
@PrepareForTest(
{
  JournalArticleLocalServiceUtil.class
})
public class JournalArticleContentTest
{
  protected long id;
  protected JournalArticle article;

  @Before
  public void setUp()
    throws Exception
  {
    PowerMockito.mockStatic(JournalArticleContentTest.class);

    this.id = 1;

    this.article = new JournalArticleImpl();
    this.article.setPrimaryKey(this.id);

    PowerMockito.when(JournalArticleLocalServiceUtil.getArticle(this.id)).thenReturn(
      this.article);
  }
}


When I try to run it with JUnit (by right-clicking on the file in Liferay IDE and selecting Run As → JUnit Test), it looks like the method is not getting mocked; this is the console log I get:

Aug 30, 2011 11:13:06 AM com.liferay.portal.kernel.log.Jdk14LogImpl info
INFO: Detected server jetty
Loading file:/.../liferay-6.0/bin/system.properties
log4j:WARN No appenders could be found for logger (com.germinus.easyconf.EasyConf).
log4j:WARN Please initialize the log4j system properly.
Loading file:/.../liferay-6.0/bin/portal.properties
Aug 30, 2011 11:13:08 AM com.liferay.portal.kernel.log.Jdk14LogImpl error
SEVERE: BeanLocator is null
thumbnail
Amos Fong, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Liferay Legend Postagens: 2047 Data de Entrada: 07/10/08 Postagens Recentes
Phoenix,

I think what you can do is run this:

InitUtil.initWithSpring()

which should create a beanLocator for you and I think "wire" up spring for you, but I'm not sure.
Phoenix Zerin, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Junior Member Postagens: 60 Data de Entrada: 28/06/11 Postagens Recentes
Thanks for the suggestion Amos.

Unfortunately, adding InitUtil.initWithSpring() does not solve the problem; the test still fails, albeit with different errors this time (org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serviceAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'asyncAdvice' while setting bean property 'nextMethodInterceptor').

Here's what the test looks like now:

@RunWith(PowerMockRunner.class)
@PrepareForTest(
{
  JournalArticleLocalServiceUtil.class
})
public class JournalArticleContentTest
{
  protected long id;
  protected JournalArticle article;

  @Before
  public void setUp()
    throws Exception
  {
    InitUtil.initWithSpring();
    PowerMockito.mockStatic(JournalArticleContentTest.class);

    this.id = 1;

    this.article = new JournalArticleImpl();
    this.article.setPrimaryKey(this.id);

    PowerMockito.when(JournalArticleLocalServiceUtil.getArticle(this.id)).thenReturn(
      this.article);
  }

  @Test
  public void testLazyLoad()
  {
  }
}
Phoenix Zerin, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Junior Member Postagens: 60 Data de Entrada: 28/06/11 Postagens Recentes
I did a little more digging, and it turns out that Mockito might be working, but there's a couple more service calls that I have to mock.

The problem was on this line:

this.article = new JournalArticleImpl();


JournalArticleModelImpl (which JournalArticleImpl extends) calls a couple of services in its class declaration:

public class JournalArticleModelImpl extends BaseModelImpl<journalarticle>
	implements JournalArticleModel {

	...

	public static final boolean ENTITY_CACHE_ENABLED = GetterUtil.getBoolean(com.liferay.portal.util.PropsUtil.get(
				"value.object.entity.cache.enabled.com.liferay.portlet.journal.model.JournalArticle"),
			true);
	public static final boolean FINDER_CACHE_ENABLED = GetterUtil.getBoolean(com.liferay.portal.util.PropsUtil.get(
				"value.object.finder.cache.enabled.com.liferay.portlet.journal.model.JournalArticle"),
			true);
</journalarticle>
Dirk Ulrich, modificado 12 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Junior Member Postagens: 42 Data de Entrada: 21/10/11 Postagens Recentes
It would be beneficial for the whole Liferay community to get assistance in configuring and running junit tests for services. Thus, I would be a really good help if any Liferay guru could put a guidance in the Liferay Wiki of how to set up junit test in detail considering:

- usage of portal-test.properties and test-portal-impl.propeties (is it really needed for testing unit services? --> would be great anyhow how to use it correctly )
- where do the unit tests have to be located
- usage of ServiceTestUtil.java
- data used in database (company, user, group, ...)
- ...

I currently get several exceptions:
09:16:54,330 ERROR [PropsUtil:106] [color=#ff0000]Unable to initialize PropsUtil[/color]
java.lang.NullPointerException
	at java.util.Hashtable.put(Hashtable.java:394)
	at java.util.Properties.setProperty(Properties.java:143)
	at java.lang.System.setProperty(System.java:729)


(When debugging liferay.home is null. Where do I have to set this property? I use portal-test.properties and have to manually set -Dexternal-properties=/test/portal-test.properties as JVM argument what I am not comfortable with.)

and subsequently

com.liferay.portal.kernel.bean.BeanLocatorException: [color=#ff0000]BeanLocator has not been set[/color]
	at com.liferay.portal.kernel.bean.PortalBeanLocatorUtil.locate(PortalBeanLocatorUtil.java:33)
	at com.liferay.portal.service.UserLocalServiceUtil.getService(UserLocalServiceUtil.java:1063)
thumbnail
Rajender Reddy Nagulapalle, modificado 11 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Junior Member Postagens: 33 Data de Entrada: 21/05/11 Postagens Recentes
Hi All,
I am using Liferay 6.1 and tried to mock liferay services. Following is the test class and getting error. Can some pelase help me out.

package com.jack.service;

import com.jack.model.JunitTable;
import com.jack.model.impl.JunitTableImpl;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.util.InitUtil;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;

@RunWith(MockitoJUnitRunner.class)
@PrepareForTest({JunitTableLocalServiceUtil.class})
public class TestCase extends com.liferay.portal.kernel.test.TestCase {

	//private JunitTableLocalService junitTableLocalService;
	private JunitTable junitTable;
	//@Mock private JunitTable newJunitTable;
	//@Mock private JunitTableLocalServiceUtil jts;
	
	@Before
	public void init() throws PortalException, SystemException{
		 InitUtil.initWithSpring();
	}
	
	@Test
	public void testUserName() throws Exception{
		//junitTableLocalService  = new JunitTableLocalServiceImpl(); 
		 PowerMockito.mockStatic(JunitTableLocalServiceUtil.class);
		junitTable = new JunitTableImpl();
		this.junitTable.setName("Test");
		this.junitTable.setPrimaryKey(1);
		//this.newJunitTable.setId_(1);
		PowerMockito.when(JunitTableLocalServiceUtil.class, "getJunitTable", 1l).thenReturn(this.junitTable);
		//PowerMockito.when(JunitTableLocalServiceUtil.getJunitTable(1)).thenReturn(this.junitTable);
		PowerMockito.verifyStatic(Mockito.never());
		//ReflectionTestUtils.setField(junitTableLocalService, "junitTable", junitTable);
		assertEquals(true, true);
		System.out.println(JunitTableLocalServiceUtil.getJunitTable(1).getName());
		
	}
	
}[code]org.mockito.exceptions.misusing.MissingMethodInvocationException: 
when() requires an argument which has to be 'a method call on a mock'.
For example:
    when(mock.getArticles()).thenReturn(articles);

Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
   Those methods *cannot* be stubbed/verified.
2. inside when() you don't call method on mock but on some other object.

	at org.powermock.api.mockito.PowerMockito.when(PowerMockito.java:468)
	at com.jack.service.TestCase.testUserName(TestCase.java:39)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
	at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.mockito.internal.runners.JUnit45AndHigherRunnerImpl.run(JUnit45AndHigherRunnerImpl.java:37)
	at org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:62)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

thumbnail
Rajender Reddy Nagulapalle, modificado 11 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Junior Member Postagens: 33 Data de Entrada: 21/05/11 Postagens Recentes
any luck
thumbnail
Rajender Reddy Nagulapalle, modificado 11 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Junior Member Postagens: 33 Data de Entrada: 21/05/11 Postagens Recentes
Hi Zerin,
It seems you worked on mock testing and can you please help me out.
I tried following code and its giving me lot errrors

Code:
	@Before
	public void init() throws PortalException, SystemException{
		 InitUtil.initWithSpring();
	}
	
	@Test
	public void testUserName() throws Exception{
		//junitTableLocalService  = new JunitTableLocalServiceImpl(); 
		 PowerMockito.mockStatic(JunitTableLocalServiceUtil.class);
		junitTable = new JunitTableImpl();
		this.junitTable.setName("Test");
		this.junitTable.setPrimaryKey(1);
		//this.newJunitTable.setId_(1);
		PowerMockito.when(JunitTableLocalServiceUtil.class, "getJunitTable", 1l).thenReturn(this.junitTable);
		//PowerMockito.when(JunitTableLocalServiceUtil.getJunitTable(1)).thenReturn(this.junitTable);
		PowerMockito.verifyStatic(Mockito.never());
		//ReflectionTestUtils.setField(junitTableLocalService, "junitTable", junitTable);
		assertEquals(true, true);
		System.out.println(JunitTableLocalServiceUtil.getJunitTable(1).getName());
		
	}


Error Log:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.spring.aop.ServiceBeanAutoProxyCreator#0' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'serviceAdvice' while setting bean property 'methodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serviceAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'asyncAdvice' while setting bean property 'nextMethodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'asyncAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'threadLocalCacheAdvice' while setting bean property 'nextMethodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'threadLocalCacheAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'transactionAdvice' while setting bean property 'nextMethodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'liferayTransactionManager' while setting bean property 'platformTransactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayTransactionManager' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayHibernateSessionFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayHibernateSessionFactory' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayDataSource' defined in class path resource [META-INF/ext-spring.xml]: Cannot create inner bean 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' of type [com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean] while setting bean property 'targetDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' defined in class path resource [META-INF/ext-spring.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:728)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:449)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
	at com.liferay.portal.spring.context.ArrayApplicationContext.<init>(ArrayApplicationContext.java:31)
	at com.liferay.portal.spring.util.SpringUtil.loadContext(SpringUtil.java:56)
	at com.liferay.portal.util.InitUtil.initWithSpring(InitUtil.java:164)
	at com.liferay.portal.util.InitUtil.initWithSpring(InitUtil.java:143)
	at com.jack.service.TestCase.init(TestCase.java:33)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.junit.internal.runners.MethodRoadie.runBefores(MethodRoadie.java:129)
	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:93)
	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:296)
	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:112)
	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:73)
	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:284)
	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84)
	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:209)
	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:148)
	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:122)
	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
	at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:120)
	at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:102)
	at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)
	at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:42)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serviceAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'asyncAdvice' while setting bean property 'nextMethodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'asyncAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'threadLocalCacheAdvice' while setting bean property 'nextMethodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'threadLocalCacheAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'transactionAdvice' while setting bean property 'nextMethodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'liferayTransactionManager' while setting bean property 'platformTransactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayTransactionManager' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayHibernateSessionFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayHibernateSessionFactory' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayDataSource' defined in class path resource [META-INF/ext-spring.xml]: Cannot create inner bean 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' of type [com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean] while setting bean property 'targetDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' defined in class path resource [META-INF/ext-spring.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 45 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'asyncAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'threadLocalCacheAdvice' while setting bean property 'nextMethodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'threadLocalCacheAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'transactionAdvice' while setting bean property 'nextMethodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'liferayTransactionManager' while setting bean property 'platformTransactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayTransactionManager' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayHibernateSessionFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayHibernateSessionFactory' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayDataSource' defined in class path resource [META-INF/ext-spring.xml]: Cannot create inner bean 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' of type [com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean] while setting bean property 'targetDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' defined in class path resource [META-INF/ext-spring.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 55 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'threadLocalCacheAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'transactionAdvice' while setting bean property 'nextMethodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'liferayTransactionManager' while setting bean property 'platformTransactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayTransactionManager' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayHibernateSessionFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayHibernateSessionFactory' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayDataSource' defined in class path resource [META-INF/ext-spring.xml]: Cannot create inner bean 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' of type [com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean] while setting bean property 'targetDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' defined in class path resource [META-INF/ext-spring.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 65 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionAdvice' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'liferayTransactionManager' while setting bean property 'platformTransactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayTransactionManager' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayHibernateSessionFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayHibernateSessionFactory' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayDataSource' defined in class path resource [META-INF/ext-spring.xml]: Cannot create inner bean 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' of type [com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean] while setting bean property 'targetDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' defined in class path resource [META-INF/ext-spring.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 75 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayTransactionManager' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayHibernateSessionFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayHibernateSessionFactory' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayDataSource' defined in class path resource [META-INF/ext-spring.xml]: Cannot create inner bean 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' of type [com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean] while setting bean property 'targetDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' defined in class path resource [META-INF/ext-spring.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:441)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1015)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 85 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayHibernateSessionFactory' defined in class path resource [META-INF/ext-spring.xml]: Cannot resolve reference to bean 'liferayDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayDataSource' defined in class path resource [META-INF/ext-spring.xml]: Cannot create inner bean 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' of type [com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean] while setting bean property 'targetDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' defined in class path resource [META-INF/ext-spring.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 97 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liferayDataSource' defined in class path resource [META-INF/ext-spring.xml]: Cannot create inner bean 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' of type [com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean] while setting bean property 'targetDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' defined in class path resource [META-INF/ext-spring.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 107 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean#57f5b4d1' defined in class path resource [META-INF/ext-spring.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270)
	... 117 more
Caused by: java.lang.LinkageError: loader constraint violation: when resolving method "java.lang.management.ManagementFactory.getPlatformMBeanServer()Ljavax/management/MBeanServer;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/mchange/v2/c3p0/management/ActiveManagementCoordinator, and the class loader (instance of <bootloader>) for resolved class, java/lang/management/ManagementFactory, have different Class objects for the type javax/management/MBeanServer used in the signature
	at com.mchange.v2.c3p0.management.ActiveManagementCoordinator.<init>(ActiveManagementCoordinator.java:42)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:308)
	at com.mchange.v2.c3p0.C3P0Registry.<clinit>(C3P0Registry.java:134)
	at com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<init>(PoolBackedDataSourceBase.java:228)
	at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.<init>(AbstractPoolBackedDataSource.java:62)
	at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:109)
	at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:105)
	at com.liferay.portal.dao.jdbc.DataSourceFactoryImpl.initDataSourceC3PO(DataSourceFactoryImpl.java:166)
	at com.liferay.portal.dao.jdbc.DataSourceFactoryImpl.initDataSource(DataSourceFactoryImpl.java:110)
	at com.liferay.portal.kernel.dao.jdbc.DataSourceFactoryUtil.initDataSource(DataSourceFactoryUtil.java:39)
	at com.liferay.portal.dao.jdbc.spring.DataSourceFactoryBean.createInstance(DataSourceFactoryBean.java:44)
	at com.liferay.portal.dao.jdbc.spring.DataSourceFactoryBean.createInstance(DataSourceFactoryBean.java:1)
	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:130)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
	... 120 more

</init></init></init></init></clinit></init></bootloader></bootloader></bootloader></bootloader></bootloader></bootloader></bootloader></bootloader></bootloader></init></init></init></bootloader>
SZ khan, modificado 11 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

Regular Member Postagens: 145 Data de Entrada: 31/10/09 Postagens Recentes
I am also getting the same error message
Error creating bean with name 'com.liferay.portal.spring.aop.ServiceBeanAutoProxyCreator#0' defined in class path resource [META-INF/base-spring.xml]: Cannot resolve reference to bean 'serviceAdvice' while setting bean property 'methodInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException

Looks like there is no valid example of Junit integration with Liferay 6.1
Ryan Kennedy, modificado 10 Anos atrás.

RE: Mocking Liferay Services for Unit Testing

New Member Postagens: 4 Data de Entrada: 14/02/13 Postagens Recentes
I've found it is an exercise in futility attempting to use PowerMock for Liferay static utility classes. Inevitably you run into something which cannot be mocked, and you are stuck.

What I've resorted to is wrapping all static methods in instance methods of delegate @Component POJO's, and scan them into the Spring context. Then I mock *those* objects in the unit tests (WebDelegate, ContainerDelegate, ContentDelegate, etc.) with standard Mockito. Bye bye PowerMock, and hello clean unit tests and easy code coverage. Also, no Liferay dependencies in your shiny new code!

You take a hit on code coverage for those wrappers, but if you put them in their own project and knowingly ignore metrics from those wrappers, it's no biggie.