Author: cziegeler Date: Wed Aug 9 15:52:16 2017 New Revision: 1804564 URL: http://svn.apache.org/viewvc?rev=1804564&view=rev Log: SLING-7040 : Update commons lang 2.x to 3.5
Modified: sling/trunk/bundles/extensions/models/impl/pom.xml sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ReflectionUtil.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/BeanPropertyViaProvider.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ChildResourceViaProvider.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProvider.java sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelClassesTest.java sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelConstructorTest.java sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelInterfacesTest.java sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ViaTest.java Modified: sling/trunk/bundles/extensions/models/impl/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/pom.xml?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/pom.xml (original) +++ sling/trunk/bundles/extensions/models/impl/pom.xml Wed Aug 9 15:52:16 2017 @@ -147,6 +147,12 @@ <scope>provided</scope> </dependency> <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>3.4</version> + <scope>provided</scope> + </dependency> + <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.core</artifactId> <scope>provided</scope> @@ -169,11 +175,6 @@ <scope>provided</scope> </dependency> <dependency> - <groupId>org.apache.felix</groupId> - <artifactId>org.apache.felix.scr.annotations</artifactId> - <scope>provided</scope> - </dependency> - <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java Wed Aug 9 15:52:16 2017 @@ -29,7 +29,7 @@ import java.util.concurrent.ConcurrentNa import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.CopyOnWriteArrayList; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; @@ -51,15 +51,15 @@ final class AdapterImplementations { private static final Logger log = LoggerFactory.getLogger(AdapterImplementations.class); private final ConcurrentMap<String,ConcurrentNavigableMap<String,ModelClass<?>>> adapterImplementations - = new ConcurrentHashMap<String,ConcurrentNavigableMap<String,ModelClass<?>>>(); + = new ConcurrentHashMap<>(); private final ConcurrentMap<String,ModelClass<?>> modelClasses - = new ConcurrentHashMap<String,ModelClass<?>>(); - - private final ConcurrentMap<String, Class<?>> resourceTypeMappingsForResources = new ConcurrentHashMap<String, Class<?>>(); - private final ConcurrentMap<String, Class<?>> resourceTypeMappingsForRequests = new ConcurrentHashMap<String, Class<?>>(); - private final ConcurrentMap<Bundle, List<String>> resourceTypeRemovalListsForResources = new ConcurrentHashMap<Bundle, List<String>>(); - private final ConcurrentMap<Bundle, List<String>> resourceTypeRemovalListsForRequests = new ConcurrentHashMap<Bundle, List<String>>(); + = new ConcurrentHashMap<>(); + + private final ConcurrentMap<String, Class<?>> resourceTypeMappingsForResources = new ConcurrentHashMap<>(); + private final ConcurrentMap<String, Class<?>> resourceTypeMappingsForRequests = new ConcurrentHashMap<>(); + private final ConcurrentMap<Bundle, List<String>> resourceTypeRemovalListsForResources = new ConcurrentHashMap<>(); + private final ConcurrentMap<Bundle, List<String>> resourceTypeRemovalListsForRequests = new ConcurrentHashMap<>(); private volatile ImplementationPicker[] sortedImplementationPickers = new ImplementationPicker[0]; private volatile StaticInjectAnnotationProcessorFactory[] sortedStaticInjectAnnotationProcessorFactories = new StaticInjectAnnotationProcessorFactory[0]; @@ -71,7 +71,7 @@ final class AdapterImplementations { public ImplementationPicker[] getImplementationPickers() { return this.sortedImplementationPickers; } - + public StaticInjectAnnotationProcessorFactory[] getStaticInjectAnnotationProcessorFactories() { return sortedStaticInjectAnnotationProcessorFactories; } @@ -81,13 +81,13 @@ final class AdapterImplementations { this.sortedStaticInjectAnnotationProcessorFactories = factories.toArray(new StaticInjectAnnotationProcessorFactory[factories.size()]); updateProcessorFactoriesInModelClasses(); } - + /** * Updates all {@link ModelClass} instances with updates list of static inject annotation processor factories. */ private void updateProcessorFactoriesInModelClasses() { Iterator<ModelClass<?>> items = modelClasses.values().iterator(); - updateProcessorFactoriesInModelClasses(items); + updateProcessorFactoriesInModelClasses(items); Iterator<ConcurrentNavigableMap<String,ModelClass<?>>> mapItems = adapterImplementations.values().iterator(); while (mapItems.hasNext()) { ConcurrentNavigableMap<String,ModelClass<?>> mapItem = mapItems.next(); @@ -100,7 +100,7 @@ final class AdapterImplementations { item.updateProcessorFactories(sortedStaticInjectAnnotationProcessorFactories); } } - + /** Add implementation mapping for the given model class (implementation is the model class itself). * Only used for testing purposes. Use {@link #addAll(Class, Class...)} in case you want to register a different implementation. * @param modelClasses the model classes to register @@ -110,7 +110,7 @@ final class AdapterImplementations { addAll(modelClass, modelClass); } } - + /** * Add implementation mapping for the given adapter types. * @param implType Implementation type @@ -140,7 +140,7 @@ final class AdapterImplementations { ConcurrentNavigableMap<String, ModelClass<?>> implementations = adapterImplementations.get(key); if (implementations == null) { // to have a consistent ordering independent of bundle loading use a ConcurrentSkipListMap that sorts by class name - implementations = new ConcurrentSkipListMap<String, ModelClass<?>>(); + implementations = new ConcurrentSkipListMap<>(); adapterImplementations.put(key, implementations); } implementations.put(implType.getName(), modelClass); @@ -149,7 +149,7 @@ final class AdapterImplementations { } return true; } - + /** * Remove implementation mapping for the given adapter type. * @param adapterTypeName Adapter type name @@ -191,7 +191,7 @@ final class AdapterImplementations { @SuppressWarnings("unchecked") public <ModelType> ModelClass<ModelType> lookup(Class<ModelType> adapterType, Object adaptable) { String key = adapterType.getName(); - + // lookup in cache for models without adapter classes ModelClass<ModelType> modelClass = (ModelClass<ModelType>)modelClasses.get(key); if (modelClass!=null) { @@ -205,7 +205,7 @@ final class AdapterImplementations { } Collection<ModelClass<?>> implementationsCollection = implementations.values(); ModelClass<?>[] implementationWrappersArray = implementationsCollection.toArray(new ModelClass<?>[implementationsCollection.size()]); - + // prepare array for implementation picker Class<?>[] implementationsArray = new Class<?>[implementationsCollection.size()]; for (int i=0; i<implementationWrappersArray.length; i++) { @@ -233,7 +233,7 @@ final class AdapterImplementations { @SuppressWarnings("unchecked") public <ModelType> boolean isModelClass(Class<ModelType> adapterType) { String key = adapterType.getName(); - + // lookup in cache for models without adapter classes ModelClass<ModelType> modelClass = (ModelClass<ModelType>)modelClasses.get(key); if (modelClass!=null) { Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java Wed Aug 9 15:52:16 2017 @@ -42,7 +42,7 @@ import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import javax.annotation.PostConstruct; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Deactivate; @@ -124,7 +124,7 @@ public class ModelAdapterFactory impleme private static class DisposalCallbackRegistryImpl implements DisposalCallbackRegistry { - private List<DisposalCallback> callbacks = new ArrayList<DisposalCallback>(); + private List<DisposalCallback> callbacks = new ArrayList<>(); @Override public void addDisposalCallback(@Nonnull DisposalCallback callback) { @@ -174,33 +174,33 @@ public class ModelAdapterFactory impleme @Property(label = "Cleanup Job Period", description = "Period at which OSGi service references from ThreadLocals will be cleaned up.", longValue = DEFAULT_CLEANUP_JOB_PERIOD) private static final String PROP_CLEANUP_JOB_PERIOD = "cleanup.job.period"; - private final @Nonnull ConcurrentMap<String, RankedServices<Injector>> injectors = new ConcurrentHashMap<String, RankedServices<Injector>>(); - private final @Nonnull RankedServices<Injector> sortedInjectors = new RankedServices<Injector>(); - private final @Nonnull ConcurrentMap<Class<? extends ViaProviderType>, ViaProvider> viaProviders = new ConcurrentHashMap<Class<? extends ViaProviderType>, ViaProvider>(); + private final @Nonnull ConcurrentMap<String, RankedServices<Injector>> injectors = new ConcurrentHashMap<>(); + private final @Nonnull RankedServices<Injector> sortedInjectors = new RankedServices<>(); + private final @Nonnull ConcurrentMap<Class<? extends ViaProviderType>, ViaProvider> viaProviders = new ConcurrentHashMap<>(); @Reference(name = "injectAnnotationProcessorFactory", referenceInterface = InjectAnnotationProcessorFactory.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC) - private final @Nonnull RankedServices<InjectAnnotationProcessorFactory> injectAnnotationProcessorFactories = new RankedServices<InjectAnnotationProcessorFactory>(); + private final @Nonnull RankedServices<InjectAnnotationProcessorFactory> injectAnnotationProcessorFactories = new RankedServices<>(); @Reference(name = "injectAnnotationProcessorFactory2", referenceInterface = InjectAnnotationProcessorFactory2.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC) - private final @Nonnull RankedServices<InjectAnnotationProcessorFactory2> injectAnnotationProcessorFactories2 = new RankedServices<InjectAnnotationProcessorFactory2>(); + private final @Nonnull RankedServices<InjectAnnotationProcessorFactory2> injectAnnotationProcessorFactories2 = new RankedServices<>(); @Reference(name = "staticInjectAnnotationProcessorFactory", referenceInterface = StaticInjectAnnotationProcessorFactory.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC) - private final @Nonnull RankedServices<StaticInjectAnnotationProcessorFactory> staticInjectAnnotationProcessorFactories = new RankedServices<StaticInjectAnnotationProcessorFactory>(); + private final @Nonnull RankedServices<StaticInjectAnnotationProcessorFactory> staticInjectAnnotationProcessorFactories = new RankedServices<>(); @Reference(name = "implementationPicker", referenceInterface = ImplementationPicker.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC) - private final @Nonnull RankedServices<ImplementationPicker> implementationPickers = new RankedServices<ImplementationPicker>(); - + private final @Nonnull RankedServices<ImplementationPicker> implementationPickers = new RankedServices<>(); + // bind the service with the highest priority (if a new one comes in this service gets restarted) @Reference(cardinality=ReferenceCardinality.OPTIONAL_UNARY, policyOption=ReferencePolicyOption.GREEDY) private ModelValidation modelValidation = null; @Reference(name = "modelExporter", cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC, referenceInterface = ModelExporter.class) - private final @Nonnull RankedServices<ModelExporter> modelExporters = new RankedServices<ModelExporter>(); + private final @Nonnull RankedServices<ModelExporter> modelExporters = new RankedServices<>(); @Reference private BindingsValuesProvidersByContext bindingsValuesProvidersByContext; @@ -228,6 +228,7 @@ public class ModelAdapterFactory impleme private final int INNER_CACHE_INITIAL_CAPACITY = 4; + @Override public <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type) { Result<AdapterType> result = internalCreateModel(adaptable, type); if (!result.wasSuccessful()) { @@ -287,7 +288,7 @@ public class ModelAdapterFactory impleme } /** - * + * * @param requestedType the adapter type * @param adaptable the adaptable * @return the implementation type to use for the desired model type or null if there is none registered @@ -315,7 +316,7 @@ public class ModelAdapterFactory impleme if (threadInvocationCounter.isMaximumReached()) { String msg = String.format("Adapting %s to %s failed, too much recursive invocations (>=%s).", adaptable, requestedType, threadInvocationCounter.maxRecursionDepth); - return new Result<ModelType>(new ModelClassException(msg)); + return new Result<>(new ModelClassException(msg)); } threadInvocationCounter.increase(); try { @@ -324,7 +325,7 @@ public class ModelAdapterFactory impleme if (!modelClass.hasModelAnnotation()) { String msg = String.format("Provided Adapter class does not have a Model annotation: %s", modelClass.getType()); - return new Result<ModelType>(new ModelClassException(msg)); + return new Result<>(new ModelClassException(msg)); } boolean isAdaptable = false; @@ -335,7 +336,7 @@ public class ModelAdapterFactory impleme if (adaptableCache != null) { ModelType cachedObject = (ModelType) adaptableCache.get(requestedType); if (cachedObject != null) { - return new Result<ModelType>(cachedObject); + return new Result<>(cachedObject); } } } @@ -348,11 +349,11 @@ public class ModelAdapterFactory impleme } if (!isAdaptable) { String msg = String.format("Adaptables (%s) are not acceptable for the model class: %s", StringUtils.join(declaredAdaptable), modelClass.getType()); - return new Result<ModelType>(new InvalidAdaptableException(msg)); + return new Result<>(new InvalidAdaptableException(msg)); } else { RuntimeException t = validateModel(adaptable, modelClass.getType(), modelAnnotation); if (t != null) { - return new Result<ModelType>(t); + return new Result<>(t); } if (modelClass.getType().isInterface()) { Result<InvocationHandler> handlerResult = createInvocationHandler(adaptable, modelClass); @@ -362,15 +363,15 @@ public class ModelAdapterFactory impleme if (modelAnnotation.cache()) { Map<Class, Object> adaptableCache = adapterCache.get(adaptable); if (adaptableCache == null) { - adaptableCache = new ConcurrentHashMap<Class, Object>(INNER_CACHE_INITIAL_CAPACITY); + adaptableCache = new ConcurrentHashMap<>(INNER_CACHE_INITIAL_CAPACITY); adapterCache.put(adaptable, adaptableCache); } adaptableCache.put(requestedType, model); } - result = new Result<ModelType>(model); + result = new Result<>(model); } else { - return new Result<ModelType>(handlerResult.getThrowable()); + return new Result<>(handlerResult.getThrowable()); } } else { try { @@ -379,14 +380,14 @@ public class ModelAdapterFactory impleme if (result.wasSuccessful() && modelAnnotation.cache()) { Map<Class, Object> adaptableCache = adapterCache.get(adaptable); if (adaptableCache == null) { - adaptableCache = new ConcurrentHashMap<Class, Object>(INNER_CACHE_INITIAL_CAPACITY); + adaptableCache = new ConcurrentHashMap<>(INNER_CACHE_INITIAL_CAPACITY); adapterCache.put(adaptable, adaptableCache); } adaptableCache.put(requestedType, result.getValue()); } } catch (Exception e) { String msg = String.format("Unable to create model %s", modelClass.getType()); - return new Result<ModelType>(new ModelClassException(msg, e)); + return new Result<>(new ModelClassException(msg, e)); } } } @@ -395,7 +396,7 @@ public class ModelAdapterFactory impleme threadInvocationCounter.decrease(); } } - + private <ModelType> RuntimeException validateModel(Object adaptable, Class<ModelType> modelType, Model modelAnnotation) { if (modelAnnotation.validation() != ValidationStrategy.DISABLED) { if (modelValidation == null) { @@ -489,7 +490,7 @@ public class ModelAdapterFactory impleme RuntimeException lastInjectionException = null; if (injectionAdaptable != null) { - + // prepare the set of injectors to process. if a source is given only use injectors with this name. final RankedServices<Injector> injectorsToProcess; if (StringUtils.isEmpty(source)) { @@ -501,7 +502,7 @@ public class ModelAdapterFactory impleme throw new IllegalArgumentException("No Sling Models Injector registered for source '" + source + "'."); } } - + // find the right injector for (Injector injector : injectorsToProcess) { if (name != null || injector instanceof AcceptsNullName) { @@ -570,14 +571,14 @@ public class ModelAdapterFactory impleme private <ModelType> Result<InvocationHandler> createInvocationHandler(final Object adaptable, final ModelClass<ModelType> modelClass) { InjectableMethod[] injectableMethods = modelClass.getInjectableMethods(); - final Map<Method, Object> methods = new HashMap<Method, Object>(); + final Map<Method, Object> methods = new HashMap<>(); SetMethodsCallback callback = new SetMethodsCallback(methods); MapBackedInvocationHandler handler = new MapBackedInvocationHandler(methods); DisposalCallbackRegistryImpl registry = new DisposalCallbackRegistryImpl(); registerCallbackRegistry(handler, registry); - final Map<ValuePreparer, Object> preparedValues = new HashMap<ValuePreparer, Object>(VALUE_PREPARERS_COUNT); + final Map<ValuePreparer, Object> preparedValues = new HashMap<>(VALUE_PREPARERS_COUNT); MissingElementsException missingElements = new MissingElementsException("Could not create all mandatory methods for interface of model " + modelClass); for (InjectableMethod method : injectableMethods) { @@ -588,13 +589,13 @@ public class ModelAdapterFactory impleme } registry.seal(); if (!missingElements.isEmpty()) { - return new Result<InvocationHandler>(missingElements); + return new Result<>(missingElements); } return new Result<InvocationHandler>(handler); } private void registerCallbackRegistry(Object object, DisposalCallbackRegistryImpl registry) { - PhantomReference<Object> reference = new PhantomReference<Object>(object, queue); + PhantomReference<Object> reference = new PhantomReference<>(object, queue); disposalCallbacks.put(reference, registry); } @@ -604,10 +605,10 @@ public class ModelAdapterFactory impleme ModelClassConstructor<ModelType> constructorToUse = getBestMatchingConstructor(adaptable, modelClass); if (constructorToUse == null) { - return new Result<ModelType>(new ModelClassException("Unable to find a useable constructor for model " + modelClass.getType())); + return new Result<>(new ModelClassException("Unable to find a useable constructor for model " + modelClass.getType())); } - final Map<ValuePreparer, Object> preparedValues = new HashMap<ValuePreparer, Object>(VALUE_PREPARERS_COUNT); + final Map<ValuePreparer, Object> preparedValues = new HashMap<>(VALUE_PREPARERS_COUNT); final ModelType object; if (constructorToUse.getConstructor().getParameterTypes().length == 0) { @@ -652,16 +653,16 @@ public class ModelAdapterFactory impleme registry.seal(); if (!missingElements.isEmpty()) { - return new Result<ModelType>(missingElements); + return new Result<>(missingElements); } try { invokePostConstruct(object); } catch (InvocationTargetException e) { - return new Result<ModelType>(new PostConstructException("Post-construct method has thrown an exception for model " + modelClass.getType(), e.getCause())); + return new Result<>(new PostConstructException("Post-construct method has thrown an exception for model " + modelClass.getType(), e.getCause())); } catch (IllegalAccessException e) { new Result<ModelType>(new ModelClassException("Could not call post-construct method for model " + modelClass.getType(), e)); } - return new Result<ModelType>(object); + return new Result<>(object); } /** @@ -701,7 +702,7 @@ public class ModelAdapterFactory impleme throws InstantiationException, InvocationTargetException, IllegalAccessException { ConstructorParameter[] parameters = constructor.getConstructorParameters(); - List<Object> paramValues = new ArrayList<Object>(Arrays.asList(new Object[parameters.length])); + List<Object> paramValues = new ArrayList<>(Arrays.asList(new Object[parameters.length])); InjectCallback callback = new SetConstructorParameterCallback(paramValues); MissingElementsException missingElements = new MissingElementsException("Required constructor parameters were not able to be injected on model " + modelClass.getType()); @@ -712,9 +713,9 @@ public class ModelAdapterFactory impleme } } if (!missingElements.isEmpty()) { - return new Result<ModelType>(missingElements); + return new Result<>(missingElements); } - return new Result<ModelType>(constructor.getConstructor().newInstance(paramValues.toArray(new Object[paramValues.size()]))); + return new Result<>(constructor.getConstructor().newInstance(paramValues.toArray(new Object[paramValues.size()]))); } private Result<Boolean> injectDefaultValue(InjectableElement point, InjectAnnotationProcessor processor, @@ -723,9 +724,9 @@ public class ModelAdapterFactory impleme if (processor.hasDefault()) { RuntimeException t = callback.inject(point, processor.getDefault()); if (t == null) { - return new Result<Boolean>(Boolean.TRUE); + return new Result<>(Boolean.TRUE); } else { - return new Result<Boolean>(t); + return new Result<>(t); } } } @@ -734,20 +735,20 @@ public class ModelAdapterFactory impleme if (value != null) { RuntimeException t = callback.inject(point, value); if (t == null) { - return new Result<Boolean>(Boolean.TRUE); + return new Result<>(Boolean.TRUE); } else { - return new Result<Boolean>(t); + return new Result<>(t); } } else { - return new Result<Boolean>(Boolean.FALSE); + return new Result<>(Boolean.FALSE); } } /** * Injects the default initial value for the given primitive class which * cannot be null (e.g. int = 0, boolean = false). - * + * * @param point Annotated element * @param callback Inject callback */ @@ -777,7 +778,7 @@ public class ModelAdapterFactory impleme return new ModelClassException(String.format("Unknown primitive type %s", primitiveType.toString())); } } - + private Object getAdaptable(Object adaptable, InjectableElement point, InjectAnnotationProcessor processor) { String viaValue = null; Class<? extends ViaProviderType> viaProviderType = null; @@ -831,7 +832,7 @@ public class ModelAdapterFactory impleme private void invokePostConstruct(Object object) throws InvocationTargetException, IllegalAccessException { Class<?> clazz = object.getClass(); - List<Method> postConstructMethods = new ArrayList<Method>(); + List<Method> postConstructMethods = new ArrayList<>(); while (clazz != null) { Method[] methods = clazz.getDeclaredMethods(); for (Method method : methods) { @@ -899,8 +900,8 @@ public class ModelAdapterFactory impleme if (value instanceof Collection && (type.equals(Collection.class) || type.equals(List.class)) && parameterizedType.getActualTypeArguments().length == 1) { - - List<Object> result = new ArrayList<Object>(); + + List<Object> result = new ArrayList<>(); for (Object valueObject : (Collection<?>) value) { Result<Object> singleValueResult = adapt(valueObject, (Class<?>) parameterizedType.getActualTypeArguments()[0], true); if (singleValueResult.wasSuccessful()) { @@ -911,15 +912,15 @@ public class ModelAdapterFactory impleme } adaptedValue = result; } else { - return new Result<Object>(new ModelClassException(String.format("%s is neither a parameterized Collection or List", + return new Result<>(new ModelClassException(String.format("%s is neither a parameterized Collection or List", type))); } } else { return adapt(value, type, false); } - return new Result<Object>(adaptedValue); + return new Result<>(adaptedValue); } else { - return new Result<Object>(value); + return new Result<>(value); } } @@ -938,20 +939,20 @@ public class ModelAdapterFactory impleme if (result.wasSuccessful()) { adaptedValue = result.getValue(); } else { - return new Result<Object>(new ModelClassException( + return new Result<>(new ModelClassException( String.format("Could not create model from %s: %s%s", value.getClass(), result.getThrowable().getMessage(), messageSuffix), result.getThrowable())); } } else if (value instanceof Adaptable) { adaptedValue = ((Adaptable) value).adaptTo(type); if (adaptedValue == null) { - return new Result<Object>(new ModelClassException(String.format("Could not adapt from %s to %s%s", value.getClass(), type, messageSuffix))); + return new Result<>(new ModelClassException(String.format("Could not adapt from %s to %s%s", value.getClass(), type, messageSuffix))); } } if (adaptedValue != null) { - return new Result<Object>(adaptedValue); + return new Result<>(adaptedValue); } else { - return new Result<Object>(new ModelClassException( + return new Result<>(new ModelClassException( String.format("Could not adapt from %s to %s%s, because this class is not adaptable!", value.getClass(), type, messageSuffix))); } } @@ -1017,9 +1018,9 @@ public class ModelAdapterFactory impleme this.adapterCache = Collections.synchronizedMap(new WeakHashMap<Object, Map<Class, Object>>()); BundleContext bundleContext = ctx.getBundleContext(); - this.queue = new ReferenceQueue<Object>(); - this.disposalCallbacks = new ConcurrentHashMap<java.lang.ref.Reference<Object>, DisposalCallbackRegistryImpl>(); - Hashtable<Object, Object> properties = new Hashtable<Object, Object>(); + this.queue = new ReferenceQueue<>(); + this.disposalCallbacks = new ConcurrentHashMap<>(); + Hashtable<Object, Object> properties = new Hashtable<>(); properties.put(Constants.SERVICE_VENDOR, "Apache Software Foundation"); properties.put(Constants.SERVICE_DESCRIPTION, "Sling Models OSGi Service Disposal Job"); properties.put("scheduler.name", "Sling Models OSGi Service Disposal Job"); @@ -1031,7 +1032,7 @@ public class ModelAdapterFactory impleme this.scriptEngineFactory = new SlingModelsScriptEngineFactory(bundleContext.getBundle()); this.listener = new ModelPackageBundleListener(ctx.getBundleContext(), this, this.adapterImplementations, bindingsValuesProvidersByContext, scriptEngineFactory); - Hashtable<Object, Object> printerProps = new Hashtable<Object, Object>(); + Hashtable<Object, Object> printerProps = new Hashtable<>(); printerProps.put(Constants.SERVICE_VENDOR, "Apache Software Foundation"); printerProps.put(Constants.SERVICE_DESCRIPTION, "Sling Models Configuration Printer"); printerProps.put("felix.webconsole.label", "slingmodels"); @@ -1059,7 +1060,7 @@ public class ModelAdapterFactory impleme } protected void bindInjector(final Injector injector, final Map<String, Object> props) { - RankedServices<Injector> newRankedServices = new RankedServices<Injector>(); + RankedServices<Injector> newRankedServices = new RankedServices<>(); RankedServices<Injector> injectorsPerInjectorName = injectors.putIfAbsent(injector.getName(), newRankedServices); if (injectorsPerInjectorName == null) { injectorsPerInjectorName = newRankedServices; Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java Wed Aug 9 15:52:16 2017 @@ -26,8 +26,10 @@ import java.util.Hashtable; import java.util.List; import java.util.Map; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; +import javax.servlet.Servlet; + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.adapter.AdapterFactory; import org.apache.sling.api.resource.Resource; @@ -47,9 +49,6 @@ import org.osgi.util.tracker.BundleTrack import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.script.ScriptEngineFactory; -import javax.servlet.Servlet; - public class ModelPackageBundleListener implements BundleTrackerCustomizer { static final String PACKAGE_HEADER = "Sling-Model-Packages"; @@ -57,7 +56,7 @@ public class ModelPackageBundleListener static final String PROP_EXPORTER_SERVLET_CLASS = "sling.models.exporter.servlet.class"; static final String PROP_EXPORTER_SERVLET_NAME = "sling.models.exporter.servlet.name"; - + /** * Service registration property for the adapter condition. */ @@ -80,13 +79,13 @@ public class ModelPackageBundleListener private final BundleTracker bundleTracker; private final ModelAdapterFactory factory; - + private final AdapterImplementations adapterImplementations; private final BindingsValuesProvidersByContext bindingsValuesProvidersByContext; private final SlingModelsScriptEngineFactory scriptEngineFactory; - + public ModelPackageBundleListener(BundleContext bundleContext, ModelAdapterFactory factory, AdapterImplementations adapterImplementations, @@ -100,10 +99,10 @@ public class ModelPackageBundleListener this.bundleTracker = new BundleTracker(bundleContext, Bundle.ACTIVE, this); this.bundleTracker.open(); } - + @Override public Object addingBundle(Bundle bundle, BundleEvent event) { - List<ServiceRegistration> regs = new ArrayList<ServiceRegistration>(); + List<ServiceRegistration> regs = new ArrayList<>(); Dictionary<?, ?> headers = bundle.getHeaders(); String packageList = PropertiesUtil.toString(headers.get(PACKAGE_HEADER), null); @@ -151,7 +150,7 @@ public class ModelPackageBundleListener if (adapterTypes.length == 0) { adapterTypes = new Class<?>[] { implType }; } else if (!ArrayUtils.contains(adapterTypes, implType)) { - adapterTypes = (Class<?>[]) ArrayUtils.add(adapterTypes, implType); + adapterTypes = ArrayUtils.add(adapterTypes, implType); } // register adapter only if given adapters are valid if (validateAdapterClasses(implType, adapterTypes)) { @@ -234,7 +233,7 @@ public class ModelPackageBundleListener } return arr; } - + /** * Validate list of adapter classes. Make sure all given are either the annotated class itself, * or an interface or superclass of it. @@ -253,7 +252,7 @@ public class ModelPackageBundleListener } return true; } - + /** * Registers an adapter factory for a annotated sling models class. * @param adapterTypes Adapter (either the class itself, or interface or superclass of it) @@ -263,7 +262,7 @@ public class ModelPackageBundleListener * @return Service registration */ private ServiceRegistration registerAdapterFactory(Class<?>[] adapterTypes, Class<?>[] adaptableTypes, Class<?> implType, String condition) { - Dictionary<String, Object> registrationProps = new Hashtable<String, Object>(); + Dictionary<String, Object> registrationProps = new Hashtable<>(); registrationProps.put(AdapterFactory.ADAPTER_CLASSES, toStringArray(adapterTypes)); registrationProps.put(AdapterFactory.ADAPTABLE_CLASSES, toStringArray(adaptableTypes)); registrationProps.put(PROP_IMPLEMENTATION_CLASS, implType.getName()); @@ -282,7 +281,7 @@ public class ModelPackageBundleListener Map<String, String> baseOptions = getOptions(exporterAnnotation); ExportServlet servlet = new ExportServlet(bundle.getBundleContext(), factory, bindingsValuesProvidersByContext, scriptEngineFactory, annotatedClass, exporterAnnotation.selector(), exporterAnnotation.name(), accessor, baseOptions); - Dictionary<String, Object> registrationProps = new Hashtable<String, Object>(); + Dictionary<String, Object> registrationProps = new Hashtable<>(); registrationProps.put("sling.servlet.resourceTypes", resourceType); registrationProps.put("sling.servlet.selectors", exporterAnnotation.selector()); registrationProps.put("sling.servlet.extensions", exporterAnnotation.extensions()); @@ -301,7 +300,7 @@ public class ModelPackageBundleListener if (options.length == 0) { return Collections.emptyMap(); } else { - Map<String, String> map = new HashMap<String, String>(options.length); + Map<String, String> map = new HashMap<>(options.length); for (ExporterOption option : options) { map.put(option.name(), option.value()); } Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ReflectionUtil.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ReflectionUtil.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ReflectionUtil.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ReflectionUtil.java Wed Aug 9 15:52:16 2017 @@ -28,7 +28,7 @@ import java.util.List; import javax.inject.Inject; -import org.apache.commons.lang.ClassUtils; +import org.apache.commons.lang3.ClassUtils; import org.apache.sling.models.spi.injectorspecific.InjectAnnotation; /** @@ -41,7 +41,7 @@ public final class ReflectionUtil { } public static List<Field> collectInjectableFields(Class<?> type) { - List<Field> result = new ArrayList<Field>(); + List<Field> result = new ArrayList<>(); while (type != null) { Field[] fields = type.getDeclaredFields(); addAnnotated(fields, result); @@ -51,7 +51,7 @@ public final class ReflectionUtil { } public static List<Method> collectInjectableMethods(Class<?> type) { - List<Method> result = new ArrayList<Method>(); + List<Method> result = new ArrayList<>(); while (type != null) { Method[] methods = type.getDeclaredMethods(); addAnnotated(methods, result); @@ -87,7 +87,7 @@ public final class ReflectionUtil { /** * Get an annotation from either the element itself or on any of the * element's annotations (meta-annotations). - * + * * @param element the element * @param annotationClass the annotation class * @return the found annotation or null Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/BindingsInjector.java Wed Aug 9 15:52:16 2017 @@ -22,7 +22,7 @@ import java.lang.reflect.Type; import javax.annotation.Nonnull; import javax.servlet.ServletRequest; -import org.apache.commons.lang.ObjectUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; @@ -47,6 +47,7 @@ public class BindingsInjector implements return "script-bindings"; } + @Override public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type type, @Nonnull AnnotatedElement element, @Nonnull DisposalCallbackRegistry callbackRegistry) { if (adaptable == ObjectUtils.NULL) { @@ -98,7 +99,7 @@ public class BindingsInjector implements public InjectionStrategy getInjectionStrategy() { return annotation.injectionStrategy(); } - + @Override @SuppressWarnings("deprecation") public Boolean isOptional() { Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ChildResourceInjector.java Wed Aug 9 15:52:16 2017 @@ -25,7 +25,7 @@ import java.util.List; import javax.annotation.Nonnull; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; @@ -73,7 +73,7 @@ public class ChildResourceInjector exten } private Object getResultList(Resource resource, Type declaredType) { - List<Resource> result = new ArrayList<Resource>(); + List<Resource> result = new ArrayList<>(); Class<?> type = getActualType((ParameterizedType) declaredType); if (type != null && resource != null) { Iterator<Resource> children = resource.listChildren(); Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/OSGiServiceInjector.java Wed Aug 9 15:52:16 2017 @@ -28,7 +28,7 @@ import java.util.List; import javax.annotation.Nonnull; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; @@ -70,6 +70,7 @@ public class OSGiServiceInjector impleme this.bundleContext = ctx.getBundleContext(); } + @Override public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type type, @Nonnull AnnotatedElement element, @Nonnull DisposalCallbackRegistry callbackRegistry) { OSGiService annotation = element.getAnnotation(OSGiService.class); @@ -123,7 +124,7 @@ public class OSGiServiceInjector impleme // make highest service ranking being returned first Collections.reverse(references); callbackRegistry.addDisposalCallback(new Callback(refs, bundleContext)); - List<Object> services = new ArrayList<Object>(); + List<Object> services = new ArrayList<>(); for (ServiceReference ref : references) { Object service = bundleContext.getService(ref); if (service != null) { @@ -218,7 +219,7 @@ public class OSGiServiceInjector impleme public InjectionStrategy getInjectionStrategy() { return annotation.injectionStrategy(); } - + @Override @SuppressWarnings("deprecation") public Boolean isOptional() { Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ResourcePathInjector.java Wed Aug 9 15:52:16 2017 @@ -25,8 +25,8 @@ import java.util.List; import javax.annotation.Nonnull; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; @@ -108,7 +108,7 @@ public class ResourcePathInjector extend } private List<Resource> getResources(ResourceResolver resolver, String[] paths, String fieldName) { - List<Resource> resources = new ArrayList<Resource>(); + List<Resource> resources = new ArrayList<>(); for (String path : paths) { Resource resource = resolver.getResource(path); if (resource != null) { Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java Wed Aug 9 15:52:16 2017 @@ -26,9 +26,9 @@ import java.util.List; import javax.annotation.Nonnull; -import org.apache.commons.lang.ClassUtils; -import org.apache.commons.lang.ObjectUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ClassUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; @@ -59,6 +59,7 @@ public class ValueMapInjector extends Ab return "valuemap"; } + @Override public Object getValue(@Nonnull Object adaptable, String name, @Nonnull Type type, @Nonnull AnnotatedElement element, @Nonnull DisposalCallbackRegistry callbackRegistry) { if (adaptable == ObjectUtils.NULL) { @@ -187,7 +188,7 @@ public class ValueMapInjector extends Ab return null; } } - + @Override public Boolean isOptional() { return annotation.optional(); Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java Wed Aug 9 15:52:16 2017 @@ -23,8 +23,14 @@ import java.lang.reflect.Type; import javax.inject.Named; -import org.apache.commons.lang.ArrayUtils; -import org.apache.sling.models.annotations.*; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.sling.models.annotations.Default; +import org.apache.sling.models.annotations.DefaultInjectionStrategy; +import org.apache.sling.models.annotations.Optional; +import org.apache.sling.models.annotations.Required; +import org.apache.sling.models.annotations.Source; +import org.apache.sling.models.annotations.Via; +import org.apache.sling.models.annotations.ViaProviderType; import org.apache.sling.models.annotations.via.BeanProperty; import org.apache.sling.models.impl.ModelAdapterFactory; import org.apache.sling.models.impl.ReflectionUtil; Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/BeanPropertyViaProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/BeanPropertyViaProvider.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/BeanPropertyViaProvider.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/BeanPropertyViaProvider.java Wed Aug 9 15:52:16 2017 @@ -17,7 +17,7 @@ package org.apache.sling.models.impl.via; import org.apache.commons.beanutils.PropertyUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Service; import org.apache.sling.models.annotations.ViaProviderType; Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ChildResourceViaProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ChildResourceViaProvider.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ChildResourceViaProvider.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ChildResourceViaProvider.java Wed Aug 9 15:52:16 2017 @@ -16,7 +16,7 @@ */ package org.apache.sling.models.impl.via; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Service; import org.apache.sling.api.resource.Resource; Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProvider.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProvider.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/via/ForcedResourceTypeViaProvider.java Wed Aug 9 15:52:16 2017 @@ -16,15 +16,15 @@ */ package org.apache.sling.models.impl.via; -import org.apache.commons.lang.StringUtils; +import javax.annotation.Nonnull; + +import org.apache.commons.lang3.StringUtils; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Service; import org.apache.sling.api.resource.Resource; import org.apache.sling.models.annotations.ViaProviderType; import org.apache.sling.models.annotations.via.ForcedResourceType; -import javax.annotation.Nonnull; - @Component @Service public class ForcedResourceTypeViaProvider extends AbstractResourceTypeViaProvider { Modified: sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelClassesTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelClassesTest.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelClassesTest.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelClassesTest.java Wed Aug 9 15:52:16 2017 @@ -16,8 +16,15 @@ */ package org.apache.sling.models.impl; -import static org.junit.Assert.*; -import static org.mockito.Mockito.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import java.lang.reflect.Field; import java.util.Arrays; @@ -26,7 +33,7 @@ import java.util.HashMap; import java.util.Hashtable; import java.util.Map; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ValueMap; import org.apache.sling.api.wrappers.ValueMapDecorator; @@ -75,7 +82,7 @@ public class ResourceModelClassesTest { ValueMapInjector valueMapInjector = new ValueMapInjector(); factory.bindInjector(valueMapInjector, new ServicePropertiesMap(2, 2)); factory.bindInjector(new ChildResourceInjector(), new ServicePropertiesMap(1, 1)); - + factory.bindInjectAnnotationProcessorFactory(valueMapInjector, Collections.<String, Object> singletonMap(Constants.SERVICE_ID, 2L)); factory.adapterImplementations.addClassesAsAdapterAndImplementation(SimplePropertyModel.class, ArrayWrappersModel.class, ResourceModelWithRequiredField.class, ChildValueMapModel.class, ArrayPrimitivesModel.class, ChildResourceModel.class, ResourceModelWithRequiredFieldOptionalStrategy.class, ParentModel.class, ChildModel.class, ListModel.class); @@ -83,7 +90,7 @@ public class ResourceModelClassesTest { @Test public void testSimplePropertyModel() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("first", "first-value"); map.put("third", "third-value"); map.put("intProperty", new Integer(3)); @@ -111,7 +118,7 @@ public class ResourceModelClassesTest { @Test public void testArrayPrimitivesModel() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("intArray", new int[] { 1, 2, 9, 8 }); map.put("secondIntArray", new Integer[] {1, 2, 9, 8}); @@ -133,7 +140,7 @@ public class ResourceModelClassesTest { @Test public void testArrayWrappersModel() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("intArray", new Integer[] {1, 2, 9, 8}); map.put("secondIntArray", new int[] {1, 2, 9, 8}); @@ -155,7 +162,7 @@ public class ResourceModelClassesTest { @Test public void testListModel() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("intList", new Integer[] {1, 2, 9, 8}); map.put("stringList", new String[] {"hello", "world"}); @@ -175,7 +182,7 @@ public class ResourceModelClassesTest { @Test public void testRequiredPropertyModel() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("first", "first-value"); map.put("third", "third-value"); ValueMap vm = spy(new ValueMapDecorator(map)); @@ -191,7 +198,7 @@ public class ResourceModelClassesTest { @Test public void testRequiredPropertyModelWithException() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("first", "first-value"); map.put("third", "third-value"); ValueMap vm = spy(new ValueMapDecorator(map)); @@ -213,7 +220,7 @@ public class ResourceModelClassesTest { @Test public void testRequiredPropertyMissingModelOptionalStrategy() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("first", "first-value"); ValueMap vm = spy(new ValueMapDecorator(map)); @@ -229,7 +236,7 @@ public class ResourceModelClassesTest { @Test public void testRequiredPropertyModelOptionalStrategy() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("required1", "required value"); map.put("required2", "required value"); map.put("required3", "required value"); @@ -242,7 +249,7 @@ public class ResourceModelClassesTest { assertNotNull(model); assertEquals("required value", model.getRequired1()); assertEquals("required value", model.getRequired2()); - + verify(vm).get("optional1", String.class); verify(vm).get("required1", String.class); } Modified: sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelConstructorTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelConstructorTest.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelConstructorTest.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelConstructorTest.java Wed Aug 9 15:52:16 2017 @@ -25,7 +25,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.Hashtable; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ValueMap; import org.apache.sling.api.wrappers.ValueMapDecorator; Modified: sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelInterfacesTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelInterfacesTest.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelInterfacesTest.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ResourceModelInterfacesTest.java Wed Aug 9 15:52:16 2017 @@ -16,8 +16,15 @@ */ package org.apache.sling.models.impl; -import static org.junit.Assert.*; -import static org.mockito.Mockito.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.Collections; @@ -25,7 +32,7 @@ import java.util.HashMap; import java.util.Hashtable; import java.util.Map; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ValueMap; import org.apache.sling.api.wrappers.ValueMapDecorator; @@ -67,12 +74,12 @@ public class ResourceModelInterfacesTest factory.activate(componentCtx); factory.bindInjector(new ValueMapInjector(), new ServicePropertiesMap(2, 2)); factory.bindInjector(new ChildResourceInjector(), new ServicePropertiesMap(1, 1)); - factory.adapterImplementations.addClassesAsAdapterAndImplementation(SimplePropertyModel.class, ResourceModelWithRequiredField.class, ChildResourceModel.class, ChildValueMapModel.class, ParentModel.class, ChildModel.class); + factory.adapterImplementations.addClassesAsAdapterAndImplementation(SimplePropertyModel.class, ResourceModelWithRequiredField.class, ChildResourceModel.class, ChildValueMapModel.class, ParentModel.class, ChildModel.class); } @Test public void testSimplePropertyModel() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("first", "first-value"); map.put("third", "third-value"); map.put("fourth", true); @@ -93,7 +100,7 @@ public class ResourceModelInterfacesTest @Test public void testRequiredPropertyModel() { - Map<String, Object> map = new HashMap<String, Object>(); + Map<String, Object> map = new HashMap<>(); map.put("first", "first-value"); map.put("third", "third-value"); ValueMap vm = spy(new ValueMapDecorator(map)); Modified: sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ViaTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ViaTest.java?rev=1804564&r1=1804563&r2=1804564&view=diff ============================================================================== --- sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ViaTest.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/ViaTest.java Wed Aug 9 15:52:16 2017 @@ -16,13 +16,14 @@ */ package org.apache.sling.models.impl; -import static org.junit.Assert.*; -import static org.mockito.Mockito.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.when; import java.util.Collections; import java.util.Hashtable; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ValueMap;