亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? abstractaspectjadvisorfactorytests.java

?? struts+spring 源碼 希望能給大家帶來幫助
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
	}
	
	
	@Aspect
	public static class ManyValuedArgs {
		public String mungeArgs(String a, int b, int c, String d, StringBuffer e) {
			return a + b + c + d + e;
		}
		
		@Around(value="execution(String mungeArgs(..)) && args(a, b, c, d, e)",
				argNames="b,c,d,e,a")
		public String reverseAdvice(ProceedingJoinPoint pjp, int b, int c, String d, StringBuffer e, String a) throws Throwable {
			assertEquals(a + b+ c+ d+ e, pjp.proceed());
			return a + b + c + d + e;
		}
	}
	
	public void testBindingWithMultipleArgsDifferentlyOrdered() {
		ManyValuedArgs target = new ManyValuedArgs();
		ManyValuedArgs mva = (ManyValuedArgs) createProxy(target, 
				getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(new ManyValuedArgs(),"someBean")), 
				ManyValuedArgs.class);
		
		String a = "a";
		int b = 12;
		int c = 25;
		String d = "d";
		StringBuffer e = new StringBuffer("stringbuf");
		String expectedResult = a + b+ c + d + e;
		assertEquals(expectedResult, mva.mungeArgs(a, b, c, d, e));
	}
	
	/**
	 * In this case the introduction will be made.
	 */
	public void testIntroductionOnTargetNotImplementingInterface() {
		NotLockable notLockableTarget = new NotLockable();
		assertFalse(notLockableTarget instanceof Lockable);
		NotLockable notLockable1 = (NotLockable) createProxy(notLockableTarget,
				getFixture().getAdvisors(
						new SingletonMetadataAwareAspectInstanceFactory(new MakeLockable(),"someBean")),
				NotLockable.class);
		assertTrue(notLockable1 instanceof Lockable);
		Lockable lockable = (Lockable) notLockable1;
		assertFalse(lockable.locked());
		lockable.lock();
		assertTrue(lockable.locked());
		
		NotLockable notLockable2Target = new NotLockable();
		NotLockable notLockable2 = (NotLockable) createProxy(notLockable2Target,
				getFixture().getAdvisors(
						new SingletonMetadataAwareAspectInstanceFactory(new MakeLockable(),"someBean")),
				NotLockable.class);
		assertTrue(notLockable2 instanceof Lockable);
		Lockable lockable2 = (Lockable) notLockable2;
		assertFalse(lockable2.locked());
		notLockable2.setIntValue(1);
		lockable2.lock();
		try {
			notLockable2.setIntValue(32);
			fail();
		}
		catch (IllegalStateException ex) {
		}
		assertTrue(lockable2.locked());
	}
	
	public void testIntroductionAdvisorExcludedFromTargetImplementingInterface() {
		assertTrue(AopUtils.findAdvisorsThatCanApply(
						getFixture().getAdvisors(
									new SingletonMetadataAwareAspectInstanceFactory(
											new MakeLockable(),"someBean")), 
						CannotBeUnlocked.class).isEmpty());
		assertEquals(2, AopUtils.findAdvisorsThatCanApply(getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(new MakeLockable(),"someBean")), NotLockable.class).size());
	}
	
	@SuppressWarnings("unchecked")
	public void testIntroductionOnTargetImplementingInterface() {
		CannotBeUnlocked target = new CannotBeUnlocked();
		Lockable proxy = (Lockable) createProxy(target,
				// Ensure that we exclude
				AopUtils.findAdvisorsThatCanApply(
						getFixture().getAdvisors(
								new SingletonMetadataAwareAspectInstanceFactory(new MakeLockable(),"someBean")),
						CannotBeUnlocked.class
				),
				CannotBeUnlocked.class);
		assertTrue(proxy instanceof Lockable);
		Lockable lockable = (Lockable) proxy;
		assertTrue("Already locked", lockable.locked());
		lockable.lock();
		assertTrue("Real target ignores locking", lockable.locked());
		try {
			lockable.unlock();
			fail();
		}
		catch (UnsupportedOperationException ex) {
			// Ok
		}
	}
	
	@SuppressWarnings("unchecked")
	public void testIntroductionOnTargetExcludedByTypePattern() {
		LinkedList target = new LinkedList();
		List proxy = (List) createProxy(target,
				AopUtils.findAdvisorsThatCanApply(
						getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(new MakeLockable(),"someBean")),
						List.class
				),
				CannotBeUnlocked.class);
		assertFalse("Type pattern must have excluded mixin", proxy instanceof Lockable);
	}

	// TODO: Why does this test fail? It hasn't been run before, so it maybe never actually passed...
	public void XtestIntroductionWithArgumentBinding() {
		TestBean target = new TestBean();
		
		List<Advisor> advisors = getFixture().getAdvisors(
				new SingletonMetadataAwareAspectInstanceFactory(new MakeITestBeanModifiable(),"someBean"));
		advisors.addAll(getFixture().getAdvisors(
				new SingletonMetadataAwareAspectInstanceFactory(new MakeLockable(),"someBean")));
		
		Modifiable modifiable = (Modifiable) createProxy(target,
				advisors,
				ITestBean.class);
		assertTrue(modifiable instanceof Modifiable);
		Lockable lockable = (Lockable) modifiable;
		assertFalse(lockable.locked());
		
		ITestBean itb = (ITestBean) modifiable;
		assertFalse(modifiable.isModified());
		int oldAge = itb.getAge();
		itb.setAge(oldAge + 1);
		assertTrue(modifiable.isModified());
		modifiable.acceptChanges();
		assertFalse(modifiable.isModified());
		itb.setAge(itb.getAge());
		assertFalse("Setting same value does not modify", modifiable.isModified());
		itb.setName("And now for something completely different");
		assertTrue(modifiable.isModified());
		
		lockable.lock();
		assertTrue(lockable.locked());
		try {
			itb.setName("Else");
			fail("Should be locked");
		}
		catch (IllegalStateException ex) {
			// Ok
		}
		lockable.unlock();
		itb.setName("Tony");
	}
	
	@Aspect
	public static class ExceptionAspect {
		private final Exception ex;
		
		public ExceptionAspect(Exception ex) {
			this.ex = ex;
		}
		
		@Before("execution(* getAge())")		
		public void throwException() throws Exception {
			throw ex;
		}
	}
		
	public void testAspectMethodThrowsExceptionLegalOnSignature() {
		TestBean target = new TestBean();
		UnsupportedOperationException expectedException = new UnsupportedOperationException();
		List<Advisor> advisors = getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(new ExceptionAspect(expectedException),"someBean"));
		assertEquals("One advice method was found", 1, advisors.size());
		ITestBean itb = (ITestBean) createProxy(target, 
				advisors, 
				ITestBean.class);
		try {
			itb.getAge();
			fail();
		}
		catch (UnsupportedOperationException ex) {
			assertSame(expectedException, ex);
		}
	}
	
	// TODO document this behaviour.
	// Is it different AspectJ behaviour, at least for checked exceptions?
	public void testAspectMethodThrowsExceptionIllegalOnSignature() {
		TestBean target = new TestBean();
		RemoteException expectedException = new RemoteException();
		List<Advisor> advisors = getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(new ExceptionAspect(expectedException),"someBean"));
		assertEquals("One advice method was found", 1, advisors.size());
		ITestBean itb = (ITestBean) createProxy(target, 
				advisors, 
				ITestBean.class);
		try {
			itb.getAge();
			fail();
		}
		catch (UndeclaredThrowableException ex) {
			assertSame(expectedException, ex.getCause());
		}
	}
	
	protected Object createProxy(Object target, List<Advisor> advisors, Class ... interfaces) {
		ProxyFactory pf = new ProxyFactory(target);
		if (interfaces.length > 1 || interfaces[0].isInterface()) {
			pf.setInterfaces(interfaces);
		}
		else {
			pf.setProxyTargetClass(true);
		}
		
		// Required everywhere we use AspectJ proxies
		pf.addAdvice(ExposeInvocationInterceptor.INSTANCE);
		
		for (Advisor a : advisors) {
			pf.addAdvisor(a);
		}
		
		pf.setExposeProxy(true);
		return pf.getProxy();
	}
	
	@Aspect
	public static class TwoAdviceAspect {
		private int totalCalls;
		
		@Around("execution(* getAge())")		
		public int returnCallCount(ProceedingJoinPoint pjp) throws Exception {
			return totalCalls;
		}
		
		@Before("execution(* setAge(int)) && args(newAge)")		
		public void countSet(int newAge) throws Exception {
			++totalCalls;
		}
	}
		
	public void testTwoAdvicesOnOneAspect() {
		TestBean target = new TestBean();
	
		TwoAdviceAspect twoAdviceAspect = new TwoAdviceAspect();
		List<Advisor> advisors = getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(twoAdviceAspect,"someBean"));
		assertEquals("Two advice methods found", 2, advisors.size());
		ITestBean itb = (ITestBean) createProxy(target, 
				advisors, 
				ITestBean.class);
		itb.setName("");
		assertEquals(0, itb.getAge());
		int newAge = 32;
		itb.setAge(newAge);
		assertEquals(1, itb.getAge());
	}

	public static class Echo {
		public Object echo(Object o) throws Exception {
			if (o instanceof Exception) {
				throw (Exception) o;
			}
			return o;
		}
	}
	
	@Aspect
	public static class ExceptionHandling {
		public int successCount;
		public int failureCount;
		public int afterCount;
		
		@AfterReturning("execution(* echo(*))")
		public void succeeded() {
			++successCount;
		}
		
		@AfterThrowing("execution(* echo(*))")
		public void failed() {
			++failureCount;
		}
		
		@After("execution(* echo(*))")
		public void invoked() {
			++afterCount;
		}
	}
	
	public void testAfterAdviceTypes() throws Exception {
		Echo target = new Echo();
	
		ExceptionHandling afterReturningAspect = new ExceptionHandling();
		List<Advisor> advisors = getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(afterReturningAspect,"someBean"));
		Echo echo = (Echo) createProxy(target, 
				advisors, 
				Echo.class);
		assertEquals(0, afterReturningAspect.successCount);
		assertEquals("", echo.echo(""));
		assertEquals(1, afterReturningAspect.successCount);
		assertEquals(0, afterReturningAspect.failureCount);
		try {
			echo.echo(new ServletException());
			fail();
		}
		catch (ServletException ex) {
			// Ok
		}
		catch (Exception ex) {
			fail();
		}
		assertEquals(1, afterReturningAspect.successCount);
		assertEquals(1, afterReturningAspect.failureCount);
		assertEquals(afterReturningAspect.failureCount + afterReturningAspect.successCount, afterReturningAspect.afterCount);
	}
	
	@Aspect
	public static class NoDeclarePrecedenceShouldFail {
		
		@Pointcut("execution(int *.getAge())")
		public void getAge() {
		}
		
		@Before("getAge()")
		public void blowUpButDoesntMatterBecauseAroundAdviceWontLetThisBeInvoked() {
			throw new IllegalStateException();
		}
		
		@Around("getAge()")
		public int preventExecution(ProceedingJoinPoint pjp) {
			return 666;
		}
	}
	
	@Aspect
	@DeclarePrecedence("org.springframework..*")
	public static class DeclarePrecedenceShouldSucceed {
		
		@Pointcut("execution(int *.getAge())")
		public void getAge() {
		}
		
//		@Before("getAge()")
//		public void blowUpButDoesntMatterBecauseAroundAdviceWontLetThisBeInvoked() {
//			throw new IllegalStateException();
//		}
//		
//		@Around("getAge()")
//
//		public int preventExecution(ProceedingJoinPoint pjp) {
//			return 666;
//		}
	}
	
	public void testFailureWithoutExplicitDeclarePrecedence() {
		TestBean target = new TestBean();
		ITestBean itb = (ITestBean) createProxy(target, 
				getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(new NoDeclarePrecedenceShouldFail(),"someBean")), 
				ITestBean.class);
		try {
			itb.getAge();
			fail();
		}
		catch (IllegalStateException ex) {
			
		}
	}
	
	public void testDeclarePrecedenceNotSupported() {
		TestBean target = new TestBean();
		try {
			createProxy(target, 
				getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(
						new DeclarePrecedenceShouldSucceed(),"someBean")), 
				ITestBean.class);
			fail();
		}
		catch (IllegalArgumentException ex) {
			// Not supported in M1
		}
	}

