You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by vi...@apache.org on 2011/01/13 12:16:15 UTC
svn commit: r1058512 - in
/geronimo/samples/trunk/samples/osgi/showmethemoney: ./ showmethemoney-ds/
showmethemoney-ds/src/ showmethemoney-ds/src/main/
showmethemoney-ds/src/main/resources/
showmethemoney-ds/src/main/resources/OSGI-INF/ showmethemoney-...
Author: violalu
Date: Thu Jan 13 11:16:15 2011
New Revision: 1058512
URL: http://svn.apache.org/viewvc?rev=1058512&view=rev
Log:
GERONIMO-5715
Add datasource as osgi service.
Added:
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/pom.xml
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/main/
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/main/resources/
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/main/resources/OSGI-INF/
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/main/resources/OSGI-INF/blueprint/
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/main/resources/OSGI-INF/blueprint/blueprint.xml
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/util/
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/util/ServiceUtil.java
geronimo/samples/trunk/samples/osgi/showmethemoney/sql/
geronimo/samples/trunk/samples/osgi/showmethemoney/sql/MoneyDB.sql
Modified:
geronimo/samples/trunk/samples/osgi/showmethemoney/pom.xml
geronimo/samples/trunk/samples/osgi/showmethemoney/readme.txt
geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/ShowMoneyServlet.java
Modified: geronimo/samples/trunk/samples/osgi/showmethemoney/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/samples/trunk/samples/osgi/showmethemoney/pom.xml?rev=1058512&r1=1058511&r2=1058512&view=diff
==============================================================================
--- geronimo/samples/trunk/samples/osgi/showmethemoney/pom.xml (original)
+++ geronimo/samples/trunk/samples/osgi/showmethemoney/pom.xml Thu Jan 13 11:16:15 2011
@@ -16,9 +16,7 @@
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/xsd/maven-4.0.0.xsd">
+--><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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>osgi</artifactId>
@@ -39,5 +37,6 @@
<module>showmethemoney-api</module>
<module>showmethemoney-server</module>
<module>showmethemoney-web</module>
+ <module>showmethemoney-ds</module>
</modules>
</project>
\ No newline at end of file
Modified: geronimo/samples/trunk/samples/osgi/showmethemoney/readme.txt
URL: http://svn.apache.org/viewvc/geronimo/samples/trunk/samples/osgi/showmethemoney/readme.txt?rev=1058512&r1=1058511&r2=1058512&view=diff
==============================================================================
--- geronimo/samples/trunk/samples/osgi/showmethemoney/readme.txt (original)
+++ geronimo/samples/trunk/samples/osgi/showmethemoney/readme.txt Thu Jan 13 11:16:15 2011
@@ -24,12 +24,15 @@ INSTALL
1. Start Server, go to Geronimo directory, execute these commands from a command prompt:
cd %Geronimo_HOME%/bin
- geronimo.bat run
+ geronimo.bat run
2. Install Bundles. Press "enter", you can go into karaf command mode
geronimo>install file:/D:/samplesTrunk/samples/osgi/showmethemoney/showmethemoney-api/target/showmethemoney-api-3.0-SNAPSHOT.jar
geronimo>install file:/D:/samplesTrunk/samples/osgi/showmethemoney/showmethemoney-server/target/showmethemoney-server-3.0-SNAPSHOT.jar
-
- 3. Deploy web app using deployer tool.
+ geronimo>install file:/D:/samplesTrunk/samples/osgi/showmethemoney/showmethemoney-ds/target/showmethemoney-ds-3.0-SNAPSHOT.jar
+
+ 3. Run sql under sql/moneydb.sql against derby database moneydb
+
+ 4. Deploy web app using deployer tool.
cd %Geronimo_Home%/bin
deploy.[bat|sh] deploy D:/samplesTrunk/samples/osgi/showmethemoney/showmethemoney-web/showmethemoney-web-3.0-SNAPSHOT.war
Access http://[IP_Address]:8080/showmoney/
Added: geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/pom.xml?rev=1058512&view=auto
==============================================================================
--- geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/pom.xml (added)
+++ geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/pom.xml Thu Jan 13 11:16:15 2011
@@ -0,0 +1,63 @@
+<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>showmethemoney</artifactId>
+ <groupId>org.apache.geronimo.samples.osgi.showmethemoney</groupId>
+ <version>3.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>showmethemoney-ds</artifactId>
+ <packaging>bundle</packaging>
+
+ <name>Geronimo Samples :: OSGI Sample :: showmethemoney-ds</name>
+ <description>Show Me The Money Derby DataSource</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ </dependency>
+ <!--<dependency>
+ <groupId>org.apache.aries.transaction</groupId>
+ <artifactId>org.apache.aries.transaction.blueprint</artifactId>
+ <version>${ariesTransactionVersion}</version>
+ </dependency>-->
+ <dependency>
+ <groupId>org.apache.geronimo.components</groupId>
+ <artifactId>geronimo-transaction</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+ <Bundle-Version>${pom.version}</Bundle-Version>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added: geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL: http://svn.apache.org/viewvc/geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=1058512&view=auto
==============================================================================
--- geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/main/resources/OSGI-INF/blueprint/blueprint.xml (added)
+++ geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-ds/src/main/resources/OSGI-INF/blueprint/blueprint.xml Thu Jan 13 11:16:15 2011
@@ -0,0 +1,47 @@
+<?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.
+-->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ default-activation="eager">
+
+ <bean id="derbyXADataSource" class="org.apache.derby.jdbc.EmbeddedXADataSource">
+ <property name="databaseName" value="moneydb"/>
+ <!-- This creates the database on the fly. -->
+ <property name="createDatabase" value="create" />
+ </bean>
+
+ <service id="MoneyDataSource" ref="derbyXADataSource" interface="javax.sql.XADataSource">
+ <service-properties>
+ <entry key="osgi.jndi.service.name" value="jdbc/MoneyDataSource"/>
+ </service-properties>
+ </service>
+
+
+ <bean id="derbyDataSource" class="org.apache.derby.jdbc.EmbeddedDataSource">
+ <property name="databaseName" value="moneydb"/>
+ <!-- This creates the database on the fly. -->
+ <property name="createDatabase" value="create" />
+ </bean>
+
+ <service id="NoTxMoneyDataSource" ref="derbyDataSource" interface="javax.sql.DataSource">
+ <service-properties>
+ <entry key="osgi.jndi.service.name" value="jdbc/NoTxMoneyDataSource"/>
+ </service-properties>
+ </service>
+
+</blueprint>
Modified: geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/ShowMoneyServlet.java
URL: http://svn.apache.org/viewvc/geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/ShowMoneyServlet.java?rev=1058512&r1=1058511&r2=1058512&view=diff
==============================================================================
--- geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/ShowMoneyServlet.java (original)
+++ geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/ShowMoneyServlet.java Thu Jan 13 11:16:15 2011
@@ -20,6 +20,11 @@ import java.io.PrintWriter;
import java.io.IOException;
import javax.servlet.ServletException;
import java.lang.reflect.Method;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -35,8 +40,11 @@ import javax.naming.NameClassPair;
import javax.naming.NamingException;
import javax.naming.NamingEnumeration;
import javax.naming.Binding;
+import javax.sql.DataSource;
+import javax.sql.XADataSource;
import org.apache.geronimo.samples.osgi.showmethemoney.api.ShowMoneyService;
+import org.apache.geronimo.samples.osgi.showmethemoney.web.util.ServiceUtil;
/**
* Show me the money!
@@ -47,6 +55,10 @@ public class ShowMoneyServlet extends Ht
@Resource
private BundleContext bundleContext;
+ private DataSource dataSource= null;
+
+ Connection conn = null;
+ PreparedStatement stmt = null;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
@@ -64,10 +76,36 @@ public class ShowMoneyServlet extends Ht
Context ctx2 = (Context) ctx.lookup("osgi:service");
ShowMoneyService sm = (ShowMoneyService)ctx2.lookup("org.apache.geronimo.samples.osgi.showmethemoney.api.ShowMoneyService");
pw.println(sm.showmoney());
+
+ dataSource = (DataSource)ServiceUtil.getOSGIService(DataSource.class.getName(),"(osgi.jndi.service.name=jdbc/NoTxMoneyDataSource)");
+
+ try {
+conn = dataSource.getConnection();
+//conn.setAutoCommit(false);
+stmt = conn.prepareStatement("select * from customer");
+ResultSet rs = stmt.executeQuery();
+
+while (rs.next()){
+ pw.println(rs.getString("name"));
+}
+
+} catch (SQLException e) {
+// TODO Auto-generated catch block
+ pw.println(e.toString());
+}
+
} catch (NamingException e){
pw.println(e.toString());
- }
-
+ }
+ finally {
+ try {
+ stmt.close();
+conn.close();
+} catch (SQLException e) {
+// TODO Auto-generated catch block
+e.printStackTrace();
+}
+}
}
@Override
Added: geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/util/ServiceUtil.java
URL: http://svn.apache.org/viewvc/geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/util/ServiceUtil.java?rev=1058512&view=auto
==============================================================================
--- geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/util/ServiceUtil.java (added)
+++ geronimo/samples/trunk/samples/osgi/showmethemoney/showmethemoney-web/src/main/java/org/apache/geronimo/samples/osgi/showmethemoney/web/util/ServiceUtil.java Thu Jan 13 11:16:15 2011
@@ -0,0 +1,66 @@
+/**
+ * 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.geronimo.samples.osgi.showmethemoney.web.util;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+/**
+ * ServiceUtil provides servlet specific client side
+ * utility functions.
+ */
+public class ServiceUtil {
+private static final String OSGI_SERVICE_PREFIX = "osgi:service/";
+
+
+/**
+ * Lookup and return an osgi service
+ *
+ * @return Object
+ * @exception javax.io.IOException
+ * If an exception occurs during the service
+ * lookup
+ *
+ */
+ public static final Object getOSGIService(String serviceName) {
+
+ return getOSGIService(serviceName, null);
+ }
+
+ /**
+ * Lookup and return an osgi service
+ *
+ * @return Object
+ *
+ */
+ public static final Object getOSGIService(String serviceName, String filter) {
+
+ String name = OSGI_SERVICE_PREFIX + serviceName;
+ if (filter != null) {
+ name = name + "/" + filter;
+ }
+
+ try {
+ InitialContext ic = new InitialContext();
+ return ic.lookup(name);
+ } catch (NamingException e) {
+
+ e.printStackTrace();
+ return null;
+ }
+ }
+}
\ No newline at end of file
Added: geronimo/samples/trunk/samples/osgi/showmethemoney/sql/MoneyDB.sql
URL: http://svn.apache.org/viewvc/geronimo/samples/trunk/samples/osgi/showmethemoney/sql/MoneyDB.sql?rev=1058512&view=auto
==============================================================================
--- geronimo/samples/trunk/samples/osgi/showmethemoney/sql/MoneyDB.sql (added)
+++ geronimo/samples/trunk/samples/osgi/showmethemoney/sql/MoneyDB.sql Thu Jan 13 11:16:15 2011
@@ -0,0 +1,18 @@
+-- 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.
+CREATE TABLE Customer( customerId VARCHAR(255) PRIMARY KEY,name VARCHAR(255));
+
+
+INSERT INTO Customer(customerId, name) VALUES('12345','John Doe');