You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2013/08/01 23:47:47 UTC
svn commit: r1509440 [8/8] - in /jena/Experimental/jena-security: ./ src/
src/example/ src/example/org/ src/example/org/apache/
src/example/org/apache/jena/ src/example/org/apache/jena/security/
src/example/org/apache/jena/security/example/ src/main/ s...
Added: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/ModelTestSuite.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/ModelTestSuite.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/ModelTestSuite.java (added)
+++ jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/ModelTestSuite.java Thu Aug 1 21:47:45 2013
@@ -0,0 +1,132 @@
+/*
+ * 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.jena.security.contract.model;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+
+import junit.framework.Test;
+
+
+import org.junit.runner.Description;
+import org.junit.runner.notification.Failure;
+import org.junit.runner.notification.RunNotifier;
+import org.junit.runners.ParentRunner;
+
+
+public class ModelTestSuite extends ParentRunner<Test>
+{
+ private SecTestPackage pkg;
+
+ public ModelTestSuite( Class<?> testClass ) throws Exception
+ {
+ super( Test.class );
+ pkg = new SecTestPackage();
+ }
+
+ @Override
+ protected List<Test> getChildren()
+ {
+ List<Test> lst = new ArrayList<Test>();
+ Enumeration<Test> enm = pkg.tests();
+ while (enm.hasMoreElements())
+ {
+ lst.add( enm.nextElement() );
+ }
+ return lst;
+ }
+
+ @Override
+ protected Description describeChild( Test child )
+ {
+ return Description.createTestDescription( child.getClass(), child.toString() );
+ }
+
+ @Override
+ protected void runChild( Test child, RunNotifier notifier )
+ {
+ Method setUp = null;
+ try
+ {
+ setUp = child.getClass().getMethod("setUp" );
+ }
+ catch (SecurityException e1)
+ {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ throw new RuntimeException( e1 );
+ }
+ catch (NoSuchMethodException e1)
+ {
+ }
+ Method tearDown = null;
+ try
+ {
+ tearDown = child.getClass().getMethod("tearDown" );
+ }
+ catch (SecurityException e1)
+ {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ throw new RuntimeException( e1 );
+ }
+ catch (NoSuchMethodException e1)
+ {
+ }
+ for (Method m : child.getClass().getMethods())
+ {
+ if (m.getName().startsWith( "test" ) && m.getParameterTypes().length == 0)
+ {
+ Description desc = Description.createTestDescription( child.getClass(), child.toString() );
+ notifier.fireTestStarted( desc );
+ try
+ {
+ if (setUp != null)
+ {
+ setUp.invoke(child);
+ }
+ m.invoke(child);
+ if (tearDown != null)
+ {
+ tearDown.invoke( child );
+ }
+ notifier.fireTestFinished( desc );
+ }
+ catch (IllegalArgumentException e)
+ {
+ notifier.fireTestFailure( new Failure(desc, e));
+ }
+ catch (IllegalAccessException e)
+ {
+ notifier.fireTestFailure( new Failure(desc, e));
+ }
+ catch (InvocationTargetException e)
+ {
+ notifier.fireTestFailure( new Failure(desc, e.getTargetException()));
+ }
+ catch (RuntimeException e) {
+ notifier.fireTestFailure( new Failure(desc, e));
+ throw e;
+ }
+ }
+ }
+ }
+}
Propchange: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/ModelTestSuite.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestLiterals.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestLiterals.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestLiterals.java (added)
+++ jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestLiterals.java Thu Aug 1 21:47:45 2013
@@ -0,0 +1,30 @@
+/*
+ * 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.jena.security.contract.model;
+
+import com.hp.hpl.jena.rdf.model.test.TestLiterals;
+import com.hp.hpl.jena.rdf.model.test.TestPackage;
+import com.hp.hpl.jena.rdf.model.test.helpers.TestingModelFactory;
+
+public class SecTestLiterals extends TestLiterals {
+
+ public SecTestLiterals() {
+ super(new TestPackage.PlainModelFactory(), "SecTestLiterals");
+ }
+
+}
Propchange: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestLiterals.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestPackage.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestPackage.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestPackage.java (added)
+++ jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestPackage.java Thu Aug 1 21:47:45 2013
@@ -0,0 +1,125 @@
+/*
+ * 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.jena.security.contract.model;
+
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.test.AbstractTestPackage;
+import com.hp.hpl.jena.rdf.model.test.helpers.TestingModelFactory;
+import com.hp.hpl.jena.shared.PrefixMapping;
+import com.hp.hpl.jena.util.FileUtils;
+
+
+import java.lang.reflect.InvocationTargetException;
+
+import junit.framework.TestSuite;
+
+import org.apache.jena.atlas.web.TypedInputStream;
+import org.apache.jena.riot.stream.Locator;
+import org.apache.jena.riot.stream.StreamManager;
+import org.apache.jena.riot.stream.LocatorZip;
+import org.apache.jena.security.MockSecurityEvaluator;
+import org.apache.jena.security.SecurityEvaluator;
+
+import org.junit.runner.RunWith;
+
+/**
+ * Test package to test Model implementation.
+ */
+//@RunWith(ModelTestSuite.class)
+public class SecTestPackage extends AbstractTestPackage
+{
+ static public TestSuite suite() throws SecurityException, IllegalArgumentException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
+ {
+ return new SecTestPackage();
+ }
+
+ public SecTestPackage() throws SecurityException, IllegalArgumentException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
+ {
+ super("SecuredModel", new PlainModelFactory() );
+ // register a jar reader here
+ StreamManager sm =StreamManager.get();
+ sm.addLocator( new LocatorJarURL() );
+ }
+
+ /* package private */static class PlainModelFactory implements TestingModelFactory
+ {
+ private final SecurityEvaluator eval;
+
+ public PlainModelFactory()
+ {
+ eval = new MockSecurityEvaluator(true, true, true, true, true, true);
+ }
+
+ @Override
+ public Model createModel()
+ {
+ // Graph graph = Factory.createDefaultGraph( style );
+ final Model model = ModelFactory.createDefaultModel();
+ return org.apache.jena.security.Factory.getInstance(eval, "testModel",
+ model);
+ }
+
+ @Override
+ public PrefixMapping getPrefixMapping()
+ {
+ return createModel().getGraph().getPrefixMapping();
+ }
+
+ @Override
+ public Model createModel( Graph base )
+ {
+ return ModelFactory.createModelForGraph(base);
+ }
+ }
+
+ public static class LocatorJarURL implements Locator {
+
+ @Override
+ public TypedInputStream open(String uri) {
+ String uriSchemeName = FileUtils.getScheme(uri) ;
+ if ( ! "jar".equalsIgnoreCase(uriSchemeName))
+ {
+ return null;
+ }
+
+ String[] parts = uri.substring( 4 ).split("!");
+ if (parts.length != 2)
+ {
+ return null;
+ }
+ if (parts[0].toLowerCase().startsWith("file:"))
+ {
+ parts[0] = parts[0].substring( 5 );
+ }
+ if (parts[1].startsWith( "/"))
+ {
+ parts[1] = parts[1].substring(1);
+ }
+ LocatorZip zl = new LocatorZip( parts[0] );
+ return zl.open(parts[1] );
+ }
+
+ @Override
+ public String getName() {
+ return "JarURLLocator";
+ }
+
+ }
+}
Propchange: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestPackage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaderEvents.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaderEvents.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaderEvents.java (added)
+++ jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaderEvents.java Thu Aug 1 21:47:45 2013
@@ -0,0 +1,28 @@
+/*
+ * 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.jena.security.contract.model;
+
+import com.hp.hpl.jena.rdf.model.test.TestPackage;
+
+public class SecTestReaderEvents extends com.hp.hpl.jena.rdf.model.test.TestReaderEvents {
+
+ public SecTestReaderEvents() {
+ super( new TestPackage.PlainModelFactory(), "SecTestReaderEvents" );
+ }
+
+}
Propchange: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaderEvents.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaders.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaders.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaders.java (added)
+++ jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaders.java Thu Aug 1 21:47:45 2013
@@ -0,0 +1,28 @@
+/*
+ * 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.jena.security.contract.model;
+
+import com.hp.hpl.jena.rdf.model.test.TestPackage;
+
+public class SecTestReaders extends com.hp.hpl.jena.rdf.model.test.TestReaders {
+
+ public SecTestReaders() {
+ super( new TestPackage.PlainModelFactory(), "SecTestReaders" );
+ }
+
+}
Propchange: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/contract/model/SecTestReaders.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java (added)
+++ jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java Thu Aug 1 21:47:45 2013
@@ -0,0 +1,61 @@
+/*
+ * 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.jena.security.query.rewriter;
+
+import com.hp.hpl.jena.graph.NodeFactory;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.sparql.algebra.op.OpBGP;
+import com.hp.hpl.jena.sparql.core.BasicPattern;
+import com.hp.hpl.jena.vocabulary.RDF;
+
+import java.util.Arrays;
+
+import org.apache.jena.security.MockSecurityEvaluator;
+import org.apache.jena.security.SecurityEvaluator;
+import org.apache.jena.security.query.rewriter.OpRewriter;
+import org.junit.Before;
+import org.junit.Test;
+
+public class OpRewriterTest
+{
+ private OpRewriter rewriter;
+ private SecurityEvaluator securityEvaluator = new MockSecurityEvaluator( true, true, true, true, true, true );
+
+ public OpRewriterTest()
+ {
+ }
+
+ @Before
+ public void setUp()
+ {
+ rewriter = new OpRewriter( securityEvaluator, "http://example.com/dummy");
+ }
+
+ @Test
+ public void testBGP()
+ {
+ Triple[] triples = {
+ new Triple( NodeFactory.createVariable("foo"), RDF.type.asNode(), NodeFactory.createURI( "http://example.com/class")),
+ new Triple( NodeFactory.createVariable("foo"), NodeFactory.createAnon(), NodeFactory.createVariable("bar")),
+ new Triple( NodeFactory.createVariable("bar"), NodeFactory.createAnon(), NodeFactory.createVariable("baz")),
+ };
+ rewriter.visit( new OpBGP( BasicPattern.wrap(Arrays.asList(triples))));
+ System.out.println( rewriter.getResult());
+ }
+
+}
Propchange: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/detail.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/detail.ttl?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/detail.ttl (added)
+++ jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/detail.ttl Thu Aug 1 21:47:45 2013
@@ -0,0 +1,33 @@
+@prefix ex: <http://example.com/> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+
+ex:msg1 rdf:type ex:msg;
+ ex:to "bob";
+ ex:from "alice" ;
+ ex:subj "alice to bob 1";
+ .
+
+ex:msg2 rdf:type ex:msg;
+ ex:to "alice";
+ ex:from "bob";
+ ex:subj "bob to alice 1";
+ .
+
+ex:msg3 rdf:type ex:msg;
+ ex:to "chuck" ;
+ ex:from "alice";
+ ex:subj "alice to chuck 1";
+ .
+
+ex:msg4 rdf:type ex:msg;
+ ex:to "darla" ;
+ ex:from "bob" ;
+ ex:subj "bob to darla 1"
+ .
+
+ex:msg5 rdf:type ex:msg;
+ ex:to "alice";
+ ex:from "bob";
+ ex:subj "bob to alice 2";
+ .
+
\ No newline at end of file
Added: jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/test.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/test.ttl?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/test.ttl (added)
+++ jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/test.ttl Thu Aug 1 21:47:45 2013
@@ -0,0 +1,2 @@
+@prefix rt: <http://example.com/readTest#> .
+rt:1 a rt:3 .
\ No newline at end of file
Added: jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/test.xml
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/test.xml?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/test.xml (added)
+++ jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/test.xml Thu Aug 1 21:47:45 2013
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rt="http://example.com/readTest#" xmlns:j.0="http://example.com/readTest#3">
+ <rdf:Description rdf:about="http://example.com/readTest#1">
+ <rdf:type rdf:resource="http://example.com/readTest#3" />
+ </rdf:Description>
+</rdf:RDF>
Propchange: jena/Experimental/jena-security/src/test/resources/org/apache/jena/security/model/test.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain