You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by it...@apache.org on 2009/12/15 00:06:51 UTC

svn commit: r890541 - /incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java

Author: ito
Date: Mon Dec 14 23:06:50 2009
New Revision: 890541

URL: http://svn.apache.org/viewvc?rev=890541&view=rev
Log:
CLEREZZA-27: SPARQL performance test added

Added:
    incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java

Added: incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java?rev=890541&view=auto
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java (added)
+++ incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java Mon Dec 14 23:06:50 2009
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2009 trialox.org (trialox AG, Switzerland).
+ *
+ * Licensed 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.clerezza.integrationtest.web.performance;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import java.net.URLEncoder;
+import org.apache.commons.codec.binary.Base64;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.apache.clerezza.integrationtest.web.framework.WebTestCase;
+
+/**
+ *
+ * A <code>WebTestCase</code> for testing the SPAQRL endpoint. The test creates
+ * a SPARQL CONSTRUCT query and send a GET-request. The request accepts
+ * "application/rdf+xml" 
+ *
+ * @scr.component
+ * @scr.service 
+ *              interface="org.clerezza.integrationtest.web.framework.WebTestCase"
+ * 
+ * @author tio
+ * 
+ */
+public class GetSparqlQuery implements WebTestCase {
+
+	/**
+	 * Service property
+	 * 
+	 * @scr.property type="Integer" value="10" description=
+	 *               "Specifies the number of threads to execute the run method."
+	 */
+	public static final String THREAD_COUNT = "threadCount";
+	/**
+	 * Service property
+	 * 
+	 * @scr.property value="admin" description=
+	 *               "Specifies the user name used in the authorization header."
+	 */
+	public static final String USER_NAME = "user";
+	private String username;
+	/**
+	 * Service property
+	 * 
+	 * @scr.property value="admin" description=
+	 *               "Specifies the user password used in the authorization header."
+	 */
+	public static final String USER_PASSWORD = "password";
+	private String password;
+	private static final String UTF8 = "UTF-8";
+	private String requestUri;
+	private String query;
+	final Logger logger = LoggerFactory.getLogger(GetSparqlQuery.class);
+
+	protected void activate(ComponentContext componentContext) {
+		username = (String) componentContext.getProperties().get(USER_NAME);
+		password = (String) componentContext.getProperties().get(USER_PASSWORD);
+	}
+
+	@Override
+	public void init(String testSubjectUriPrefix) {
+
+		logger.info("Init sparql query get request");
+
+		query = "CONSTRUCT { <http://example.org> " +
+				"<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?x . }" +
+				"WHERE { ?y <http://clerezza.org/2009/04/typerendering#mediaType> ?x . }";
+		requestUri = testSubjectUriPrefix + "/sparql";
+
+	}
+
+	@Override
+	public void run() {
+		try {
+			String queryParams = URLEncoder.encode("query", UTF8) + "=" + URLEncoder.encode(query, UTF8);
+			queryParams += "&";
+			queryParams += URLEncoder.encode("default-graph-uri", UTF8) + "=" +
+					URLEncoder.encode("http://tpf.localhost/content.graph", UTF8);
+			URL url = new URL(requestUri + "?" + queryParams);
+			HttpURLConnection con = (HttpURLConnection) url.openConnection();
+			try {
+				con.setRequestMethod("GET");
+				con.setRequestProperty("Accept", "application/rdf+xml");
+				con.setRequestProperty("Authorization", "Basic " + new String(Base64.encodeBase64((username + ":" + password).getBytes())));
+				con.setDoOutput(true);
+
+				int responseCode = con.getResponseCode();
+				if (responseCode != 200) {
+					throw new RuntimeException("GetSparqlQuery: unexpected " + "response code: " + responseCode);
+				}
+				String contentType = con.getContentType();
+				if (contentType == null) {
+					throw new RuntimeException(
+							"GetSparqlQuery: Couldn't determine content type.");
+				}
+				int length = con.getContentLength();
+				byte[] content = new byte[length];
+				InputStream inputStream = con.getInputStream();
+				try {
+					int i = 0;
+					while (i < length && ((content[i++] = (byte) inputStream.read()) != -1)) {
+					}
+					if (i != length) {
+						throw new RuntimeException(
+								"GetSparqlQuery: Couldn't read all data.");
+					}
+				} finally {
+					inputStream.close();
+				}
+			} finally {
+				con.disconnect();
+			}
+		} catch (MalformedURLException me) {
+			me.printStackTrace();
+		} catch (IOException ioe) {
+			ioe.printStackTrace();
+		}
+	}
+
+	@Override
+	public boolean multiThreadingCapable() {
+		return true;
+	}
+}



Re: svn commit: r890541 - /incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java

Posted by Reto Bachmann-Gmuer <re...@trialox.org>.
falsches copyright.

gute nacht


On Tue, Dec 15, 2009 at 12:06 AM, <it...@apache.org> wrote:

