RYA-232 - Create a Mongo profile for deploy rest service; Closes #133

Project: http://git-wip-us.apache.org/repos/asf/incubator-rya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rya/commit/591675e0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rya/tree/591675e0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rya/diff/591675e0

Branch: refs/heads/master
Commit: 591675e07b3bbe50f87998c6d61f84766710ec80
Parents: 9022484
Author: Lynne Lawrence <lynne...@comcast.net>
Authored: Thu Dec 22 15:46:41 2016 -0500
Committer: pujav65 <puja...@gmail.com>
Committed: Tue Jan 3 15:10:06 2017 -0500

----------------------------------------------------------------------
 README.md                                       |  29 +++-
 web/web.rya/pom.xml                             | 132 ++++++++++++-------
 web/web.rya/resources/environment.properties    |   2 +-
 .../webapp/WEB-INF/spring/spring-mongodb.xml    |   2 +-
 .../WEB-INF/spring/spring-root-accumulo.xml     |  68 ++++++++++
 .../WEB-INF/spring/spring-root-mongodb.xml      |  53 ++++++++
 .../main/webapp/WEB-INF/spring/spring-root.xml  |  68 ----------
 web/web.rya/src/main/webapp/WEB-INF/web.xml     |   2 +-
 8 files changed, 239 insertions(+), 117 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/591675e0/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index e129033..70414fe 100644
--- a/README.md
+++ b/README.md
@@ -61,7 +61,15 @@ Run the command to build the code `mvn clean install`
 
 If all goes well, the build should be successful and a war should be produced 
in `web/web.rya/target/web.rya.war`
 
-Note: To perform a build of the geomesa/lucene indexing, run the build with 
the profile 'indexing' `mvn clean install -P indexing`
+Note: The following profiles are available to tailor the build:
+
+
+| Profile ID | Purpose |
+| ---------- | ------- |
+| geoindexing | perform a build of the geomesa/lucene indexing |
+| mongodb | build with mongoDB configuration (defaults to accumulo) |
+
+To run the build with the profile 'geoindexing' `mvn clean install -P 
geoindexing`.
 
 Note: If you are building on windows, you will need hadoop-common 2.6.0's 
