Arjen Poutsma
16 years ago
13 changed files with 469 additions and 7 deletions
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/* |
||||
* Copyright 2002-2007 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.beans; |
||||
|
||||
/** |
||||
* @author Juergen Hoeller |
||||
*/ |
||||
public enum CustomEnum { |
||||
|
||||
VALUE_1, VALUE_2; |
||||
|
||||
public String toString() { |
||||
return "CustomEnum: " + name(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,237 @@
@@ -0,0 +1,237 @@
|
||||
/* |
||||
* Copyright 2002-2008 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.beans; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.Collection; |
||||
import java.util.Collections; |
||||
import java.util.HashMap; |
||||
import java.util.HashSet; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.Set; |
||||
|
||||
import org.springframework.core.io.Resource; |
||||
|
||||
/** |
||||
* @author Juergen Hoeller |
||||
*/ |
||||
public class GenericBean<T> { |
||||
|
||||
private Set<Integer> integerSet; |
||||
|
||||
private List<Resource> resourceList; |
||||
|
||||
private List<List<Integer>> listOfLists; |
||||
|
||||
private ArrayList<String[]> listOfArrays; |
||||
|
||||
private List<Map<Integer, Long>> listOfMaps; |
||||
|
||||
private Map plainMap; |
||||
|
||||
private Map<Short, Integer> shortMap; |
||||
|
||||
private HashMap<Long, ?> longMap; |
||||
|
||||
private Map<Number, Collection<? extends Object>> collectionMap; |
||||
|
||||
private Map<String, Map<Integer, Long>> mapOfMaps; |
||||
|
||||
private Map<Integer, List<Integer>> mapOfLists; |
||||
|
||||
private CustomEnum customEnum; |
||||
|
||||
private T genericProperty; |
||||
|
||||
private List<T> genericListProperty; |
||||
|
||||
|
||||
public GenericBean() { |
||||
} |
||||
|
||||
public GenericBean(Set<Integer> integerSet) { |
||||
this.integerSet = integerSet; |
||||
} |
||||
|
||||
public GenericBean(Set<Integer> integerSet, List<Resource> resourceList) { |
||||
this.integerSet = integerSet; |
||||
this.resourceList = resourceList; |
||||
} |
||||
|
||||
public GenericBean(HashSet<Integer> integerSet, Map<Short, Integer> shortMap) { |
||||
this.integerSet = integerSet; |
||||
this.shortMap = shortMap; |
||||
} |
||||
|
||||
public GenericBean(Map<Short, Integer> shortMap, Resource resource) { |
||||
this.shortMap = shortMap; |
||||
this.resourceList = Collections.singletonList(resource); |
||||
} |
||||
|
||||
public GenericBean(Map plainMap, Map<Short, Integer> shortMap) { |
||||
this.plainMap = plainMap; |
||||
this.shortMap = shortMap; |
||||
} |
||||
|
||||
public GenericBean(HashMap<Long, ?> longMap) { |
||||
this.longMap = longMap; |
||||
} |
||||
|
||||
public GenericBean(boolean someFlag, Map<Number, Collection<? extends Object>> collectionMap) { |
||||
this.collectionMap = collectionMap; |
||||
} |
||||
|
||||
|
||||
public Set<Integer> getIntegerSet() { |
||||
return integerSet; |
||||
} |
||||
|
||||
public void setIntegerSet(Set<Integer> integerSet) { |
||||
this.integerSet = integerSet; |
||||
} |
||||
|
||||
public List<Resource> getResourceList() { |
||||
return resourceList; |
||||
} |
||||
|
||||
public void setResourceList(List<Resource> resourceList) { |
||||
this.resourceList = resourceList; |
||||
} |
||||
|
||||
public List<List<Integer>> getListOfLists() { |
||||
return listOfLists; |
||||
} |
||||
|
||||
public ArrayList<String[]> getListOfArrays() { |
||||
return listOfArrays; |
||||
} |
||||
|
||||
public void setListOfArrays(ArrayList<String[]> listOfArrays) { |
||||
this.listOfArrays = listOfArrays; |
||||
} |
||||
|
||||
public void setListOfLists(List<List<Integer>> listOfLists) { |
||||
this.listOfLists = listOfLists; |
||||
} |
||||
|
||||
public List<Map<Integer, Long>> getListOfMaps() { |
||||
return listOfMaps; |
||||
} |
||||
|
||||
public void setListOfMaps(List<Map<Integer, Long>> listOfMaps) { |
||||
this.listOfMaps = listOfMaps; |
||||
} |
||||
|
||||
public Map getPlainMap() { |
||||
return plainMap; |
||||
} |
||||
|
||||
public Map<Short, Integer> getShortMap() { |
||||
return shortMap; |
||||
} |
||||
|
||||
public void setShortMap(Map<Short, Integer> shortMap) { |
||||
this.shortMap = shortMap; |
||||
} |
||||
|
||||
public HashMap<Long, ?> getLongMap() { |
||||
return longMap; |
||||
} |
||||
|
||||
public void setLongMap(HashMap<Long, ?> longMap) { |
||||
this.longMap = longMap; |
||||
} |
||||
|
||||
public Map<Number, Collection<? extends Object>> getCollectionMap() { |
||||
return collectionMap; |
||||
} |
||||
|
||||
public void setCollectionMap(Map<Number, Collection<? extends Object>> collectionMap) { |
||||
this.collectionMap = collectionMap; |
||||
} |
||||
|
||||
public Map<String, Map<Integer, Long>> getMapOfMaps() { |
||||
return mapOfMaps; |
||||
} |
||||
|
||||
public void setMapOfMaps(Map<String, Map<Integer, Long>> mapOfMaps) { |
||||
this.mapOfMaps = mapOfMaps; |
||||
} |
||||
|
||||
public Map<Integer, List<Integer>> getMapOfLists() { |
||||
return mapOfLists; |
||||
} |
||||
|
||||
public void setMapOfLists(Map<Integer, List<Integer>> mapOfLists) { |
||||
this.mapOfLists = mapOfLists; |
||||
} |
||||
|
||||
public T getGenericProperty() { |
||||
return genericProperty; |
||||
} |
||||
|
||||
public void setGenericProperty(T genericProperty) { |
||||
this.genericProperty = genericProperty; |
||||
} |
||||
|
||||
public List<T> getGenericListProperty() { |
||||
return genericListProperty; |
||||
} |
||||
|
||||
public void setGenericListProperty(List<T> genericListProperty) { |
||||
this.genericListProperty = genericListProperty; |
||||
} |
||||
|
||||
public CustomEnum getCustomEnum() { |
||||
return customEnum; |
||||
} |
||||
|
||||
public void setCustomEnum(CustomEnum customEnum) { |
||||
this.customEnum = customEnum; |
||||
} |
||||
|
||||
|
||||
public static GenericBean createInstance(Set<Integer> integerSet) { |
||||
return new GenericBean(integerSet); |
||||
} |
||||
|
||||
public static GenericBean createInstance(Set<Integer> integerSet, List<Resource> resourceList) { |
||||
return new GenericBean(integerSet, resourceList); |
||||
} |
||||
|
||||
public static GenericBean createInstance(HashSet<Integer> integerSet, Map<Short, Integer> shortMap) { |
||||
return new GenericBean(integerSet, shortMap); |
||||
} |
||||
|
||||
public static GenericBean createInstance(Map<Short, Integer> shortMap, Resource resource) { |
||||
return new GenericBean(shortMap, resource); |
||||
} |
||||
|
||||
public static GenericBean createInstance(Map map, Map<Short, Integer> shortMap) { |
||||
return new GenericBean(map, shortMap); |
||||
} |
||||
|
||||
public static GenericBean createInstance(HashMap<Long, ?> longMap) { |
||||
return new GenericBean(longMap); |
||||
} |
||||
|
||||
public static GenericBean createInstance(boolean someFlag, Map<Number, Collection<? extends Object>> collectionMap) { |
||||
return new GenericBean(someFlag, collectionMap); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
/* |
||||
* Copyright 2002-2007 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.context.annotation; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
|
||||
@Target(ElementType.TYPE) |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Documented |
||||
public @interface Scope { |
||||
|
||||
/** |
||||
* Specifies the scope to use for instances of the annotated class. |
||||
* @return the desired scope |
||||
*/ |
||||
public abstract String value() default "singleton"; |
||||
|
||||
} |
@ -0,0 +1,51 @@
@@ -0,0 +1,51 @@
|
||||
/* |
||||
* Copyright 2002-2006 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.core; |
||||
|
||||
import java.lang.reflect.Method; |
||||
import java.lang.reflect.Type; |
||||
|
||||
import junit.framework.TestCase; |
||||
|
||||
/** |
||||
* @author Serge Bogatyrjov |
||||
*/ |
||||
public abstract class AbstractGenericsTests extends TestCase { |
||||
|
||||
protected Class<?> targetClass; |
||||
|
||||
protected String methods[]; |
||||
|
||||
protected Type expectedResults[]; |
||||
|
||||
protected void executeTest() throws NoSuchMethodException { |
||||
String methodName = getName().substring(4); |
||||
methodName = methodName.substring(0, 1).toLowerCase() + methodName.substring(1); |
||||
for (int i = 0; i < this.methods.length; i++) { |
||||
if (methodName.equals(this.methods[i])) { |
||||
Method method = this.targetClass.getMethod(methodName); |
||||
Type type = getType(method); |
||||
assertEquals(this.expectedResults[i], type); |
||||
return; |
||||
} |
||||
} |
||||
throw new IllegalStateException("Bad test data"); |
||||
} |
||||
|
||||
protected abstract Type getType(Method method); |
||||
|
||||
} |
@ -0,0 +1,45 @@
@@ -0,0 +1,45 @@
|
||||
/* |
||||
* Copyright 2002-2007 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.springframework.core.type; |
||||
|
||||
import java.lang.reflect.Method; |
||||
|
||||
import junit.framework.TestCase; |
||||
|
||||
import org.springframework.util.ClassUtils; |
||||
import org.springframework.util.ReflectionUtils; |
||||
|
||||
/** |
||||
* |
||||
* @author Ramnivas Laddad |
||||
* |
||||
*/ |
||||
public class ClassloadingAssertions { |
||||
public static boolean isClassLoaded(String className) { |
||||
ClassLoader cl = ClassUtils.getDefaultClassLoader(); |
||||
Method findLoadeClassMethod = ReflectionUtils.findMethod(cl.getClass(), "findLoadedClass", new Class[]{String.class}); |
||||
findLoadeClassMethod.setAccessible(true); |
||||
Class loadedClass = (Class)ReflectionUtils.invokeMethod(findLoadeClassMethod, cl, new Object[]{className}); |
||||
return loadedClass != null; |
||||
} |
||||
|
||||
public static void assertClassLoaded(String className) { |
||||
} |
||||
|
||||
public static void assertClassNotLoaded(String className) { |
||||
TestCase.assertFalse("Class shouldn't have been loaded", isClassLoaded(className)); |
||||
} |
||||
} |
@ -0,0 +1,54 @@
@@ -0,0 +1,54 @@
|
||||
/* |
||||
* Copyright 2002-2007 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.stereotype; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
/** |
||||
* Indicates that an annotated class is a "component". |
||||
* Such classes are considered as candidates for auto-detection |
||||
* when using annotation-based configuration and classpath scanning. |
||||
* |
||||
* <p>Other class-level annotations may be considered as identifying |
||||
* a component as well, typically a special kind of component: |
||||
* e.g. the {@link Repository @Repository} annotation or AspectJ's |
||||
* {@link org.aspectj.lang.annotation.Aspect @Aspect} annotation. |
||||
* |
||||
* @author Mark Fisher |
||||
* @since 2.5 |
||||
* @see Repository |
||||
* @see Service |
||||
* @see Controller |
||||
* @see org.springframework.context.annotation.ClassPathBeanDefinitionScanner |
||||
*/ |
||||
@Target(ElementType.TYPE) |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Documented |
||||
public @interface Component { |
||||
|
||||
/** |
||||
* The value may indicate a suggestion for a logical component name, |
||||
* to be turned into a Spring bean in case of an autodetected component. |
||||
* @return the suggested component name, if any |
||||
*/ |
||||
public abstract String value() default ""; |
||||
|
||||
} |
Loading…
Reference in new issue