Author: cschneider
Date: Fri Feb 6 10:48:30 2015
New Revision: 1657778
URL: http://svn.apache.org/r1657778
Log:
[ARIES-1294] Refactor NSHandler
Added:
aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/EMFServiceRefFactory.java
Modified:
aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java
aries/trunk/jpa/jpa-blueprint-aries/src/main/resources/OSGI-INF/blueprint/jpa.xml
aries/trunk/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java
Added:
aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/EMFServiceRefFactory.java
URL:
http://svn.apache.org/viewvc/aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/EMFServiceRefFactory.java?rev=1657778&view=auto
==============================================================================
---
aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/EMFServiceRefFactory.java
(added)
+++
aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/EMFServiceRefFactory.java
Fri Feb 6 10:48:30 2015
@@ -0,0 +1,123 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.aries.jpa.blueprint.aries.impl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+
+import org.apache.aries.blueprint.ParserContext;
+import org.apache.aries.blueprint.mutable.MutableBeanMetadata;
+import org.apache.aries.blueprint.mutable.MutableRefMetadata;
+import org.apache.aries.blueprint.mutable.MutableReferenceMetadata;
+import org.apache.aries.jpa.container.PersistenceUnitConstants;
+import org.apache.aries.jpa.container.context.PersistenceContextProvider;
+import org.osgi.service.blueprint.reflect.BeanMetadata;
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+import org.osgi.service.blueprint.reflect.ReferenceMetadata;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class EMFServiceRefFactory {
+ private static final Logger _logger =
LoggerFactory.getLogger("org.apache.aries.jpa.blueprint.aries");
+
+ /** The blueprint attribute value to make a bean eager */
+ private static final String ACTIVATION_EAGER = "EAGER";
+
+ @SuppressWarnings("unchecked")
+ ComponentMetadata create(boolean isPersistenceUnit,
+ ParserContext ctx, String unitName) {
+ // Create a service reference for the EMF (it is an EMF for persistence
+ // contexts and units)
+ final MutableReferenceMetadata refMetadata =
ctx.createMetadata(MutableReferenceMetadata.class);
+ refMetadata.setActivation(ACTIVATION_EAGER.equalsIgnoreCase(ctx
+ .getDefaultActivation()) ? ReferenceMetadata.ACTIVATION_EAGER
+ : ReferenceMetadata.ACTIVATION_LAZY);
+ refMetadata.setAvailability(ReferenceMetadata.AVAILABILITY_MANDATORY);
+ refMetadata.setInterface(EntityManagerFactory.class.getName());
+ String filter = createEMFServiceFilter(isPersistenceUnit, unitName);
+ refMetadata.setFilter(filter);
+ refMetadata.setTimeout(Integer.parseInt(ctx.getDefaultTimeout()));
+ refMetadata.setDependsOn((List<String>) Collections.EMPTY_LIST);
+ refMetadata.setId(ctx.generateId());
+
+ // Finally, if this is a persistence context we need to create the
+ // entity manager as the Target
+ ComponentMetadata target = isPersistenceUnit ? refMetadata
+ : createInjectionBeanMetedata(ctx, refMetadata);
+ return target;
+ }
+
+ private String createEMFServiceFilter(boolean isPersistenceUnit, String
unitName) {
+ // Pick the right EMF by looking for the presence, or absence, of the
+ // PROXY_FACTORY service property
+ StringBuilder filter = new StringBuilder("(&");
+ // Persistence units do not have the property, persistence contexts do
+ if (isPersistenceUnit)
+ filter.append("(!(" +
PersistenceContextProvider.PROXY_FACTORY_EMF_ATTRIBUTE + "=*))");
+ else
+ filter.append("(" +
PersistenceContextProvider.PROXY_FACTORY_EMF_ATTRIBUTE + "=true)");
+
+ // Add the empty name filter if necessary
+ if (!"".equals(unitName))
+ filter.append("(" + PersistenceUnitConstants.OSGI_UNIT_NAME + "="
+ unitName + ")");
+ else
+ filter.append("(" +
PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME + "=true)");
+
+ filter.append(")");
+ return filter.toString();
+ }
+
+ /**
+ * This method turns a persistence context factory into an
+ * {@link EntityManager} using blueprint factories
+ *
+ * @param ctx
+ * the {@link ParserContext}
+ * @param factory
+ * the reference bean for the persistence context factory
+ * @return
+ */
+ private ComponentMetadata createInjectionBeanMetedata(ParserContext ctx,
+ MutableReferenceMetadata factory) {
+
+ if (_logger.isDebugEnabled())
+ _logger.debug("Creating a managed persistence context definition
for injection");
+
+ //We want the EntityManager objects created from this factory to be
damped too
+ factory.setProxyChildBeanClasses(Arrays.asList(new
Class<?>[]{EntityManager.class}));
+
+ // Register the factory bean, and then create an entitymanager from it
+
ctx.getComponentDefinitionRegistry().registerComponentDefinition(factory);
+
+ MutableBeanMetadata meta =
ctx.createMetadata(MutableBeanMetadata.class);
+ MutableRefMetadata ref = ctx.createMetadata(MutableRefMetadata.class);
+ ref.setComponentId(factory.getId());
+ meta.setFactoryComponent(ref);
+ meta.setActivation(factory.getActivation());
+ meta.setFactoryMethod("createEntityManager");
+ meta.setScope(BeanMetadata.SCOPE_PROTOTYPE);
+ meta.setDestroyMethod("internalClose");
+
+ return meta;
+ }
+}
Modified:
aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java
URL:
http://svn.apache.org/viewvc/aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java?rev=1657778&r1=1657777&r2=1657778&view=diff
==============================================================================
---
aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java
(original)
+++
aries/trunk/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java
Fri Feb 6 10:48:30 2015
@@ -20,9 +20,7 @@ package org.apache.aries.jpa.blueprint.a
import java.lang.reflect.Method;
import java.net.URL;
-import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -40,8 +38,6 @@ import org.apache.aries.blueprint.Namesp
import org.apache.aries.blueprint.ParserContext;
import org.apache.aries.blueprint.PassThroughMetadata;
import org.apache.aries.blueprint.mutable.MutableBeanMetadata;
-import org.apache.aries.blueprint.mutable.MutableRefMetadata;
-import org.apache.aries.blueprint.mutable.MutableReferenceMetadata;
import org.apache.aries.jpa.container.PersistenceUnitConstants;
import org.apache.aries.jpa.container.context.PersistenceContextProvider;
import org.apache.aries.jpa.container.sync.Synchronization;
@@ -54,11 +50,9 @@ import org.osgi.service.blueprint.reflec
import org.osgi.service.blueprint.reflect.MapEntry;
import org.osgi.service.blueprint.reflect.MapMetadata;
import org.osgi.service.blueprint.reflect.Metadata;
-import org.osgi.service.blueprint.reflect.ReferenceMetadata;
import org.osgi.service.blueprint.reflect.ValueMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -107,16 +101,6 @@ public class NSHandler implements Namesp
private static final String ATTR_UNIT_NAME = "unitname";
/** The default name to use if no unit name is specified */
private static final String DEFAULT_UNIT_NAME = "";
-
- /** A filter to find persistence units that specify an empty name */
- public static final String EMPTY_UNIT_NAME_FILTER = "("
- + PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME + "=true)";
-
- /** The blueprint attribute value to make a bean eager */
- private static final String ACTIVATION_EAGER = "EAGER";
-
- /** The interface to proxy for managed persistence contexts */
- private static final Collection<Class<?>> IFACES = Arrays.asList(new
Class<?>[] {EntityManager.class});
/** The {@link PersistenceManager} to register contexts with */
private PersistenceContextProvider manager;
@@ -130,6 +114,7 @@ public class NSHandler implements Namesp
/**
* Called by blueprint when we meet a JPA namespace element
*/
+ @Override
public ComponentMetadata decorate(Node node, ComponentMetadata component,
ParserContext context) {
Element element = getValidNode(node, component);
@@ -137,16 +122,67 @@ public class NSHandler implements Namesp
String property = element.getAttribute(ATTR_PROPERTY);
property = property.isEmpty() ? null : property;
- String index = element.getAttribute(ATTR_INDEX);
- index = index.isEmpty() ? null : index;
+ int index = parseIndex(element.getAttribute(ATTR_INDEX));
String unitName = parseUnitName(element);
boolean isPersistenceUnit = TAG_UNIT.equals(element.getLocalName());
-
- if(property != null && index != null) {
- _logger.error(MESSAGES.getMessage("invalid.property.and.index"));
+
+ ComponentMetadata emfRef = new
EMFServiceRefFactory().create(isPersistenceUnit, context, unitName);
+ if(property != null && index != -1) {
+ _logger.error(MESSAGES.getMessage("invalid.property.and.index"));
} else if (property != null) {
-
- if (_logger.isDebugEnabled()) {
+ logPropertyInjection(property, unitName, isPersistenceUnit);
+ bean.addProperty(property, emfRef);
+ } else {
+ logIndexInjection(index, unitName, isPersistenceUnit);
+ String className = isPersistenceUnit ?
EntityManagerFactory.class.getName() : EntityManager.class.getName();
+ bean.addArgument(emfRef, className, index);
+ }
+
+ // If this is a persistence context then register it with the manager
+ if (TAG_CONTEXT.equals(element.getLocalName())) {
+ Bundle client = getBlueprintBundle(context);
+
+ if (client != null) {
+ HashMap<String, Object> properties = new HashMap<String,
Object>();
+ // Remember to add the PersistenceContextType so that we can
create
+ // the correct type of
+ // EntityManager
+
properties.put(PersistenceContextProvider.PERSISTENCE_CONTEXT_TYPE,
parseType(element));
+ properties.putAll(parseJPAProperties(element, context));
+ String clientInfo = client.getSymbolicName() + '/' +
client.getVersion();
+ if (contextsAvailable.get()) {
+ manager.registerContext(unitName, client, properties);
+ } else {
+
_logger.warn(MESSAGES.getMessage("no.persistence.context.provider", clientInfo,
unitName, properties));
+ }
+ Synchronization sync = getSyncService(unitName, client);
+ if (sync != null) {
+
context.getComponentDefinitionRegistry().registerInterceptorWithComponent(component,
createSyncInterceptor(sync));
+ } else {
+
_logger.error(MESSAGES.getMessage("no.synchronization.registered", clientInfo,
unitName, properties));
+ }
+ } else {
+ _logger.debug("No bundle: this must be a dry, parse only
run.");
+ }
+ }
+
+ return bean;
+ }
+
+ private int parseIndex(String indexSt) {
+ if (indexSt == null || indexSt.isEmpty()) {
+ return -1;
+ } else {
+ try {
+ return Integer.parseInt(indexSt);
+ } catch (NumberFormatException nfe) {
+ throw new
IllegalArgumentException(MESSAGES.getMessage("index.not.a.number", indexSt),
nfe);
+ }
+ }
+ }
+
+ private void logPropertyInjection(String property, String unitName,
boolean isPersistenceUnit) {
+ if (_logger.isDebugEnabled()) {
if (isPersistenceUnit)
_logger.debug("Creating blueprint injection metadata to
inject the unit {} into bean property {}",
new Object[] { unitName, property });
@@ -154,12 +190,10 @@ public class NSHandler implements Namesp
_logger.debug("Creating blueprint injection metadata to
inject the context {} into bean property {}",
new Object[] { unitName, property });
}
+ }
- bean.addProperty(property, createTargetMetadata(isPersistenceUnit,
context, unitName));
-
- } else {
-
- if (_logger.isDebugEnabled()) {
+ private void logIndexInjection(Integer index, String unitName, boolean
isPersistenceUnit) {
+ if (_logger.isDebugEnabled()) {
if (isPersistenceUnit) {
if (index == null)
_logger.debug("Creating blueprint injection metadata to
inject the unit {} as a constructor argument",
@@ -176,61 +210,6 @@ public class NSHandler implements Namesp
" with index {}", new Object[] { unitName, index });
}
}
-
- int i;
-
- if(index == null) {
- i = -1;
- } else {
- try {
- i = Integer.parseInt(index);
- } catch (NumberFormatException nfe) {
- throw new
IllegalArgumentException(MESSAGES.getMessage("index.not.a.number", index), nfe);
- }
- }
-
- bean.addArgument(createTargetMetadata(isPersistenceUnit, context,
unitName),
- isPersistenceUnit ? EntityManagerFactory.class.getName() :
EntityManager.class.getName(),
- i);
- }
-
- // If this is a persistence context then register it with the manager
- if (TAG_CONTEXT.equals(element.getLocalName())) {
- Bundle client = getBlueprintBundle(context);
-
- if (client != null) {
- HashMap<String, Object> properties = new HashMap<String,
Object>();
- // Remember to add the PersistenceContextType so that we can
create
- // the correct type of
- // EntityManager
-
properties.put(PersistenceContextProvider.PERSISTENCE_CONTEXT_TYPE,
- parseType(element));
- properties.putAll(parseJPAProperties(element, context));
- if(contextsAvailable.get()) {
- manager.registerContext(unitName, client, properties);
- } else {
-
_logger.warn(MESSAGES.getMessage("no.persistence.context.provider",
client.getSymbolicName() + '/' + client.getVersion(), unitName, properties));
- }
- boolean foundSync = false;
- try {
- Collection<ServiceReference<Synchronization>> refs =
client.getBundleContext().getServiceReferences(Synchronization.class, "(" +
PersistenceUnitConstants.OSGI_UNIT_NAME + "=" + unitName + ")");
- if (refs.size() > 0) {
- final Synchronization sync =
client.getBundleContext().getService(refs.iterator().next());
-
context.getComponentDefinitionRegistry().registerInterceptorWithComponent(component,
createSyncInterceptor(sync));
- foundSync = true;
- }
- } catch (InvalidSyntaxException e) {
- // Ignore
- }
- if (!foundSync) {
-
_logger.error(MESSAGES.getMessage("no.synchronization.registered",
client.getSymbolicName() + '/' + client.getVersion(), unitName, properties));
- }
- } else {
- _logger.debug("No bundle: this must be a dry, parse only
run.");
- }
- }
-
- return bean;
}
private MutableBeanMetadata getValidBean(ComponentMetadata component,
Element element) {
@@ -273,6 +252,19 @@ public class NSHandler implements Namesp
return element;
}
+ private Synchronization getSyncService(String unitName, Bundle client) {
+ try {
+ String filter = "(" + PersistenceUnitConstants.OSGI_UNIT_NAME +
"=" + unitName + ")";
+ Collection<ServiceReference<Synchronization>> refs =
client.getBundleContext().getServiceReferences(Synchronization.class, filter);
+ if (refs.size() > 0) {
+ return
client.getBundleContext().getService(refs.iterator().next());
+ }
+ } catch (InvalidSyntaxException e) {
+ // Ignore
+ }
+ return null;
+ }
+
private Interceptor createSyncInterceptor(final Synchronization sync) {
return new Interceptor() {
@Override
@@ -295,11 +287,13 @@ public class NSHandler implements Namesp
};
}
+ @Override
public Set<Class> getManagedClasses() {
// This is a no-op
return null;
}
+ @Override
public URL getSchemaLocation(String namespace) {
if(NS_URI_100.equals(namespace))
return
getClass().getResource("/org/apache/aries/jpa/blueprint/namespace/jpa.xsd");
@@ -309,6 +303,7 @@ public class NSHandler implements Namesp
return null;
}
+ @Override
public Metadata parse(Element element, ParserContext context) {
/*
* The namespace does not define any top-level elements, so we should
@@ -338,85 +333,7 @@ public class NSHandler implements Namesp
_logger.warn(MESSAGES.getMessage("jpa.support.gone"));
}
- @SuppressWarnings("unchecked")
- private ComponentMetadata createTargetMetadata(boolean isPersistenceUnit,
- ParserContext ctx, String unitName) {
- // Create a service reference for the EMF (it is an EMF for persistence
- // contexts and units)
- final MutableReferenceMetadata refMetadata =
ctx.createMetadata(MutableReferenceMetadata.class);
- refMetadata.setActivation(ACTIVATION_EAGER.equalsIgnoreCase(ctx
- .getDefaultActivation()) ? ReferenceMetadata.ACTIVATION_EAGER
- : ReferenceMetadata.ACTIVATION_LAZY);
- refMetadata.setAvailability(ReferenceMetadata.AVAILABILITY_MANDATORY);
- refMetadata.setInterface(EntityManagerFactory.class.getName());
-
- // Pick the right EMF by looking for the presence, or absence, of the
- // PROXY_FACTORY service property
- StringBuilder filter = new StringBuilder("(&");
- // Persistence units do not have the property, persistence contexts do
- if (isPersistenceUnit)
-
filter.append("(!(").append(PersistenceContextProvider.PROXY_FACTORY_EMF_ATTRIBUTE)
- .append("=*))");
- else
-
filter.append("(").append(PersistenceContextProvider.PROXY_FACTORY_EMF_ATTRIBUTE)
- .append("=true)");
-
- // Add the empty name filter if necessary
- if (!"".equals(unitName))
- filter.append("(" + PersistenceUnitConstants.OSGI_UNIT_NAME + "="
- + unitName + ")");
- else
- filter.append(EMPTY_UNIT_NAME_FILTER);
-
- filter.append(")");
-
- refMetadata.setFilter(filter.toString());
- refMetadata.setTimeout(Integer.parseInt(ctx.getDefaultTimeout()));
- refMetadata.setDependsOn((List<String>) Collections.EMPTY_LIST);
- refMetadata.setId(ctx.generateId());
-
- // Finally, if this is a persistence context we need to create the
- // entity manager as the Target
- ComponentMetadata target = isPersistenceUnit ? refMetadata
- : createInjectionBeanMetedata(ctx, refMetadata);
- return target;
- }
-
- /**
- * This method turns a persistence context factory into an
- * {@link EntityManager} using blueprint factories
- *
- * @param ctx
- * the {@link ParserContext}
- * @param factory
- * the reference bean for the persistence context factory
- * @return
- */
- private ComponentMetadata createInjectionBeanMetedata(ParserContext ctx,
- MutableReferenceMetadata factory) {
-
- if (_logger.isDebugEnabled())
- _logger.debug("Creating a managed persistence context definition
for injection");
-
- //We want the EntityManager objects created from this factory to be
damped too
-
- factory.setProxyChildBeanClasses(IFACES);
-
- // Register the factory bean, and then create an entitymanager from it
- ctx.getComponentDefinitionRegistry().registerComponentDefinition(
- factory);
-
- MutableBeanMetadata meta =
ctx.createMetadata(MutableBeanMetadata.class);
- MutableRefMetadata ref = ctx.createMetadata(MutableRefMetadata.class);
- ref.setComponentId(factory.getId());
- meta.setFactoryComponent(ref);
- meta.setActivation(factory.getActivation());
- meta.setFactoryMethod("createEntityManager");
- meta.setScope(BeanMetadata.SCOPE_PROTOTYPE);
- meta.setDestroyMethod("internalClose");
-
- return meta;
- }
+
/**
* Get hold of the blueprint bundle using the built in components
Modified:
aries/trunk/jpa/jpa-blueprint-aries/src/main/resources/OSGI-INF/blueprint/jpa.xml
URL:
http://svn.apache.org/viewvc/aries/trunk/jpa/jpa-blueprint-aries/src/main/resources/OSGI-INF/blueprint/jpa.xml?rev=1657778&r1=1657777&r2=1657778&view=diff
==============================================================================
---
aries/trunk/jpa/jpa-blueprint-aries/src/main/resources/OSGI-INF/blueprint/jpa.xml
(original)
+++
aries/trunk/jpa/jpa-blueprint-aries/src/main/resources/OSGI-INF/blueprint/jpa.xml
Fri Feb 6 10:48:30 2015
@@ -38,7 +38,7 @@
<reference id="persistenceContextProvider" availability="optional"
interface="org.apache.aries.jpa.container.context.PersistenceContextProvider">
- <reference-listener ref="namespaceHandler" bind-method="contextAvailable"
+ <reference-listener ref="namespaceHandler" bind-method="contextAvailable"
unbind-method="contextUnavailable"/>
</reference>
</blueprint>
\ No newline at end of file
Modified:
aries/trunk/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java
URL:
http://svn.apache.org/viewvc/aries/trunk/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java?rev=1657778&r1=1657777&r2=1657778&view=diff
==============================================================================
---
aries/trunk/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java
(original)
+++
aries/trunk/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java
Fri Feb 6 10:48:30 2015
@@ -44,6 +44,7 @@ import org.apache.aries.blueprint.reflec
import org.apache.aries.blueprint.reflect.RefMetadataImpl;
import org.apache.aries.blueprint.reflect.ReferenceMetadataImpl;
import org.apache.aries.jpa.blueprint.aries.impl.NSHandler;
+import org.apache.aries.jpa.container.PersistenceUnitConstants;
import org.apache.aries.jpa.container.context.PersistenceContextProvider;
import org.apache.aries.unittest.mocks.MethodCall;
import org.apache.aries.unittest.mocks.Skeleton;
@@ -63,6 +64,9 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class NSHandlerTest {
+ private static final String EMPTY_UNIT_NAME_FILTER = "("
+ + PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME + "=true)";
+
private Element root;
private Element root_110;
private NSHandler sut;
@@ -105,10 +109,12 @@ public class NSHandlerTest {
}
private static class ParserContextMock {
+ @SuppressWarnings("unused")
public<T> T parseElement(Class<T> type, ComponentMetadata
enclosingComponent, Element element) {
return new Parser().parseElement(type, enclosingComponent, element);
}
+ @SuppressWarnings("unused")
public<T extends Metadata> T createMetadata(Class<T> clazz) {
if (ReferenceMetadata.class.isAssignableFrom(clazz))
return clazz.cast(new ReferenceMetadataImpl());
@@ -120,6 +126,7 @@ public class NSHandlerTest {
}
private class ComponentDefinitionRegistryMock {
+ @SuppressWarnings("unused")
public ComponentMetadata getComponentDefinition(String id) {
PassThroughMetadata bundleMeta =
Skeleton.newMock(PassThroughMetadata.class);
Skeleton.getSkeleton(bundleMeta).setReturnValue(
@@ -127,6 +134,7 @@ public class NSHandlerTest {
return bundleMeta;
}
+ @SuppressWarnings("unused")
public void registerComponentDefinition(ComponentMetadata component) {
registeredComponents.add(component);
}
@@ -175,7 +183,7 @@ public class NSHandlerTest {
ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
assertEquals("emf2", property.getName());
-
assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+NSHandler.EMPTY_UNIT_NAME_FILTER+")",
+
assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+EMPTY_UNIT_NAME_FILTER+")",
reference.getFilter());
assertTrue(registeredComponents.isEmpty());
@@ -190,7 +198,7 @@ public class NSHandlerTest {
ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
assertEquals("emf2", property.getName());
-
assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+NSHandler.EMPTY_UNIT_NAME_FILTER+")",
+
assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+EMPTY_UNIT_NAME_FILTER+")",
reference.getFilter());
assertTrue(registeredComponents.isEmpty());
@@ -205,7 +213,7 @@ public class NSHandlerTest {
ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
assertEquals("emf3", property.getName());
-
assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+NSHandler.EMPTY_UNIT_NAME_FILTER+")",
+
assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+EMPTY_UNIT_NAME_FILTER+")",
reference.getFilter());
assertTrue(registeredComponents.isEmpty());
@@ -220,7 +228,7 @@ public class NSHandlerTest {
ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
assertEquals("emf3", property.getName());
-
assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+NSHandler.EMPTY_UNIT_NAME_FILTER+")",
+
assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+EMPTY_UNIT_NAME_FILTER+")",
reference.getFilter());
assertTrue(registeredComponents.isEmpty());
@@ -356,7 +364,7 @@ private void assertInnerBeanCorrect(Bean
ReferenceMetadata reference = (ReferenceMetadata)
registeredComponents.get(0);
assertEquals(EntityManagerFactory.class.getName(),
reference.getInterface());
-
assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)"+NSHandler.EMPTY_UNIT_NAME_FILTER+")",
+
assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)"+EMPTY_UNIT_NAME_FILTER+")",
reference.getFilter());
Map<String,Object> props = new HashMap<String, Object>();
@@ -380,7 +388,7 @@ private void assertInnerBeanCorrect(Bean
ReferenceMetadata reference = (ReferenceMetadata)
registeredComponents.get(0);
assertEquals(EntityManagerFactory.class.getName(),
reference.getInterface());
-
assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)"+NSHandler.EMPTY_UNIT_NAME_FILTER+")",
+
assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)"+EMPTY_UNIT_NAME_FILTER+")",
reference.getFilter());
Map<String,Object> props = new HashMap<String, Object>();
@@ -411,7 +419,7 @@ private void assertInnerBeanCorrect(Bean
public void testNonIndexedArgs_110() {
Element e = getTestElement("withUnitArg", root_110);
BeanMetadata input = new BeanMetadataImpl();
- Object output = sut.decorate(e, input, parserCtx);
+ sut.decorate(e, input, parserCtx);
assertEquals("Wrong number of arguments",
1 ,input.getArguments().size());
assertEquals("Wrong class type",
"javax.persistence.EntityManagerFactory",
@@ -428,7 +436,7 @@ private void assertInnerBeanCorrect(Bean
e = getTestElement("withContextArg", root_110);
input = new BeanMetadataImpl();
- output = sut.decorate(e, input, parserCtx);
+ sut.decorate(e, input, parserCtx);
assertEquals("Wrong number of arguments",
1 ,input.getArguments().size());
@@ -462,7 +470,7 @@ private void assertConstructorInnerBean(
public void testIndexedArgs_110() {
Element e = getTestElement("withIndexedUnitArg", root_110);
BeanMetadata input = new BeanMetadataImpl();
- Object output = sut.decorate(e, input, parserCtx);
+ sut.decorate(e, input, parserCtx);
assertEquals("Wrong number of arguments",
1 ,input.getArguments().size());
assertEquals("Wrong class type",
"javax.persistence.EntityManagerFactory",
@@ -479,7 +487,7 @@ private void assertConstructorInnerBean(
e = getTestElement("withIndexedContextArg", root_110);
input = new BeanMetadataImpl();
- output = sut.decorate(e, input, parserCtx);
+ sut.decorate(e, input, parserCtx);
assertEquals("Wrong number of arguments",
1 ,input.getArguments().size());
@@ -507,7 +515,7 @@ private void assertConstructorInnerBean(
Element e = getTestElement("withInvalidIndexArg", root_110);
BeanMetadata input = new BeanMetadataImpl();
try {
- Object output = sut.decorate(e, input, parserCtx);
+ sut.decorate(e, input, parserCtx);
fail("Should throw an exception");
} catch (IllegalArgumentException iae) {
assertTrue("Wrong cause type", iae.getCause() instanceof
NumberFormatException);