> Author: ito
> Date: Mon Dec 14 23:06:50 2009
> New Revision: 890541
>
> URL: http://svn.apache.org/viewvc?rev=890541&view=rev
> Log:
> CLEREZZA-27: SPARQL performance test added
>
> Added:
>
>  incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java
>
> Added:
> incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java
> URL:
> http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java?rev=890541&view=auto
>
> ==============================================================================
> ---
> incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java
> (added)
> +++
> incubator/clerezza/issues/CLEREZZA-27/org.apache.clerezza.integrationtest.web.performance/src/main/java/org/apache/clerezza/integrationtest/web/performance/GetSparqlQuery.java
> Mon Dec 14 23:06:50 2009
> @@ -0,0 +1,142 @@
> +/*
> + * Copyright (c) 2009 trialox.org (trialox AG, Switzerland).
> + *
> + * Licensed 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.clerezza.integrationtest.web.performance;
> +
> +import java.io.IOException;
> +import java.io.InputStream;
> +import java.net.HttpURLConnection;
> +import java.net.MalformedURLException;
> +import java.net.URL;
> +
> +import java.net.URLEncoder;
> +import org.apache.commons.codec.binary.Base64;
> +import org.osgi.service.component.ComponentContext;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
> +import org.apache.clerezza.integrationtest.web.framework.WebTestCase;
> +
> +/**
> + *
> + * A <code>WebTestCase</code> for testing the SPAQRL endpoint. The test
> creates
> + * a SPARQL CONSTRUCT query and send a GET-request. The request accepts
> + * "application/rdf+xml"
> + *
> + * @scr.component
> + * @scr.service
> + *
>  interface="org.clerezza.integrationtest.web.framework.WebTestCase"
> + *
> + * @author tio
> + *
> + */
> +public class GetSparqlQuery implements WebTestCase {
> +
> +       /**
> +        * Service property
> +        *
> +        * @scr.property type="Integer" value="10" description=
> +        *               "Specifies the number of threads to execute the
> run method."
> +        */
> +       public static final String THREAD_COUNT = "threadCount";
> +       /**
> +        * Service property
> +        *
> +        * @scr.property value="admin" description=
> +        *               "Specifies the user name used in the authorization
> header."
> +        */
> +       public static final String USER_NAME = "user";
> +       private String username;
> +       /**
> +        * Service property
> +        *
> +        * @scr.property value="admin" description=
> +        *               "Specifies the user password used in the
> authorization header."
> +        */
> +       public static final String USER_PASSWORD = "password";
> +       private String password;
> +       private static final String UTF8 = "UTF-8";
> +       private String requestUri;
> +       private String query;
> +       final Logger logger =
> LoggerFactory.getLogger(GetSparqlQuery.class);
> +
> +       protected void activate(ComponentContext componentContext) {
> +               username = (String)
> componentContext.getProperties().get(USER_NAME);
> +               password = (String)
> componentContext.getProperties().get(USER_PASSWORD);
> +       }
> +
> +       @Override
> +       public void init(String testSubjectUriPrefix) {
> +
> +               logger.info("Init sparql query get request");
> +
> +               query = "CONSTRUCT { <http://example.org> " +
> +                               "<
> http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?x . }" +
> +                               "WHERE { ?y <
> http://clerezza.org/2009/04/typerendering#mediaType> ?x . }";
> +               requestUri = testSubjectUriPrefix + "/sparql";
> +
> +       }
> +
> +       @Override
> +       public void run() {
> +               try {
> +                       String queryParams = URLEncoder.encode("query",
> UTF8) + "=" + URLEncoder.encode(query, UTF8);
> +                       queryParams += "&";
> +                       queryParams +=
> URLEncoder.encode("default-graph-uri", UTF8) + "=" +
> +                                       URLEncoder.encode("
> http://tpf.localhost/content.graph", UTF8);
> +                       URL url = new URL(requestUri + "?" + queryParams);
> +                       HttpURLConnection con = (HttpURLConnection)
> url.openConnection();
> +                       try {
> +                               con.setRequestMethod("GET");
> +                               con.setRequestProperty("Accept",
> "application/rdf+xml");
> +                               con.setRequestProperty("Authorization",
> "Basic " + new String(Base64.encodeBase64((username + ":" +
> password).getBytes())));
> +                               con.setDoOutput(true);
> +
> +                               int responseCode = con.getResponseCode();
> +                               if (responseCode != 200) {
> +                                       throw new
> RuntimeException("GetSparqlQuery: unexpected " + "response code: " +
> responseCode);
> +                               }
> +                               String contentType = con.getContentType();
> +                               if (contentType == null) {
> +                                       throw new RuntimeException(
> +                                                       "GetSparqlQuery:
> Couldn't determine content type.");
> +                               }
> +                               int length = con.getContentLength();
> +                               byte[] content = new byte[length];
> +                               InputStream inputStream =
> con.getInputStream();
> +                               try {
> +                                       int i = 0;
> +                                       while (i < length && ((content[i++]
> = (byte) inputStream.read()) != -1)) {
> +                                       }
> +                                       if (i != length) {
> +                                               throw new RuntimeException(
> +
> "GetSparqlQuery: Couldn't read all data.");
> +                                       }
> +                               } finally {
> +                                       inputStream.close();
> +                               }
> +                       } finally {
> +                               con.disconnect();
> +                       }
> +               } catch (MalformedURLException me) {
> +                       me.printStackTrace();
> +               } catch (IOException ioe) {
> +                       ioe.printStackTrace();
> +               }
> +       }
> +
> +       @Override
> +       public boolean multiThreadingCapable() {
> +               return true;
> +       }
> +}
>
>
>