You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cl...@apache.org on 2011/08/18 13:32:22 UTC
svn commit: r1159173 [5/5] - in /felix/trunk/ipojo: ant/
ant/src/main/java/org/apache/felix/ipojo/task/ manipulator/
manipulator/src/main/java/org/apache/felix/ipojo/manipulation/
manipulator/src/main/java/org/apache/felix/ipojo/manipulator/ manipulato...
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/metadata/StreamMetadataProviderTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/metadata/StreamMetadataProviderTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/metadata/StreamMetadataProviderTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/metadata/StreamMetadataProviderTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,60 @@
+/**
+ * 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.felix.ipojo.manipulator.metadata;
+
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.manipulator.Reporter;
+import org.apache.felix.ipojo.metadata.Element;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.List;
+
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+public class StreamMetadataProviderTestCase extends TestCase {
+
+ public void testGetMetadatas() throws Exception {
+ File metadata = new File(new File("target", "test-classes"), "metadata.xml");
+ FileInputStream fis = new FileInputStream(metadata);
+ Reporter reporter = mock(Reporter.class);
+
+ StreamMetadataProvider provider = new StreamMetadataProvider(fis, reporter);
+ provider.setValidateUsingLocalSchemas(true);
+
+ List<Element> meta = provider.getMetadatas();
+ assertEquals(3, meta.size());
+ }
+
+ public void testWithEmptyMetadataXml() throws Exception {
+ File metadata = new File(new File("target", "test-classes"), "empty-metadata.xml");
+ FileInputStream fis = new FileInputStream(metadata);
+ Reporter reporter = mock(Reporter.class);
+
+ StreamMetadataProvider provider = new StreamMetadataProvider(fis, reporter);
+ provider.setValidateUsingLocalSchemas(true);
+
+ List<Element> meta = provider.getMetadatas();
+ assertEquals(0, meta.size());
+ verify(reporter).warn(anyString());
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/render/ManipulatedMetadataFilterTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/render/ManipulatedMetadataFilterTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/render/ManipulatedMetadataFilterTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/render/ManipulatedMetadataFilterTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,65 @@
+/**
+ * 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.felix.ipojo.manipulator.render;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.InstanceManager;
+import org.apache.felix.ipojo.manipulation.MethodCreator;
+import org.apache.felix.ipojo.metadata.Attribute;
+import org.apache.felix.ipojo.metadata.Element;
+
+public class ManipulatedMetadataFilterTestCase extends TestCase {
+
+ private ManipulatedMetadataFilter filter;
+
+ @Override
+ public void setUp() throws Exception {
+ filter = new ManipulatedMetadataFilter();
+ }
+
+ public void testFilterPrefixedMethod() throws Exception {
+ Element main = new Element("test", null);
+ main.addAttribute(new Attribute("name", MethodCreator.PREFIX + "PropertyName"));
+
+ Assert.assertTrue(filter.accept(main));
+ }
+
+ public void testFilterInstanceManagerValue() throws Exception {
+ Element main = new Element("test", null);
+ main.addAttribute(new Attribute("name", InstanceManager.class.getName()));
+
+ Assert.assertTrue(filter.accept(main));
+ }
+
+ public void testFilterInstanceManagerSetter() throws Exception {
+ Element main = new Element("test", null);
+ main.addAttribute(new Attribute("name", "_setInstanceManager"));
+
+ Assert.assertTrue(filter.accept(main));
+ }
+
+ public void testDoNotFilterOthers() throws Exception {
+ Element main = new Element("test", null);
+ main.addAttribute(new Attribute("name", "setPropertyName"));
+
+ Assert.assertFalse(filter.accept(main));
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/render/MetadataRendererTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/render/MetadataRendererTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/render/MetadataRendererTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/render/MetadataRendererTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,100 @@
+/**
+ * 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.felix.ipojo.manipulator.render;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.metadata.Attribute;
+import org.apache.felix.ipojo.metadata.Element;
+
+public class MetadataRendererTestCase extends TestCase {
+
+ private MetadataRenderer renderer;
+
+ @Override
+ public void setUp() throws Exception {
+ renderer = new MetadataRenderer();
+ }
+
+ public void testAddMetadataFilter() throws Exception {
+
+ // Auto remove all elements with a namespace
+ renderer.addMetadataFilter(new MetadataFilter() {
+ public boolean accept(Element element) {
+ return element.getNameSpace() != null;
+ }
+ });
+
+ Element main = new Element("test", null);
+ Element child = new Element("child", "uri");
+ main.addElement(child);
+ String rendered = renderer.render(main);
+ Assert.assertEquals("test { }", rendered);
+
+ }
+
+ public void testRenderElementWithNoNamespace() throws Exception {
+ Element main = new Element("test", null);
+ String rendered = renderer.render(main);
+ Assert.assertEquals("test { }", rendered);
+ }
+
+ public void testRenderElementWithEmptyNamespace() throws Exception {
+ Element main = new Element("test", "");
+ String rendered = renderer.render(main);
+ Assert.assertEquals("test { }", rendered);
+ }
+
+ public void testRenderElementWithDefaultNamespace() throws Exception {
+ // TODO Do we need to strip off default namespace ?
+ Element main = new Element("test", "org.apache.felix.ipojo");
+ String rendered = renderer.render(main);
+ Assert.assertEquals("org.apache.felix.ipojo:test { }", rendered);
+ }
+
+ public void testRenderElementWithNamespace() throws Exception {
+ Element main = new Element("test", "http://felix.apache.org/ipojo/testing");
+ String rendered = renderer.render(main);
+ Assert.assertEquals("http://felix.apache.org/ipojo/testing:test { }", rendered);
+ }
+
+ public void testRenderElementWithNoNamespaceAttribute() throws Exception {
+ Element main = new Element("test", null);
+ main.addAttribute(new Attribute("name", "attribute"));
+ String rendered = renderer.render(main);
+ Assert.assertEquals("test { $name=\"attribute\" }", rendered);
+ }
+
+ public void testRenderElementWithNamespaceAttribute() throws Exception {
+ Element main = new Element("test", null);
+ main.addAttribute(new Attribute("name", "ns-uri", "attribute"));
+ String rendered = renderer.render(main);
+ Assert.assertEquals("test { $ns-uri:name=\"attribute\" }", rendered);
+ }
+
+ public void testRenderElementWithChildren() throws Exception {
+ Element main = new Element("test", null);
+ Element child = new Element("child", null);
+ main.addElement(child);
+ String rendered = renderer.render(main);
+ Assert.assertEquals("test { child { }}", rendered);
+ }
+
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/DirectoryResourceStoreTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/DirectoryResourceStoreTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/DirectoryResourceStoreTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/DirectoryResourceStoreTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,87 @@
+/*
+ * 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.felix.ipojo.manipulator.store;
+
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.manipulator.Pojoization;
+import org.apache.felix.ipojo.manipulator.ResourceVisitor;
+import org.apache.felix.ipojo.manipulator.util.Streams;
+import org.apache.felix.ipojo.manipulator.util.Strings;
+
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+/**
+ * A {@code DirectoryBytecodeStoreTestCase} is ...
+ *
+ */
+public class DirectoryResourceStoreTestCase extends TestCase {
+
+ private DirectoryResourceStore store;
+ private File classes;
+ private File out;
+
+ public void setUp() throws Exception {
+ classes = new File("target", "classes");
+ out = new File(classes, "test.txt");
+ store = new DirectoryResourceStore(classes);
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ out.delete();
+ }
+
+ public void testAccessibleResources() throws Exception {
+ byte[] data = store.read(Streams.class.getName().replace('.', '/').concat(".class"));
+ assertNotNull("Data cannot be null", data);
+ }
+
+ public void testInaccessibleResources() throws Exception {
+ try {
+ store.read("something/that/do/not/exists.txt");
+ fail();
+ } catch (IOException ioe) {
+ // Expected
+ }
+ }
+
+ public void testResourceWriting() throws Exception {
+ store.write("test.txt", "Hello World".getBytes());
+ Assert.assertTrue(out.isFile());
+ }
+
+ public void testResourceVisitor() throws Exception {
+
+ // final String expectedPath = Strings.asResourcePath(Pojoization.class.getName());
+ ResourceVisitor visitor = mock(ResourceVisitor.class);
+ store.accept(visitor);
+
+ verify(visitor, atLeastOnce()).visit(anyString());
+
+ // TODO try to check that Pojoization class resource was called
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/JarFileResourceStoreTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/JarFileResourceStoreTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/JarFileResourceStoreTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/JarFileResourceStoreTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,82 @@
+/**
+ * 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.felix.ipojo.manipulator.store;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.manipulator.ResourceVisitor;
+import org.apache.felix.ipojo.manipulator.util.Streams;
+
+import java.io.File;
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.*;
+
+public class JarFileResourceStoreTestCase extends TestCase {
+ public static final String RESOURCE_PATH = "org/apache/felix/ipojo/test/scenarios/component/Annotation.class";
+ private JarFileResourceStore store;
+ private File out;
+
+ public void setUp() throws Exception {
+ File classes = new File("target", "test-classes");
+ out = new File(classes, "test-store.jar");
+ JarFile jar = new JarFile(new File(classes, "tests.manipulation.java5.jar"));
+ store = new JarFileResourceStore(jar, out);
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ out.delete();
+ }
+
+ public void testRead() throws Exception {
+ byte[] bytes = store.read(RESOURCE_PATH);
+ Assert.assertNotNull(bytes);
+ }
+
+ public void testAccept() throws Exception {
+ ResourceVisitor visitor = mock(ResourceVisitor.class);
+ store.accept(visitor);
+
+ verify(visitor, atLeastOnce()).visit(anyString());
+
+ }
+
+ public void testWrite() throws Exception {
+
+ ManifestBuilder builder = mock(ManifestBuilder.class);
+ Manifest manifest = new Manifest();
+ when(builder.build(any(Manifest.class))).thenReturn(manifest);
+ store.setManifestBuilder(builder);
+
+ store.write(RESOURCE_PATH, "Hello World".getBytes());
+
+ store.close();
+
+ JarFile outJar = new JarFile(out);
+ Assert.assertNotNull(outJar.getEntry(RESOURCE_PATH));
+ byte[] bytes = Streams.readBytes(outJar.getInputStream(outJar.getEntry(RESOURCE_PATH)));
+
+ Assert.assertEquals("Hello World", new String(bytes));
+
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/builder/DefaultManifestBuilderTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/builder/DefaultManifestBuilderTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/builder/DefaultManifestBuilderTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/builder/DefaultManifestBuilderTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,97 @@
+/*
+ * 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.felix.ipojo.manipulator.store.builder;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.manipulator.Pojoization;
+import org.apache.felix.ipojo.manipulator.store.ManifestBuilder;
+import org.apache.felix.ipojo.manipulator.store.builder.DefaultManifestBuilder;
+
+public class DefaultManifestBuilderTestCase extends TestCase {
+
+ private static final String ORG_OSGI_FRAMEWORK_VERSION_1_5 = "org.osgi.framework;version=1.5";
+ private Manifest manifest;
+ private ManifestBuilder builder;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+
+ manifest = new Manifest();
+ Attributes attributes = manifest.getMainAttributes();
+ attributes.putValue("Import-Package", ORG_OSGI_FRAMEWORK_VERSION_1_5);
+ attributes.putValue("Created-By", "TestCase");
+
+ builder = new DefaultManifestBuilder();
+ builder.addReferredPackage(Collections.singleton("org.osgi.service.http"));
+ }
+
+ public void testManifestIsModified() throws Exception {
+ Manifest modified = builder.build(manifest);
+
+ // Created by header was properly modified
+ Assert.assertEquals("TestCase & iPOJO " + Pojoization.IPOJO_PACKAGE_VERSION,
+ modified.getMainAttributes().getValue("Created-By"));
+
+ // As there was no metadata provided, no iPOJO-Components header should be present
+ Assert.assertNull(modified.getMainAttributes().getValue("iPOJO-Components"));
+
+ // Check that default manipulation introduced packages are present
+ String imported = modified.getMainAttributes().getValue("Import-Package");
+ Assert.assertTrue(imported.contains(ORG_OSGI_FRAMEWORK_VERSION_1_5));
+ Assert.assertTrue(imported.contains("org.apache.felix.ipojo"));
+ Assert.assertTrue(imported.contains("org.apache.felix.ipojo.architecture"));
+ Assert.assertTrue(imported.contains("org.osgi.service.cm"));
+ Assert.assertTrue(imported.contains("org.osgi.service.log"));
+ }
+
+
+ public void testCreatedByHeaderDoesNotContainIPojoTwice() throws Exception {
+
+ manifest.getMainAttributes().putValue("Created-By", "TestCase for iPOJO");
+
+ Manifest modified = builder.build(manifest);
+
+ // Created by header was properly not changed
+ Assert.assertEquals("TestCase for iPOJO",
+ modified.getMainAttributes().getValue("Created-By"));
+ }
+
+ public void testReferredPackagesAreProperlyAdded() throws Exception {
+
+ List<String> p = Arrays.asList("org.apache.felix.ipojo.test", "org.apache.felix.ipojo.log");
+ builder.addReferredPackage(new HashSet<String>(p));
+
+ Manifest modified = builder.build(manifest);
+
+ // Check that referred packages are present
+ String imported = modified.getMainAttributes().getValue("Import-Package");
+ Assert.assertTrue(imported.contains("org.apache.felix.ipojo.test"));
+ Assert.assertTrue(imported.contains("org.apache.felix.ipojo.log"));
+ }
+
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/FileSystemResourceMapperTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/FileSystemResourceMapperTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/FileSystemResourceMapperTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/FileSystemResourceMapperTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,75 @@
+/**
+ * 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.felix.ipojo.manipulator.store.mapper;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.manipulator.store.ResourceMapper;
+
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class FileSystemResourceMapperTestCase extends TestCase {
+
+ public void testUnixInternalize() throws Exception {
+
+ ResourceMapper delegate = mock(ResourceMapper.class);
+ FileSystemResourceMapper mapper = new FileSystemResourceMapper(delegate);
+
+ String path = "this/is/a/unix/like/path.extension";
+ when(delegate.internalize(eq(path))).thenReturn(path);
+
+ String result = mapper.internalize(path);
+
+ Assert.assertEquals(path, result);
+
+ }
+
+ public void testUnixExternalize() throws Exception {
+
+ ResourceMapper delegate = mock(ResourceMapper.class);
+ FileSystemResourceMapper mapper = new FileSystemResourceMapper(delegate);
+
+ String path = "this/is/a/unix/like/path.extension";
+ when(delegate.externalize(eq(path))).thenReturn(path);
+
+ String result = mapper.externalize(path);
+
+ // unix path is already normalized
+ Assert.assertEquals(path, result);
+ }
+
+ public void ignoreWindowsExternalize() throws Exception {
+ // As Java doesn't like '\' alone in Strings I have to replace them on the fly :'(
+ // Grrr doesn't work as expected
+ ResourceMapper delegate = mock(ResourceMapper.class);
+ FileSystemResourceMapper mapper = new FileSystemResourceMapper(delegate);
+
+ String path = "c:\\this\\is\\a\\windows\\like\\path.extension";
+ when(delegate.externalize(eq(path))).thenReturn(path);
+
+ String expected = "c:/this/is/a/windows/like/path.extension";
+ String result = mapper.externalize(path);
+
+ // unix path is already normalized
+ Assert.assertEquals(expected, result);
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/IdentityResourceMapperTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/IdentityResourceMapperTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/IdentityResourceMapperTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/IdentityResourceMapperTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,37 @@
+/**
+ * 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.felix.ipojo.manipulator.store.mapper;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+public class IdentityResourceMapperTestCase extends TestCase {
+ public void testInternalize() throws Exception {
+ IdentityResourceMapper mapper = new IdentityResourceMapper();
+ String path = "must/not/change";
+ Assert.assertEquals(path, mapper.internalize(path));
+ }
+
+ public void testExternalize() throws Exception {
+ IdentityResourceMapper mapper = new IdentityResourceMapper();
+ String path = "must/not/change";
+ Assert.assertEquals(path, mapper.externalize(path));
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/WABResourceMapperTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/WABResourceMapperTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/WABResourceMapperTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/store/mapper/WABResourceMapperTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,50 @@
+/**
+ * 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.felix.ipojo.manipulator.store.mapper;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.manipulator.store.ResourceMapper;
+
+public class WABResourceMapperTestCase extends TestCase {
+ public void testSimpleInternalize() throws Exception {
+ ResourceMapper mapper = new WABResourceMapper();
+ String path = "jndi.properties";
+ Assert.assertEquals("WEB-INF/classes/" + path, mapper.internalize(path));
+ }
+
+ public void testSimpleExternalize() throws Exception {
+ ResourceMapper mapper = new WABResourceMapper();
+ String path = "WEB-INF/classes/jndi.properties";
+ Assert.assertEquals("jndi.properties", mapper.externalize(path));
+ }
+
+ public void testExternalizeError() throws Exception {
+ ResourceMapper mapper = new WABResourceMapper();
+ String path = "jndi.properties";
+
+ try {
+ mapper.externalize(path);
+ fail("Should have thrown an IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/util/StreamsTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/util/StreamsTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/util/StreamsTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/util/StreamsTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,59 @@
+/**
+ * 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.felix.ipojo.manipulator.util;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+public class StreamsTestCase extends TestCase {
+ public void testSimpleClose() throws Exception {
+ Closeable closeable = mock(Closeable.class);
+ Streams.close(closeable);
+ verify(closeable).close();
+ }
+
+ public void testCloseWithNullParameter() throws Exception {
+ Closeable closeable = mock(Closeable.class);
+ Streams.close(closeable, null);
+ verify(closeable).close();
+ }
+
+ public void testTransfer() throws Exception {
+ String toBeRead = "Tadam";
+ ByteArrayInputStream bais = new ByteArrayInputStream(toBeRead.getBytes());
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ Streams.transfer(bais, baos);
+ Assert.assertEquals(toBeRead, new String(baos.toByteArray()));
+ }
+
+ public void testReadBytes() throws Exception {
+ String toBeRead = "Tadam";
+ ByteArrayInputStream bais = new ByteArrayInputStream(toBeRead.getBytes());
+ byte[] bytes = Streams.readBytes(bais);
+ Assert.assertEquals(toBeRead, new String(bytes));
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/util/StringsTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/util/StringsTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/util/StringsTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/util/StringsTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,36 @@
+/*
+ * 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.felix.ipojo.manipulator.util;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+public class StringsTestCase extends TestCase {
+
+ private static final String CLASSNAME = StringsTestCase.class.getName();
+ private static final String PATH = "org/apache/felix/ipojo/manipulator/util/StringsTestCase.class";
+
+ public void testClassnameIsTransformedIntoNormalizedResourcePath() throws Exception {
+ Assert.assertEquals(PATH, Strings.asResourcePath(CLASSNAME));
+ }
+
+ public void testNormalizedResourcePathIsTransformedIntoClassname() throws Exception {
+ Assert.assertEquals(CLASSNAME, Strings.asClassName(PATH));
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/check/CheckFieldConsistencyResultVisitorTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/check/CheckFieldConsistencyResultVisitorTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/check/CheckFieldConsistencyResultVisitorTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/check/CheckFieldConsistencyResultVisitorTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,91 @@
+/**
+ * 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.felix.ipojo.manipulator.visitor.check;
+
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.manipulator.ManipulationResultVisitor;
+import org.apache.felix.ipojo.manipulator.Reporter;
+import org.apache.felix.ipojo.metadata.Attribute;
+import org.apache.felix.ipojo.metadata.Element;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import static org.mockito.Mockito.*;
+
+
+public class CheckFieldConsistencyResultVisitorTestCase extends TestCase {
+
+ @Mock
+ private Reporter reporter;
+
+ @Mock
+ private ManipulationResultVisitor delegate;
+
+ @Override
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ public void testVisitClassStructureOK() throws Exception {
+ Element component = newComponentElement();
+ CheckFieldConsistencyResultVisitor visitor = new CheckFieldConsistencyResultVisitor(delegate);
+ visitor.setReporter(reporter);
+ visitor.setMetadata(component);
+
+ Element manipulation = newManipulationElement(true);
+ visitor.visitClassStructure(manipulation);
+
+ verifyZeroInteractions(reporter);
+
+ }
+
+ public void testVisitClassStructureWithMissingFields() throws Exception {
+ Element component = newComponentElement();
+ CheckFieldConsistencyResultVisitor visitor = new CheckFieldConsistencyResultVisitor(delegate);
+ visitor.setReporter(reporter);
+ visitor.setMetadata(component);
+
+ Element manipulation = newManipulationElement(false);
+ visitor.visitClassStructure(manipulation);
+
+ verify(reporter).error(anyString());
+
+ }
+
+ private Element newManipulationElement(boolean complete) {
+ Element manipulation = new Element("manipulation", null);
+ if (complete) {
+ Element field = new Element("field", null);
+ field.addAttribute(new Attribute("name", "property"));
+ manipulation.addElement(field);
+ }
+
+ return manipulation;
+ }
+
+ private Element newComponentElement() {
+ Element component = new Element("component", null);
+ Element requires = new Element("requires", null);
+ requires.addAttribute(new Attribute("field", "property"));
+ component.addElement(requires);
+
+ return component;
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/writer/ManipulatedResourcesWriterTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/writer/ManipulatedResourcesWriterTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/writer/ManipulatedResourcesWriterTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/writer/ManipulatedResourcesWriterTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,64 @@
+/**
+ * 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.felix.ipojo.manipulator.visitor.writer;
+
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.manipulator.Reporter;
+import org.apache.felix.ipojo.manipulator.ResourceStore;
+import org.apache.felix.ipojo.metadata.Element;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import static org.mockito.Mockito.*;
+
+
+public class ManipulatedResourcesWriterTestCase extends TestCase {
+
+ @Mock
+ private Reporter reporter;
+
+ @Mock
+ private ResourceStore store;
+
+ @Override
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ public void testVisitManipulationResult() throws Exception {
+ ManipulatedResourcesWriter writer = new ManipulatedResourcesWriter();
+ writer.setReporter(reporter);
+ writer.setResourceStore(store);
+
+ Element component = new Element("component", null);
+ assertNotNull(writer.visitManipulationResult(component));
+ verify(store).writeMetadata(same(component));
+ }
+
+ public void testVisitMetadata() throws Exception {
+ ManipulatedResourcesWriter writer = new ManipulatedResourcesWriter();
+ writer.setReporter(reporter);
+ writer.setResourceStore(store);
+
+ Element instance = new Element("instance", null);
+ writer.visitMetadata(instance);
+ verify(store).writeMetadata(same(instance));
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/writer/ManipulatedResultWriterTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/writer/ManipulatedResultWriterTestCase.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/writer/ManipulatedResultWriterTestCase.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/org/apache/felix/ipojo/manipulator/visitor/writer/ManipulatedResultWriterTestCase.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,56 @@
+/**
+ * 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.felix.ipojo.manipulator.visitor.writer;
+
+import junit.framework.TestCase;
+import org.apache.felix.ipojo.metadata.Element;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+
+import static org.mockito.Mockito.*;
+
+
+public class ManipulatedResultWriterTestCase extends TestCase {
+
+ @Spy
+ private Element element = new Element("component", null);
+
+ @Override
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ public void testVisitClassStructure() throws Exception {
+ ManipulatedResultWriter writer = new ManipulatedResultWriter(element);
+
+ Element manipulation = new Element("manipulation", null);
+ writer.visitClassStructure(manipulation);
+ verify(element).addElement(same(manipulation));
+ }
+
+ public void testVisitManipulatedResource() throws Exception {
+ ManipulatedResultWriter writer = new ManipulatedResultWriter(element);
+
+ writer.visitManipulatedResource("test.class", "Hello".getBytes());
+
+ assertNotNull(writer.getResources().get("test.class"));
+ assertEquals("Hello", new String(writer.getResources().get("test.class")));
+ }
+}
Added: felix/trunk/ipojo/manipulator/src/test/java/test/AnnotatedComponent.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/java/test/AnnotatedComponent.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/java/test/AnnotatedComponent.java (added)
+++ felix/trunk/ipojo/manipulator/src/test/java/test/AnnotatedComponent.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,18 @@
+package test;
+
+import org.apache.felix.ipojo.annotations.Component;
+import org.apache.felix.ipojo.annotations.Property;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: guillaume
+ * Date: 10/08/11
+ * Time: 21:56
+ * To change this template use File | Settings | File Templates.
+ */
+@Component
+public class AnnotatedComponent {
+
+ @Property
+ private String prop;
+}
Added: felix/trunk/ipojo/manipulator/src/test/resources/MANIFEST.MF
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/resources/MANIFEST.MF?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/resources/MANIFEST.MF (added)
+++ felix/trunk/ipojo/manipulator/src/test/resources/MANIFEST.MF Thu Aug 18 11:32:19 2011
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Export-Package: org.apache.felix.ipojo.test.scenarios.manipulation.ser
+ vice
+Test-Suite: org.apache.felix.ipojo.test.scenarios.manipulation.Manipul
+ ationTestSuite
+Built-By: clement
+Tool: Bnd-0.0.357
+Bundle-Name: iPOJO Manipulation Test Suite For Java 5
+Created-By: Apache Maven Bundle Plugin
+Build-Jdk: 1.6.0_22
+Bundle-Version: 1.5.0.SNAPSHOT
+Bnd-LastModified: 1292008458378
+Bundle-ManifestVersion: 2
+Import-Package: junit.framework,org.apache.felix.ipojo;version="1.6",o
+ rg.apache.felix.ipojo.junit4osgi,org.apache.felix.ipojo.junit4osgi.he
+ lpers,org.apache.felix.ipojo.test.scenarios.manipulation.service,org.
+ osgi.framework;version="1.5"
+Bundle-SymbolicName: tests.manipulation.java5
+
Added: felix/trunk/ipojo/manipulator/src/test/resources/empty-metadata.xml
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/src/test/resources/empty-metadata.xml?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/manipulator/src/test/resources/empty-metadata.xml (added)
+++ felix/trunk/ipojo/manipulator/src/test/resources/empty-metadata.xml Thu Aug 18 11:32:19 2011
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<ipojo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/SNAPSHOT/core.xsd"
+ xmlns="org.apache.felix.ipojo" />
Modified: felix/trunk/ipojo/plugin/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/plugin/pom.xml?rev=1159173&r1=1159172&r2=1159173&view=diff
==============================================================================
--- felix/trunk/ipojo/plugin/pom.xml (original)
+++ felix/trunk/ipojo/plugin/pom.xml Thu Aug 18 11:32:19 2011
@@ -118,6 +118,14 @@
<configLocation>http://felix.apache.org/ipojo/dev/checkstyle_ipojo.xml</configLocation>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
</plugins>
</build>
</project>
Modified: felix/trunk/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/ManipulatorMojo.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/ManipulatorMojo.java?rev=1159173&r1=1159172&r2=1159173&view=diff
==============================================================================
--- felix/trunk/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/ManipulatorMojo.java (original)
+++ felix/trunk/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/ManipulatorMojo.java Thu Aug 18 11:32:19 2011
@@ -25,6 +25,7 @@ import java.util.Arrays;
import java.util.List;
import org.apache.felix.ipojo.manipulator.Pojoization;
+import org.apache.felix.ipojo.manipulator.Reporter;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
@@ -222,7 +223,8 @@ public class ManipulatorMojo extends Abs
File out = new File(m_buildDirectory + File.separator + "_out.jar");
- Pojoization pojo = new Pojoization();
+ Reporter reporter = new MavenReporter(getLog());
+ Pojoization pojo = new Pojoization(reporter);
if (m_ignoreAnnotations) { pojo.disableAnnotationProcessing(); }
if (!m_ignoreEmbeddedXSD) { pojo.setUseLocalXSD(); }
@@ -237,10 +239,12 @@ public class ManipulatorMojo extends Abs
pojo.pojoization(in, out, is);
}
- for (int i = 0; i < pojo.getWarnings().size(); i++) {
- getLog().warn((String) pojo.getWarnings().get(i));
+ for (int i = 0; i < reporter.getWarnings().size(); i++) {
+ getLog().warn((String) reporter.getWarnings().get(i));
+ }
+ if (reporter.getErrors().size() > 0) {
+ throw new MojoExecutionException((String) reporter.getErrors().get(0));
}
- if (pojo.getErrors().size() > 0) { throw new MojoExecutionException((String) pojo.getErrors().get(0)); }
if (m_classifier != null) {
// The user want to attach the resulting jar
Added: felix/trunk/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/MavenReporter.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/MavenReporter.java?rev=1159173&view=auto
==============================================================================
--- felix/trunk/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/MavenReporter.java (added)
+++ felix/trunk/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/MavenReporter.java Thu Aug 18 11:32:19 2011
@@ -0,0 +1,86 @@
+/*
+ * 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.felix.ipojo.plugin;
+
+import org.apache.felix.ipojo.manipulator.reporter.EmptyReporter;
+import org.apache.maven.plugin.logging.Log;
+
+/**
+ * A {@code MavenReporter} wraps a maven logging system into an iPOJO Reporter.
+ *
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
+ */
+public class MavenReporter extends EmptyReporter {
+
+ /**
+ * Maven logger.
+ */
+ private Log log;
+
+ public MavenReporter(Log log) {
+ this.log = log;
+ }
+
+ @Override
+ public void trace(String message, Object... args) {
+ String formatted = String.format(message, getMessageArguments(args));
+ Throwable t = getThrowable(args);
+ if (t != null) {
+ log.debug(formatted, t);
+ } else {
+ log.debug(formatted);
+ }
+ }
+
+ @Override
+ public void info(String message, Object... args) {
+ String formatted = String.format(message, getMessageArguments(args));
+ Throwable t = getThrowable(args);
+ if (t != null) {
+ log.info(formatted, t);
+ } else {
+ log.info(formatted);
+ }
+ }
+
+ @Override
+ public void warn(String message, Object... args) {
+ String formatted = String.format(message, getMessageArguments(args));
+ Throwable t = getThrowable(args);
+ if (t != null) {
+ log.warn(formatted, t);
+ } else {
+ log.warn(formatted);
+ }
+ getWarnings().add(formatted);
+ }
+
+ @Override
+ public void error(String message, Object... args) {
+ String formatted = String.format(message, getMessageArguments(args));
+ Throwable t = getThrowable(args);
+ if (t != null) {
+ log.error(formatted, t);
+ } else {
+ log.error(formatted);
+ }
+ getErrors().add(formatted);
+ }
+}