Author: rmannibucau
Date: Tue Jun 5 00:20:20 2012
New Revision: 1346198
URL: http://svn.apache.org/viewvc?rev=1346198&view=rev
Log:
adding deltaspike-configproperty
Added:
openejb/trunk/openejb/examples/deltaspike-configproperty/
openejb/trunk/openejb/examples/deltaspike-configproperty/pom.xml
openejb/trunk/openejb/examples/deltaspike-configproperty/src/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/beans.xml
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/services/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSourceProvider
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/my-app-config.properties
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/org/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/org/superbiz/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/org/superbiz/deltaspike/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/org/superbiz/deltaspike/config/
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/org/superbiz/deltaspike/config/ConfigTest.java
Modified:
openejb/trunk/openejb/examples/pom.xml
Added: openejb/trunk/openejb/examples/deltaspike-configproperty/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/deltaspike-configproperty/pom.xml?rev=1346198&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/deltaspike-configproperty/pom.xml (added)
+++ openejb/trunk/openejb/examples/deltaspike-configproperty/pom.xml Tue Jun 5
00:20:20 2012
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.superbiz</groupId>
+ <artifactId>deltaspike-configproperty</artifactId>
+ <packaging>jar</packaging>
+ <version>1.1-SNAPSHOT</version>
+ <name>OpenEJB :: Examples :: DeltaSpike @ConfigProperty</name>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <build>
+ <defaultGoal>install</defaultGoal>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <repositories>
+ <repository>
+ <id>apache-m2-snapshot</id>
+ <name>Apache Snapshot Repository</name>
+ <url>http://repository.apache.org/snapshots</url>
+ </repository>
+ </repositories>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>javaee-api</artifactId>
+ <version>6.0-3</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.deltaspike.core</groupId>
+ <artifactId>deltaspike-core-impl</artifactId>
+ <version>0.2-incubating</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.deltaspike.core</groupId>
+ <artifactId>deltaspike-core-api</artifactId>
+ <version>0.2-incubating</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.10</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- The <scope>test</scope> guarantees that none of your runtime code
+ is dependent on any OpenEJB classes. -->
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>arquillian-openejb-embedded-4</artifactId>
+ <version>4.1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>ziplock</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <!-- This section allows you to configure where to publish libraries for
+ sharing. It is not required and may be deleted. For more information see:
+ http://maven.apache.org/plugins/maven-deploy-plugin/ -->
+ <distributionManagement>
+ <repository>
+ <id>localhost</id>
+ <url>file://${basedir}/target/repo/</url>
+ </repository>
+ <snapshotRepository>
+ <id>localhost</id>
+ <url>file://${basedir}/target/snapshot-repo/</url>
+ </snapshotRepository>
+ </distributionManagement>
+
+</project>
Added:
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java?rev=1346198&view=auto
==============================================================================
---
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java
(added)
+++
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java
Tue Jun 5 00:20:20 2012
@@ -0,0 +1,19 @@
+package org.superbiz.deltaspike.config;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import org.apache.deltaspike.core.api.config.annotation.ConfigProperty;
+
+@ApplicationScoped
+public class Counter {
+ @Inject
+ @ConfigProperty(name = "loop.size")
+ private Integer iterations;
+
+ public int loop() {
+ for (int i = 0; i < iterations; i++) {
+ System.out.println("Iteration #" + i);
+ }
+ return iterations;
+ }
+}
Added:
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java?rev=1346198&view=auto
==============================================================================
---
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java
(added)
+++
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java
Tue Jun 5 00:20:20 2012
@@ -0,0 +1,50 @@
+package org.superbiz.deltaspike.config;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.Map;
+import java.util.Properties;
+import java.util.logging.Logger;
+import org.apache.deltaspike.core.impl.config.BaseConfigSource;
+import org.apache.deltaspike.core.util.PropertyFileUtils;
+
+public class MyConfigSource extends BaseConfigSource {
+ private static final Logger LOGGER =
Logger.getLogger(MyConfigSource.class.getName());
+ private static final String MY_CONF_FILE_NAME = "my-app-config.properties";
+
+ private final Properties properties;
+
+ public MyConfigSource() {
+ final Enumeration<URL> in;
+ try {
+ in =
Thread.currentThread().getContextClassLoader().getResources(MY_CONF_FILE_NAME);
+ } catch (IOException e) {
+ throw new IllegalArgumentException("can't find " +
MY_CONF_FILE_NAME, e);
+ }
+
+ properties = new Properties();
+
+ while (in.hasMoreElements()) {
+ final Properties currentProps =
PropertyFileUtils.loadProperties(in.nextElement());
+ for (Map.Entry<Object, Object> key : currentProps.entrySet()) { //
some check
+ if (properties.containsKey(key.getKey().toString())) {
+ LOGGER.warning("found " + key.getKey() + " multiple times,
only one value will be available.");
+ }
+ }
+ properties.putAll(currentProps);
+ }
+
+ initOrdinal(401); // before other sources
+ }
+
+ @Override
+ public String getPropertyValue(String key) {
+ return properties.getProperty(key);
+ }
+
+ @Override
+ public String getConfigName() {
+ return MY_CONF_FILE_NAME;
+ }
+}
Added:
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java?rev=1346198&view=auto
==============================================================================
---
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java
(added)
+++
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java
Tue Jun 5 00:20:20 2012
@@ -0,0 +1,13 @@
+package org.superbiz.deltaspike.config;
+
+import java.util.Arrays;
+import java.util.List;
+import org.apache.deltaspike.core.spi.config.ConfigSource;
+import org.apache.deltaspike.core.spi.config.ConfigSourceProvider;
+
+public class MyConfigSourceProvider implements ConfigSourceProvider {
+ @Override
+ public List<ConfigSource> getConfigSources() {
+ return Arrays.asList((ConfigSource) new MyConfigSource());
+ }
+}
Added:
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/beans.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/beans.xml?rev=1346198&view=auto
==============================================================================
---
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/beans.xml
(added)
+++
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/beans.xml
Tue Jun 5 00:20:20 2012
@@ -0,0 +1,4 @@
+<beans xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+ http://java.sun.com/xml/ns/javaee/beans_1_0.xsd" />
Added:
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSourceProvider
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSourceProvider?rev=1346198&view=auto
==============================================================================
---
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSourceProvider
(added)
+++
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSourceProvider
Tue Jun 5 00:20:20 2012
@@ -0,0 +1 @@
+org.superbiz.deltaspike.config.MyConfigSourceProvider
Added:
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/my-app-config.properties
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/my-app-config.properties?rev=1346198&view=auto
==============================================================================
---
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/my-app-config.properties
(added)
+++
openejb/trunk/openejb/examples/deltaspike-configproperty/src/main/resources/my-app-config.properties
Tue Jun 5 00:20:20 2012
@@ -0,0 +1,3 @@
+# this config file is hooked up through a custom ConfigSource
+# (see org.superbiz.deltaspike.config.MyConfigSource)
+loop.size = 10
Added:
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/org/superbiz/deltaspike/config/ConfigTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/org/superbiz/deltaspike/config/ConfigTest.java?rev=1346198&view=auto
==============================================================================
---
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/org/superbiz/deltaspike/config/ConfigTest.java
(added)
+++
openejb/trunk/openejb/examples/deltaspike-configproperty/src/test/java/org/superbiz/deltaspike/config/ConfigTest.java
Tue Jun 5 00:20:20 2012
@@ -0,0 +1,41 @@
+package org.superbiz.deltaspike.config;
+
+import javax.inject.Inject;
+import org.apache.deltaspike.core.impl.config.DefaultConfigSourceProvider;
+import org.apache.deltaspike.core.spi.config.ConfigSourceProvider;
+import org.apache.openjpa.lib.conf.MapConfigurationProvider;
+import org.apache.ziplock.JarLocation;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.ArchivePaths;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
+import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.assertNotNull;
+
+@RunWith(Arquillian.class)
+public class ConfigTest {
+ @Inject
+ private Counter counter;
+
+ @Deployment
+ public static WebArchive jar() {
+ return ShrinkWrap.create(WebArchive.class)
+ .addClasses(Counter.class, MyConfigSource.class,
MapConfigurationProvider.class)
+ .addAsWebInfResource(EmptyAsset.INSTANCE,
ArchivePaths.create("beans.xml"))
+ .addAsResource(new
ClassLoaderAsset("my-app-config.properties"), "my-app-config.properties")
+
.addAsLibraries(JarLocation.jarLocation(ConfigSourceProvider.class))
+
.addAsLibraries(JarLocation.jarLocation(DefaultConfigSourceProvider.class))
+ .addAsServiceProvider(ConfigSourceProvider.class,
MyConfigSourceProvider.class);
+ }
+
+ @Test
+ public void check() {
+ assertNotNull(counter);
+ counter.loop();
+ }
+}
Modified: openejb/trunk/openejb/examples/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/pom.xml?rev=1346198&r1=1346197&r2=1346198&view=diff
==============================================================================
--- openejb/trunk/openejb/examples/pom.xml (original)
+++ openejb/trunk/openejb/examples/pom.xml Tue Jun 5 00:20:20 2012
@@ -51,6 +51,7 @@
<module>datasource-ciphered-password</module>
<module>datasource-definition</module>
<module>decorators</module>
+ <module>deltaspike-configproperty</module>
<module>dynamic-dao-implementation</module>
<module>dynamic-datasource-routing</module>
<module>dynamic-implementation</module>