Commits

Michael Ludwig  committed 1b35312

Add verification scripts to integration tests, and add missing headers.

  • Participants
  • Parent commits 2440a96

Comments (0)

Files changed (22)

File entreri-apt-tests/pom.xml

                 <configuration>
                     <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
                     <settingsFile>${project.basedir}/src/it/settings.xml</settingsFile>
-                    <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+                    <localRepositoryPath>${project.build.directory}/local-repo
+                    </localRepositoryPath>
                     <addTestClassPath>true</addTestClassPath>
-
-                    <pomIncludes>
-                        <pomInclude>*/pom.xml</pomInclude>
-                    </pomIncludes>
+                    <postBuildHookScript>verify</postBuildHookScript>
+                    <cloneClean>true</cloneClean>
+                    <addTestClassPath>true</addTestClassPath>
                 </configuration>
 
                 <executions>

File entreri-apt-tests/src/it/InvalidFactoryComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/InvalidPropertyComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/InvalidSharedObjectComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/InvalidSharedPrimitiveComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/MismatchedNameComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/MismatchedTypeComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/MissingGetterComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/MissingPropertyGetComponent/src/main/java/MissingPropertyGetComponent.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.lhkbob.entreri.components;
 
 import com.lhkbob.entreri.Component;

File entreri-apt-tests/src/it/MissingPropertyGetComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/MissingPropertySetComponent/src/main/java/MissingPropertySetComponent.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.lhkbob.entreri.components;
 
 import com.lhkbob.entreri.Component;

File entreri-apt-tests/src/it/MissingPropertySetComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/MissingSetterComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/it/NonBeanComponent/verify.bsh

+import com.lhkbob.entreri.InvokerUtils;
+import java.io.*;
+
+try {
+    return InvokerUtils.validateLog(basedir);
+} catch(IOException e) {
+    e.printStackTrace();
+    return false;
+}

File entreri-apt-tests/src/test/java/com/lhkbob/entreri/InvokerUtils.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package com.lhkbob.entreri;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.regex.Pattern;
+
+/**
+ * Utility function to validate a build log from the maven-invoker-plugin
+ */
+public final class InvokerUtils {
+    private InvokerUtils() {
+    }
+
+    public static boolean validateLog(File baseDir) throws IOException {
+        String baseName = baseDir.getCanonicalPath();
+        String componentClass = baseName.substring(baseName.lastIndexOf('/') + 1);
+        File logFile = new File(baseDir, "build.log");
+
+        boolean compilationError = false;
+        boolean expectedClassFailure = false;
+
+        Pattern expectedPattern = Pattern
+                .compile("\\[ERROR] .*" + componentClass + "\\.java:\\[.*] error: .*");
+
+        BufferedReader reader = new BufferedReader(new FileReader(logFile));
+        String line;
+        while ((line = reader.readLine()) != null) {
+            if (line.contains("[ERROR] COMPILATION ERROR :")) {
+                compilationError = true;
+            } else if (expectedPattern.matcher(line).matches()) {
+                expectedClassFailure = true;
+            }
+        }
+        reader.close();
+
+        return compilationError && expectedClassFailure;
+    }
+}

File entreri-core/src/main/java/com/lhkbob/entreri/impl/ComponentSpecification.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.lhkbob.entreri.impl;
 
 import com.lhkbob.entreri.Component;

File entreri-core/src/main/java/com/lhkbob/entreri/impl/MirrorComponentSpecification.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.lhkbob.entreri.impl;
 
 import com.lhkbob.entreri.*;
         // since this is an interface, we're only dealing with public methods
         // so getMethods() returns everything we're interested in plus the methods
         // declared in Component, which we'll have to exclude
-        List<? extends Element> methods = eu.getAllMembers(type);
+        List<? extends ExecutableElement> methods = ElementFilter
+                .methodsIn(eu.getAllMembers(type));
         Map<String, ExecutableElement> getters = new HashMap<>();
         Map<String, ExecutableElement> setters = new HashMap<>();
         Map<String, Integer> setterParameters = new HashMap<>();
 