`winutils.exe` and `hadoop.dll`.  You can download it from 
[here](https://github.com/amihalik/hadoop-common-2.6.0-bin/archive/master.zip). 
 This build requires the [Visual C++ Redistributable for Visual Studio 2015 
(x64)](https://www.microsoft.com/en-us/download/details.aspx?id=48145).   Also 
you will need to set your path and Hadoop home using the commands below:
 
@@ -74,7 +82,9 @@ set PATH=%PATH%;c:\hadoop-common-2.6.0-bin\bin
 
 Unwar the above war into the webapps directory.
 
-To point the web.rya war to the appropriate Accumulo instance, make a 
properties file `environment.properties` and put it in the classpath. Here is 
an example:
+To point the web.rya war to the appropriate database instance, make a 
properties file `environment.properties` and put it in the classpath. 
+
+Here is an example for accumulo:
 
 ```
 instance.name=accumulo  #Accumulo instance name
@@ -85,6 +95,21 @@ rya.tableprefix=triplestore_  #Rya Table Prefix
 rya.displayqueryplan=true  #To display the query plan
 ```
 
+Here is an example for mongoDB (populate user/userpassword if authentication 
to mongoDB required):
+```
+rya.displayqueryplan=true
+sc.useMongo=true
+sc.use_freetext=true
+sc.geo.predicates=http://www.opengis.net/ont/geosparql#asWKT
+sc.freetext.predicates=http://www.w3.org/2000/01/rdf-schema#label
+mongo.db.instance=localhost
+mongo.db.port=27017
+mongo.db.name=rya
+mongo.db.collectionprefix=rya_
+mongo.db.user=
+mongo.db.userpassword=
+mongo.geo.maxdist=1e-10
+```
 Start the Tomcat server. `./bin/startup.sh`
 
 ## Usage

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/591675e0/web/web.rya/pom.xml
----------------------------------------------------------------------
diff --git a/web/web.rya/pom.xml b/web/web.rya/pom.xml
index 97d5d30..b3918d9 100644
--- a/web/web.rya/pom.xml
+++ b/web/web.rya/pom.xml
@@ -106,48 +106,92 @@ under the License.
             <artifactId>commons-pool</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-    <build>
-        <finalName>web.rya</finalName>
-        <plugins>
-            <plugin>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>maven-jetty-plugin</artifactId>
-                <version>6.1.26</version>
-                <configuration>
-                    <webAppConfig>
-                        <contextPath>/web.rya</contextPath>
-                        <extraClasspath>resources</extraClasspath>
-                    </webAppConfig>
-                </configuration>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.rat</groupId>
-                    <artifactId>apache-rat-plugin</artifactId>
-                    <configuration>
-                        <excludes>
-                            <!-- RDF data Files -->
-                            <exclude>**/*.trig</exclude>
-                            <exclude>**/*.nt</exclude>
-                            <!-- data file -->
-                            <exclude>**/*.data</exclude>
-                        </excludes>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-all</artifactId>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+       <build>
+               <finalName>web.rya</finalName>
+               <resources>
+                       <resource>
+                               <!-- filter the web.xml so the correct 
db-related spring-root.xml will 
+                                       be used -->
+                               <!-- based on the profile settings, below. -->
+                               
<targetPath>${project.build.directory}</targetPath>
+                               <filtering>true</filtering>
+                               <directory>src/main/webapp/WEB-INF</directory>
+                               <includes>
+                                       <include>web.xml</include>
+                               </includes>
+                       </resource>
+               </resources>
+               <plugins>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-war-plugin</artifactId>
+                               <configuration>
+                                       <!-- Use the web.xml that was filtered 
in the resources section. -->
+                                       
<webXml>${project.build.directory}/web.xml</webXml>
+                               </configuration>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.eclipse.jetty</groupId>
+                               <artifactId>jetty-maven-plugin</artifactId>
+                               <version>9.4.0.v20161208</version>
+                               <configuration>
+                                       
<scanIntervalSeconds>10</scanIntervalSeconds>
+                                       <webApp>
+                                               
<contextPath>/web.rya</contextPath>
+                                               
<extraClasspath>resources</extraClasspath>
+                                               <!-- Use the web.xml that was 
filtered in the resources section. -->
+                                               
<descriptor>${project.build.directory}/web.xml</descriptor>
+                                       </webApp>
+                               </configuration>
+                       </plugin>
+               </plugins>
+               <pluginManagement>
+                       <plugins>
+                               <plugin>
+                                       <groupId>org.apache.rat</groupId>
+                                       
<artifactId>apache-rat-plugin</artifactId>
+                                       <configuration>
+                                               <excludes>
+                                                       <!-- RDF data Files -->
+                                                       
<exclude>**/*.trig</exclude>
+                                                       
<exclude>**/*.nt</exclude>
+                                                       <!-- data file -->
+                                                       
<exclude>**/*.data</exclude>
+                                               </excludes>
+                                       </configuration>
+                               </plugin>
+                       </plugins>
+               </pluginManagement>
+       </build>
+       <profiles>
+               <profile>
+                       <id>nodbspecified</id>
+                       <activation>
+                               <property>
+                                       <name>!db.specified</name>
+                               </property>
+                       </activation>
+                       <properties>
+                               
<database.implementation>accumulo</database.implementation>
+                       </properties>
+               </profile>
+               <profile>
+                       <id>mongodb</id>
+                       <properties>
+                               <db.specified>true</db.specified>
+                               
<database.implementation>mongodb</database.implementation>
+                       </properties>
+               </profile>
+       </profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/591675e0/web/web.rya/resources/environment.properties
----------------------------------------------------------------------
diff --git a/web/web.rya/resources/environment.properties 
b/web/web.rya/resources/environment.properties
index 7848a4e..2a9ffe7 100644
--- a/web/web.rya/resources/environment.properties
+++ b/web/web.rya/resources/environment.properties
@@ -24,4 +24,4 @@ rya.displayqueryplan=true
 mongo.db.collectionprefix=rya_
 mongo.db.instance=localhost
 mongo.db.name=rya
-mongo.db.port=21017
+mongo.db.port=27017

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/591675e0/web/web.rya/src/main/webapp/WEB-INF/spring/spring-mongodb.xml
----------------------------------------------------------------------
diff --git a/web/web.rya/src/main/webapp/WEB-INF/spring/spring-mongodb.xml 
b/web/web.rya/src/main/webapp/WEB-INF/spring/spring-mongodb.xml
index 5891cee..e99ec5f 100644
--- a/web/web.rya/src/main/webapp/WEB-INF/spring/spring-mongodb.xml
+++ b/web/web.rya/src/main/webapp/WEB-INF/spring/spring-mongodb.xml
@@ -38,6 +38,6 @@ under the License.
     </bean>
 
        <bean id="ryaDAO" class="org.apache.rya.mongodb.MongoDBRyaDAO" 
init-method="init" destroy-method="destroy">
-        <property name="conf" ref="conf"/>
+        <constructor-arg ref="conf"/>
     </bean>
 </beans>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/591675e0/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root-accumulo.xml
----------------------------------------------------------------------
diff --git 
a/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root-accumulo.xml 
b/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root-accumulo.xml
new file mode 100644
index 0000000..126df0e
--- /dev/null
+++ b/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root-accumulo.xml
@@ -0,0 +1,68 @@
+<?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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:p="http://www.springframework.org/schema/p";
+       xmlns:context="http://www.springframework.org/schema/context";
+       xmlns:util="http://www.springframework.org/schema/util";
+       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+                               http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-2.5.xsd
+                               http://www.springframework.org/schema/util 
http://www.springframework.org/schema/util/spring-util-3.0.xsd";>
+
+    <bean id="environmentProperties" 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+        <property name="location" value="classpath:environment.properties"/>
+    </bean>
+
+       <context:component-scan base-package="org.apache.cloud.rdf.web.sail" />
+
+       <import resource="spring-security.xml"/>        
+       <import resource="spring-accumulo.xml"/>
+
+       <bean id="inferenceEngine" 
class="org.apache.rya.rdftriplestore.inference.InferenceEngine" 
init-method="init" destroy-method="destroy">
+        <property name="ryaDAO" ref="ryaDAO"/>
+        <property name="conf" ref="conf"/>
+       </bean>
+    
+    <bean id="prospectTableName" 
class="org.apache.rya.prospector.service.ProspectorServiceEvalStatsDAO" 
factory-method="getProspectTableName">
+        <constructor-arg ref="conf"/>
+    </bean>
+    
+    <bean id="prospectorService" 
class="org.apache.rya.prospector.service.ProspectorService">
+        <constructor-arg ref="connector"/>
+        <constructor-arg ref="prospectTableName"/>
+    </bean>
+    
+    <bean id="rdfEvalStatsDAO" 
class="org.apache.rya.prospector.service.ProspectorServiceEvalStatsDAO">
+        <property name="prospectorService" ref="prospectorService"/>
+        <property name="conf" ref="conf"/>
+    </bean>
+
+       <bean id="rts" 
class="org.apache.rya.rdftriplestore.RdfCloudTripleStore">
+        <property name="ryaDAO" ref="ryaDAO"/>
+        <property name="rdfEvalStatsDAO" ref="rdfEvalStatsDAO"/>
+        <property name="inferenceEngine" ref="inferenceEngine"/>
+        <property name="conf" ref="conf"/>
+       </bean>
+
+       <bean id="sailRepo" 
class="org.apache.rya.rdftriplestore.RyaSailRepository" 
init-method="initialize" destroy-method="shutDown">
+        <constructor-arg ref="rts"/>
+       </bean>
+</beans>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/591675e0/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root-mongodb.xml
----------------------------------------------------------------------
diff --git a/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root-mongodb.xml 
b/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root-mongodb.xml
new file mode 100644
index 0000000..321890c
--- /dev/null
+++ b/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root-mongodb.xml
@@ -0,0 +1,53 @@
+<?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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:p="http://www.springframework.org/schema/p";
+       xmlns:context="http://www.springframework.org/schema/context";
+       xmlns:util="http://www.springframework.org/schema/util";
+       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+                               http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-2.5.xsd
+                               http://www.springframework.org/schema/util 
http://www.springframework.org/schema/util/spring-util-3.0.xsd";>
+
+    <bean id="environmentProperties" 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+        <property name="location" value="classpath:environment.properties"/>
+    </bean>
+
+       <context:component-scan base-package="org.apache.cloud.rdf.web.sail" />
+
+       <import resource="spring-security.xml"/>        
+       <import resource="spring-mongodb.xml"/>
+
+       <bean id="inferenceEngine" 
class="org.apache.rya.rdftriplestore.inference.InferenceEngine" 
init-method="init" destroy-method="destroy">
+        <property name="ryaDAO" ref="ryaDAO"/>
+        <property name="conf" ref="conf"/>
+       </bean>
+    
+       <bean id="rts" 
class="org.apache.rya.rdftriplestore.RdfCloudTripleStore">
+        <property name="ryaDAO" ref="ryaDAO"/>
+        <property name="inferenceEngine" ref="inferenceEngine"/>
+        <property name="conf" ref="conf"/>
+       </bean>
+
+       <bean id="sailRepo" 
class="org.apache.rya.rdftriplestore.RyaSailRepository" 
init-method="initialize" destroy-method="shutDown">
+        <constructor-arg ref="rts"/>
+       </bean>
+</beans>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/591675e0/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root.xml
----------------------------------------------------------------------
diff --git a/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root.xml 
b/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root.xml
deleted file mode 100644
index 126df0e..0000000
--- a/web/web.rya/src/main/webapp/WEB-INF/spring/spring-root.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?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.
--->
-
-<beans xmlns="http://www.springframework.org/schema/beans";
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:p="http://www.springframework.org/schema/p";
-       xmlns:context="http://www.springframework.org/schema/context";
-       xmlns:util="http://www.springframework.org/schema/util";
-       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-                               http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-2.5.xsd
-                               http://www.springframework.org/schema/util 
http://www.springframework.org/schema/util/spring-util-3.0.xsd";>
-
-    <bean id="environmentProperties" 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
-        <property name="location" value="classpath:environment.properties"/>
-    </bean>
-
-       <context:component-scan base-package="org.apache.cloud.rdf.web.sail" />
-
-       <import resource="spring-security.xml"/>        
-       <import resource="spring-accumulo.xml"/>
-
-       <bean id="inferenceEngine" 
class="org.apache.rya.rdftriplestore.inference.InferenceEngine" 
init-method="init" destroy-method="destroy">
-        <property name="ryaDAO" ref="ryaDAO"/>
-        <property name="conf" ref="conf"/>
-       </bean>
-    
-    <bean id="prospectTableName" 
class="org.apache.rya.prospector.service.ProspectorServiceEvalStatsDAO" 
factory-method="getProspectTableName">
-        <constructor-arg ref="conf"/>
-    </bean>
-    
-    <bean id="prospectorService" 
class="org.apache.rya.prospector.service.ProspectorService">
-        <constructor-arg ref="connector"/>
-        <constructor-arg ref="prospectTableName"/>
-    </bean>
-    
-    <bean id="rdfEvalStatsDAO" 
class="org.apache.rya.prospector.service.ProspectorServiceEvalStatsDAO">
-        <property name="prospectorService" ref="prospectorService"/>
-        <property name="conf" ref="conf"/>
-    </bean>
-
-       <bean id="rts" 
class="org.apache.rya.rdftriplestore.RdfCloudTripleStore">
-        <property name="ryaDAO" ref="ryaDAO"/>
-        <property name="rdfEvalStatsDAO" ref="rdfEvalStatsDAO"/>
-        <property name="inferenceEngine" ref="inferenceEngine"/>
-        <property name="conf" ref="conf"/>
-       </bean>
-
-       <bean id="sailRepo" 
class="org.apache.rya.rdftriplestore.RyaSailRepository" 
init-method="initialize" destroy-method="shutDown">
-        <constructor-arg ref="rts"/>
-       </bean>
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/591675e0/web/web.rya/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/web/web.rya/src/main/webapp/WEB-INF/web.xml 
b/web/web.rya/src/main/webapp/WEB-INF/web.xml
index 0b8de72..a109ba7 100644
--- a/web/web.rya/src/main/webapp/WEB-INF/web.xml
+++ b/web/web.rya/src/main/webapp/WEB-INF/web.xml
@@ -30,7 +30,7 @@ under the License.
         <init-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>
-                /WEB-INF/spring/spring-root.xml
+                /WEB-INF/spring/spring-root-${database.implementation}.xml
             </param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>

Reply via email to