diff --git a/impl/src/main/java/org/jboss/seam/solder/log/LoggerProducers.java b/impl/src/main/java/org/jboss/seam/solder/log/LoggerProducers.java index 0379f765..1d577161 100644 --- a/impl/src/main/java/org/jboss/seam/solder/log/LoggerProducers.java +++ b/impl/src/main/java/org/jboss/seam/solder/log/LoggerProducers.java @@ -23,6 +23,8 @@ import static org.jboss.seam.solder.reflection.Reflections.getRawType; import static org.jboss.seam.solder.util.Locales.toLocale; +import java.io.Serializable; + import javax.enterprise.inject.Produces; import javax.enterprise.inject.spi.Annotated; import javax.enterprise.inject.spi.InjectionPoint; @@ -36,7 +38,7 @@ * @author David Allen * @author Pete Muir */ -class LoggerProducers +class LoggerProducers implements Serializable { @Produces Logger produceLog(InjectionPoint injectionPoint) diff --git a/impl/src/test/java/org/jboss/seam/solder/test/log/BaldEagle.java b/impl/src/test/java/org/jboss/seam/solder/test/log/BaldEagle.java new file mode 100644 index 00000000..9ad9693e --- /dev/null +++ b/impl/src/test/java/org/jboss/seam/solder/test/log/BaldEagle.java @@ -0,0 +1,19 @@ +package org.jboss.seam.solder.test.log; + +import java.io.Serializable; + +import javax.enterprise.context.SessionScoped; +import javax.inject.Inject; + +import org.jboss.seam.solder.log.Category; + +@SessionScoped +public class BaldEagle implements Serializable { + @Inject @Category("Birds") + private BirdLogger logger; + + public void generateLogMessage() + { + logger.logBaldEaglesSpotted(2); + } +} diff --git a/impl/src/test/java/org/jboss/seam/solder/test/log/BirdLogger.java b/impl/src/test/java/org/jboss/seam/solder/test/log/BirdLogger.java index 178fed02..96f21140 100644 --- a/impl/src/test/java/org/jboss/seam/solder/test/log/BirdLogger.java +++ b/impl/src/test/java/org/jboss/seam/solder/test/log/BirdLogger.java @@ -29,5 +29,8 @@ public interface BirdLogger extends BirdMessages @LogMessage @Message("Spotted %s Owls") void logOwlsSpotted(int number); + + @LogMessage @Message("Spotted %s Bald Eagles") + void logBaldEaglesSpotted(int number); } diff --git a/impl/src/test/java/org/jboss/seam/solder/test/log/LoggerInjectionTest.java b/impl/src/test/java/org/jboss/seam/solder/test/log/LoggerInjectionTest.java index 0522edfc..ade84c9a 100644 --- a/impl/src/test/java/org/jboss/seam/solder/test/log/LoggerInjectionTest.java +++ b/impl/src/test/java/org/jboss/seam/solder/test/log/LoggerInjectionTest.java @@ -49,12 +49,6 @@ @RunWith(Arquillian.class) public class LoggerInjectionTest { - // TODO temporary, test with dynamic proxies until tool accepts "BirdLogger extends BirdMessages" - static - { - System.setProperty("jboss.i18n.generate-proxies", "true"); - } - @Deployment public static Archive deployment() { @@ -121,6 +115,16 @@ public void testMessageLoggerInjectionWithCategory(Hawk hawk) { hawk.generateLogMessage(); } + + /** + * BaldEagle declares a passivating scope and therefore must not have any non-serializable dependencies. This test will fail + * deployment if the type-safe logger producer is not serializable. (see SOLDER-81) + */ + @Test + public void testMessageLoggerInjectionOnPassivatingBean(BaldEagle baldEagle) + { + baldEagle.generateLogMessage(); + } @Test public void testMessageBundleInjection(Jay jay)