-        for (int i = 0; i < methods.size(); i++) {
-            if (!methods.get(i).getKind().equals(ElementKind.METHOD)) {
-                // skip anything else, theoretically they can define inner static classes
-                // or enums, which is perfectly valid
-                continue;
-            }
-
+        for (ExecutableElement m : methods) {
             // exclude methods defined in Component, Owner, and Ownable
-            ExecutableElement m = (ExecutableElement) methods.get(i);
             String name = m.getSimpleName().toString();
             TypeMirror declare = m.getEnclosingElement().asType();
 
             default:
                 FileObject mapping;
                 try {
-                    //                    System.out.println(
-                    //                            "Searching for file " + TypePropertyMapping.MAPPING_DIR +
-                    //                            baseType.toString());
                     mapping = io.getResource(StandardLocation.CLASS_PATH, "",
                                              TypePropertyMapping.MAPPING_DIR +
                                              baseType.toString());
-                    //                    System.out.println("Search successful: " +
-                    //                                       (mapping == null ? "null" : mapping.getName()));
                 } catch (IOException e) {
                     // if an IO is thrown here, it means it couldn't find the file
-                    //                    System.out.println("IO Exception during search");
                     mapping = null;
                 }
 
                 if (mapping != null) {
                     try {
                         String content = mapping.getCharContent(true).toString().trim();
-                        //                        System.out.println("Content of mapping file: " + content);
                         mappedType = eu.getTypeElement(content);
                     } catch (IOException e) {
                         // if an IO is thrown here, however, it means errors accessing
                         throw new RuntimeException(e);
                     }
                 } else {
-                    //                    System.out.println("Falling back to ObjectProperty");
                     mappedType = eu
                             .getTypeElement(ObjectProperty.class.getCanonicalName());
                 }
             }
 
-            //            System.out.println("Mapped type for " + baseType + " is " + mappedType);
             factory = getFactory(mappedType);
             if (factory == null) {
                 throw fail(getter.getEnclosingElement().asType(),
 
     private static TypeMirror getFactory(Element e) {
         try {
-            com.lhkbob.entreri.property.Factory factory = e.getAnnotation(com.lhkbob.entreri.property.Factory.class);
-            if (factory != null)
+            com.lhkbob.entreri.property.Factory factory = e
+                    .getAnnotation(com.lhkbob.entreri.property.Factory.class);
+            if (factory != null) {
                 factory.value(); // will throw an exception
+            }
             return null;
-        } catch(MirroredTypeException te) {
+        } catch (MirroredTypeException te) {
             return te.getTypeMirror();
         }
     }
     private static boolean findMethod(List<? extends ExecutableElement> methods, Types tu,
                                       String name, TypeMirror returnType,
                                       TypeMirror... params) {
-        //        System.out.print("Searching for method: " + returnType + " " + name +
-        //                         Arrays.toString(params));
         for (ExecutableElement m : methods) {
             if (m.getSimpleName().contentEquals(name) &&
                 tu.isSameType(returnType, m.getReturnType())) {
                     }
 
                     if (found) {
-                        //                        System.out.println(" found!");
                         return true;
                     }
                 }
             }
         }
 
-        //        System.out.println(" not found :(");
         return false;
     }
 }

File entreri-core/src/main/java/com/lhkbob/entreri/impl/PropertyDeclaration.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.lhkbob.entreri.impl;
 
 import com.lhkbob.entreri.property.PropertyFactory;

File entreri-core/src/main/java/com/lhkbob/entreri/impl/ReflectionComponentSpecification.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.lhkbob.entreri.impl;
 
 import com.lhkbob.entreri.*;

File entreri-core/src/main/java/com/lhkbob/entreri/impl/StaticComponentGenerator.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.lhkbob.entreri.impl;
 
 import com.lhkbob.entreri.IllegalComponentDefinitionException;

File entreri-janino-tests/src/test/java/com/lhkbob/entreri/components/MissingPropertyGetComponent.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.lhkbob.entreri.components;
 
 import com.lhkbob.entreri.Component;

File entreri-janino-tests/src/test/java/com/lhkbob/entreri/components/MissingPropertySetComponent.java

+/*
+ * Entreri, an entity-component framework in Java
+ *
+ * Copyright (c) 2012, Michael Ludwig
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *         this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *         this list of conditions and the following disclaimer in the
+ *         documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.lhkbob.entreri.components;
 
 import com.lhkbob.entreri.Component;