// TODO in 2.0M1 precedence is out of scope
//	public void testExplicitDeclarePrecedencePreventsFailure() {
//		TestBean target = new TestBean();
//		ITestBean itb = (ITestBean) createProxy(target, 
//				getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(
//						new DeclarePrecedenceShouldSucceed())), 
//				ITestBean.class);
//		assertEquals(666, itb.getAge());
//	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品日日鲁夜夜添| 精品动漫一区二区三区在线观看| 国产91综合一区在线观看| 成人免费三级在线| 欧洲精品视频在线观看| 欧美videossexotv100| 久久久久国产精品人| 一区二区三区日韩欧美| 久久se这里有精品| www.日韩av| 日韩欧美在线一区二区三区| 国产精品三级久久久久三级| 首页亚洲欧美制服丝腿| 丰满放荡岳乱妇91ww| 欧美日韩一区二区三区免费看| 7777精品伊人久久久大香线蕉| 国产精品电影院| 一区二区三区高清| 国产精品18久久久久久vr| 国产精品原创巨作av| 欧美人牲a欧美精品| 亚洲欧美在线aaa| 国内精品国产三级国产a久久| 在线免费观看日本一区| 久久色在线观看| 日本在线不卡视频| 色妹子一区二区| 精品福利在线导航| 一区二区高清免费观看影视大全 | 成人午夜视频网站| 欧美性一二三区| 亚洲欧洲性图库| 国产精品影视网| 日韩一二三四区| 午夜私人影院久久久久| 色噜噜狠狠成人中文综合| 亚洲精品一区在线观看| 无码av免费一区二区三区试看| 色综合一区二区| 综合av第一页| 丁香六月综合激情| 国产欧美日韩在线看| 久久精品国产精品亚洲综合| 91久久精品日日躁夜夜躁欧美| 日日夜夜精品视频天天综合网| 欧美三级日韩三级国产三级| 亚洲视频一区二区在线| 成人久久久精品乱码一区二区三区| 精品国产网站在线观看| 麻豆成人91精品二区三区| 久久综合色8888| voyeur盗摄精品| 日韩美女视频19| 欧美日韩精品二区第二页| 污片在线观看一区二区| 欧美精品精品一区| 日韩电影在线观看电影| 欧美一区二区免费观在线| 蜜桃视频一区二区三区在线观看 | 国产一区二区剧情av在线| 精品久久99ma| 国产成人在线色| 国产精品免费视频网站| 成人中文字幕合集| 亚洲欧美电影院| 欧美日韩国产天堂| 久久av中文字幕片| 国产午夜精品久久| 9i在线看片成人免费| 欧美经典三级视频一区二区三区| 成人激情小说网站| 亚洲午夜一区二区三区| 欧美刺激脚交jootjob| 国产激情一区二区三区| 日韩理论在线观看| 欧美一区二区三区色| 国产高清久久久久| 亚洲色图视频网| 91精品国产综合久久久蜜臀粉嫩| 精品一区二区三区免费观看 | 免费在线观看一区| 久久亚洲捆绑美女| 高清在线观看日韩| 亚洲第一福利视频在线| 久久亚洲私人国产精品va媚药| jlzzjlzz国产精品久久| 天天综合天天做天天综合| 久久久精品免费观看| 欧美性欧美巨大黑白大战| 激情欧美一区二区三区在线观看| 国产精品久久久久久久久久久免费看| 91麻豆自制传媒国产之光| 日韩1区2区日韩1区2区| 国产精品久久久久久久蜜臀| 宅男在线国产精品| 国产一区二区在线影院| 亚洲国产精品精华液网站| 欧美色图片你懂的| 成人午夜在线视频| 六月丁香婷婷久久| 久久久久综合网| 日韩精品影音先锋| 国产盗摄女厕一区二区三区| 秋霞国产午夜精品免费视频| 亚洲综合久久久| 国产精品电影一区二区| 国产女人aaa级久久久级 | 久久综合久色欧美综合狠狠| 欧美精品视频www在线观看 | 成人久久18免费网站麻豆| 国产毛片精品一区| 韩国一区二区视频| 久久国产精品99久久久久久老狼 | 精品国产伦一区二区三区观看体验 | 国产精品你懂的在线| 久久精品视频一区二区三区| 久久亚洲精品小早川怜子| 欧美精品一区二区不卡| 久久亚洲综合av| 久久精品人人做人人爽人人| 欧美韩国日本不卡| 中文字幕精品一区二区三区精品| 国产欧美一区在线| 国产精品动漫网站| 一区二区三区在线视频免费观看| 亚洲精品视频在线观看网站| 亚洲一级二级三级| 日韩一区精品字幕| 经典三级视频一区| 国产91综合网| 91传媒视频在线播放| 欧美精品乱码久久久久久按摩| 欧美一区二区三区婷婷月色| 久久亚洲二区三区| 国产精品久久影院| 一区二区三区国产精品| 图片区小说区国产精品视频| 久久国产乱子精品免费女| 成人免费黄色大片| 欧美制服丝袜第一页| 欧美一二三四区在线| 国产精品无遮挡| 一区二区不卡在线播放| 免费在线观看日韩欧美| 成人性生交大片免费看中文网站| 欧洲av在线精品| 久久综合99re88久久爱| 国产精品成人在线观看| 视频一区二区中文字幕| 国产美女精品人人做人人爽| 欧洲精品视频在线观看| 久久婷婷色综合| 亚洲成在人线免费| 国产精品亚洲人在线观看| 欧美亚洲一区三区| 久久久久久久久97黄色工厂| 一二三区精品福利视频| 精品一区二区三区影院在线午夜| 色综合婷婷久久| 久久美女艺术照精彩视频福利播放 | 欧美激情在线一区二区| 日韩黄色一级片| 成人av免费观看| 欧美一区二区三区婷婷月色| 亚洲色图另类专区| 久久精品久久综合| 色婷婷久久久久swag精品| 久久在线观看免费| 亚洲bdsm女犯bdsm网站| 不卡的电视剧免费网站有什么| 日韩精品一区二区三区蜜臀| 亚洲综合清纯丝袜自拍| 成人久久18免费网站麻豆| 欧美刺激脚交jootjob| 五月激情综合网| 91丨九色丨黑人外教| 欧美激情在线观看视频免费| 精品中文av资源站在线观看| 欧美在线free| 亚洲精品中文在线观看| 丁香婷婷综合激情五月色| 精品少妇一区二区三区在线播放 | 美国三级日本三级久久99| kk眼镜猥琐国模调教系列一区二区| 日韩视频在线观看一区二区| 亚洲一二三专区| 91九色02白丝porn| 日韩精品欧美精品| 91蜜桃在线观看| 久久蜜桃av一区二区天堂| 久久精品国产久精国产| 日韩一区二区三区三四区视频在线观看| 一区二区三区日韩精品视频| 91蜜桃在线观看| 亚洲欧洲制服丝袜| 97精品超碰一区二区三区| 中文字幕不卡一区| av一区二区久久| 1区2区3区精品视频| 91同城在线观看|