POLYGENE-29 - Removing old lang-* libraries.
Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/71aaa07d Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/71aaa07d Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/71aaa07d Branch: refs/heads/develop Commit: 71aaa07d92478946f07f6df1e112b652ec837e8b Parents: f78110d Author: niclas <[email protected]> Authored: Sun Apr 9 11:43:59 2017 +0800 Committer: niclas <[email protected]> Committed: Sun Apr 9 11:43:59 2017 +0800 ---------------------------------------------------------------------- libraries/lang-beanshell/README.txt | 10 - libraries/lang-groovy/build.gradle | 39 -- libraries/lang-groovy/dev-status.xml | 38 -- .../polygene/library/groovy/GroovyMixin.java | 202 -------- .../apache/polygene/library/groovy/package.html | 24 - .../library/groovy/GroovyComposite.java | 31 -- .../library/groovy/GroovyMixinTest.java | 53 --- .../polygene/library/groovy/HelloSpeaker.java | 27 -- .../library/groovy/HelloSpeakerMixin.groovy | 31 -- .../library/groovy/HelloSpeakerTest.java | 81 ---- .../apache/polygene/library/groovy/Mixin1.java | 25 - .../polygene/library/groovy/HelloSpeaker.groovy | 29 -- .../library/groovy/HelloSpeaker.sayHello.groovy | 24 - .../polygene/library/groovy/Mixin1.groovy | 32 -- libraries/lang-javascript/build.gradle | 39 -- libraries/lang-javascript/dev-status.xml | 38 -- .../lang-javascript/licenses/rhino.license | 470 ------------------- .../library/javascript/JavaScriptMixin.java | 332 ------------- .../polygene/library/javascript/package.html | 24 - .../polygene/library/javascript/DomainType.java | 25 - .../library/javascript/HelloSpeaker.java | 31 -- .../library/javascript/JavaScriptMixinTest.java | 43 -- .../polygene/library/javascript/DomainType.js | 33 -- libraries/lang-jruby/README.txt | 10 - 24 files changed, 1691 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-beanshell/README.txt ---------------------------------------------------------------------- diff --git a/libraries/lang-beanshell/README.txt b/libraries/lang-beanshell/README.txt deleted file mode 100644 index dc7bfeb..0000000 --- a/libraries/lang-beanshell/README.txt +++ /dev/null @@ -1,10 +0,0 @@ - -BeanShell is licensed under LGPL, and Apache Software Foundation -doesn't allow the use of LGPL in Apache projects. - -Therefor, Apache Polygene⢠had to drop this library component, but -it is still available for separate download at - -https://github.com/Qi4j/qi4j-sdk - -in the libraries/lang-beanshell directory. http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/build.gradle ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/build.gradle b/libraries/lang-groovy/build.gradle deleted file mode 100644 index cf84bd3..0000000 --- a/libraries/lang-groovy/build.gradle +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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. - * - * - */ - -apply plugin: 'polygene-library' - -description = "Apache Polygene⢠Groovy Library allows for Mixins to be implemented in Groovy scripts instead of directly in compiled Java." - -jar { manifest { name = "Apache Polygene⢠Library - Scripting - Groovy" } } - -apply plugin: 'groovy' - -dependencies { - api polygene.core.api - - implementation libraries.groovy - - runtimeOnly polygene.core.runtime - - testImplementation polygene.core.testsupport - - testRuntimeOnly libraries.logback -} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/dev-status.xml ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/dev-status.xml b/libraries/lang-groovy/dev-status.xml deleted file mode 100644 index a8d21fc..0000000 --- a/libraries/lang-groovy/dev-status.xml +++ /dev/null @@ -1,38 +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. - ~ - ~ - --> -<module xmlns="http://polygene.apache.org/schemas/2008/dev-status/1" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://polygene.apache.org/schemas/2008/dev-status/1 - http://polygene.apache.org/schemas/2008/dev-status/1/dev-status.xsd"> - <status> - <!--none,early,beta,stable,mature--> - <codebase>beta</codebase> - - <!-- none, brief, good, complete --> - <documentation>good</documentation> - - <!-- none, some, good, complete --> - <unittests>good</unittests> - </status> - <licenses> - <license>ALv2</license> - </licenses> -</module> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/main/java/org/apache/polygene/library/groovy/GroovyMixin.java ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/main/java/org/apache/polygene/library/groovy/GroovyMixin.java b/libraries/lang-groovy/src/main/java/org/apache/polygene/library/groovy/GroovyMixin.java deleted file mode 100644 index 6fcd624..0000000 --- a/libraries/lang-groovy/src/main/java/org/apache/polygene/library/groovy/GroovyMixin.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * 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.polygene.library.groovy; - -import groovy.lang.Binding; -import groovy.lang.GroovyClassLoader; -import groovy.lang.GroovyObject; -import groovy.lang.GroovyShell; -import groovy.lang.MissingPropertyException; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.Scanner; -import org.apache.polygene.api.common.AppliesTo; -import org.apache.polygene.api.common.AppliesToFilter; -import org.apache.polygene.api.composite.Composite; -import org.apache.polygene.api.injection.scope.This; - -/** - * Generic mixin that implements interfaces by delegating to Groovy functions - * using Groovy. Each method in an interface is declared by a Groovy method - * in a file located in classpath with the name "<interface>.groovy", - * where the interface name includes the package, and has "." replaced with "/". - * <p> - * Example: - * </p> - * <pre><code> - * org/apache/polygene/samples/hello/domain/HelloWorldSpeaker.groovy - * org/apache/polygene/samples/hello/domain/HelloWorldSpeaker.sayAgain.groovy - * </code></pre> - * - */ -@AppliesTo( GroovyMixin.AppliesTo.class ) -public class GroovyMixin - implements InvocationHandler -{ - - @This - private Composite me; - - private final Map<Class, GroovyObject> groovyObjects; - - public static class AppliesTo - implements AppliesToFilter - { - @Override - public boolean appliesTo( Method method, Class compositeType, Class mixin, Class modelClass ) - { - return getFunctionResource( method ) != null; - } - } - - public GroovyMixin() - { - groovyObjects = new HashMap<>(); - } - - @Override - public Object invoke( Object proxy, Method method, Object[] args ) - throws Throwable - { - final FunctionResource groovySource = getFunctionResource( method ); - if( groovySource != null ) - { - if( groovySource.script ) - { - return invokeAsObject( method, args, groovySource.url ); - } - return invokeAsScript( method, args, groovySource.url ); - } - throw new RuntimeException( "Internal error: Mixin invoked even if it does not apply" ); - } - - private Object invokeAsObject( Method method, Object[] args, URL groovySource ) - throws Throwable - { - try - { - Class declaringClass = method.getDeclaringClass(); - GroovyObject groovyObject = groovyObjects.get( declaringClass ); - if( groovyObject == null ) - { - final Class groovyClass; - try( InputStream inputStream = groovySource.openStream() ) - { - String sourceText = new Scanner( inputStream ).useDelimiter( "\\Z" ).next(); - GroovyClassLoader groovyClassLoader = new GroovyClassLoader( declaringClass.getClassLoader() ); - groovyClass = groovyClassLoader.parseClass( sourceText ); - } - groovyObject = (GroovyObject) groovyClass.newInstance(); - if( hasProperty( groovyObject, "This" ) ) - { - groovyObject.setProperty( "This", me ); - } - groovyObjects.put( declaringClass, groovyObject ); - } - return groovyObject.invokeMethod( method.getName(), args ); - } - catch( Exception e ) - { - e.printStackTrace(); - throw e; - } - } - - private boolean hasProperty( GroovyObject groovyObject, String propertyName ) - { - try - { - groovyObject.getProperty( propertyName ); - return true; - } - catch( MissingPropertyException ex ) - { - return false; - } - } - - private Object invokeAsScript( Method method, Object[] args, URL groovySource ) - throws Throwable - { - try - { - Binding binding = new Binding(); - binding.setVariable( "This", me ); - binding.setVariable( "args", args ); - GroovyShell shell = new GroovyShell( binding ); - InputStream is = null; - try - { - is = groovySource.openStream(); - return shell.evaluate( new InputStreamReader( is ) ); - } - finally - { - if( is != null ) - { - is.close(); - } - } - } - catch( Exception e ) - { - e.printStackTrace(); - throw e; - } - } - - private static FunctionResource getFunctionResource( final Method method ) - { - boolean script = false; - final String scriptPath = method.getDeclaringClass().getName().replace( '.', File.separatorChar ); - String scriptFile = scriptPath + "." + method.getName() + ".groovy"; - URL scriptUrl = method.getDeclaringClass().getClassLoader().getResource( scriptFile ); - if( scriptUrl == null ) - { - script = true; - scriptFile = scriptPath + ".groovy"; - scriptUrl = method.getDeclaringClass().getClassLoader().getResource( scriptFile ); - } - if( scriptUrl != null ) - { - return new FunctionResource( script, scriptUrl ); - } - return null; - } - - private static class FunctionResource - { - - URL url; - boolean script; - - private FunctionResource( final boolean script, final URL url ) - { - this.script = script; - this.url = url; - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/main/java/org/apache/polygene/library/groovy/package.html ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/main/java/org/apache/polygene/library/groovy/package.html b/libraries/lang-groovy/src/main/java/org/apache/polygene/library/groovy/package.html deleted file mode 100644 index 66840f3..0000000 --- a/libraries/lang-groovy/src/main/java/org/apache/polygene/library/groovy/package.html +++ /dev/null @@ -1,24 +0,0 @@ -<!-- - ~ 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. - ~ - ~ - --> -<html> - <body> - <h2>Groovy Language Support Library.</h2> - </body> -</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/GroovyComposite.java ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/GroovyComposite.java b/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/GroovyComposite.java deleted file mode 100644 index 4ac39bb..0000000 --- a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/GroovyComposite.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.polygene.library.groovy; - -import org.apache.polygene.api.composite.TransientComposite; -import org.apache.polygene.api.mixin.Mixins; - -/** - * JAVADOC - */ -@Mixins( GroovyMixin.class ) -public interface GroovyComposite extends Mixin1, TransientComposite -{ -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/GroovyMixinTest.java ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/GroovyMixinTest.java b/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/GroovyMixinTest.java deleted file mode 100644 index 7691fb6..0000000 --- a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/GroovyMixinTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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.polygene.library.groovy; - -import org.apache.polygene.test.AbstractPolygeneTest; -import org.junit.Assert; -import org.junit.Test; -import org.apache.polygene.bootstrap.AssemblyException; -import org.apache.polygene.bootstrap.ModuleAssembly; - -public class GroovyMixinTest extends AbstractPolygeneTest -{ - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.transients( GroovyComposite.class ); - } - - @Test - public void testInvoke() - { - GroovyComposite domain1 = transientBuilderFactory.newTransient( GroovyComposite.class ); - GroovyComposite domain2 = transientBuilderFactory.newTransient( GroovyComposite.class ); - Assert.assertEquals( "do1() in Groovy:1", domain1.do1() ); - Assert.assertEquals( "do1() in Groovy:2", domain1.do1() ); - Assert.assertEquals( "do1() in Groovy:3", domain1.do1() ); - Assert.assertEquals( "do1() in Groovy:4", domain1.do1() ); - Assert.assertEquals( "do1() in Groovy:1", domain2.do1() ); - Assert.assertEquals( "do1() in Groovy:2", domain2.do1() ); - Assert.assertEquals( "do1() in Groovy:3", domain2.do1() ); - Assert.assertEquals( "do1() in Groovy:4", domain2.do1() ); - Assert.assertEquals( "do1() in Groovy:5", domain2.do1() ); - Assert.assertEquals( "do1() in Groovy:6", domain2.do1() ); - Assert.assertEquals( "do1() in Groovy:5", domain1.do1() ); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeaker.java ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeaker.java b/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeaker.java deleted file mode 100644 index 4736d7c..0000000 --- a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeaker.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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.polygene.library.groovy; - -// START SNIPPET: speaker -public interface HelloSpeaker -{ - String sayHello( String name ); -} -// END SNIPPET: speaker http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeakerMixin.groovy ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeakerMixin.groovy b/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeakerMixin.groovy deleted file mode 100644 index 5c69ed4..0000000 --- a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeakerMixin.groovy +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.polygene.library.groovy; - -// START SNIPPET: direct -public class HelloSpeakerMixin - implements HelloSpeaker -{ - - public String sayHello( String name ) { - "Hello $name!" - } -} -// END SNIPPET: direct http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeakerTest.java ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeakerTest.java b/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeakerTest.java deleted file mode 100644 index 1b3941e..0000000 --- a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/HelloSpeakerTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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.polygene.library.groovy; - -import org.junit.Assert; -import org.junit.Test; -import org.apache.polygene.bootstrap.AssemblyException; -import org.apache.polygene.bootstrap.ModuleAssembly; -import org.apache.polygene.test.AbstractPolygeneTest; -import org.apache.polygene.bootstrap.SingletonAssembler; - -public class HelloSpeakerTest extends AbstractPolygeneTest -{ - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.transients( HelloSpeaker.class ).withMixins( GroovyMixin.class ); - } - - @Test - public void testHello() - { - HelloSpeaker speaker = transientBuilderFactory.newTransient( HelloSpeaker.class ); - Assert.assertEquals( "Hello World!", speaker.sayHello( "World" ) ); - } - - @Test - public void testGroovyScriptResourceMixin() - throws Exception - { - // START SNIPPET: script - SingletonAssembler assembler = new SingletonAssembler() - { - @Override - public void assemble( ModuleAssembly assembly ) - throws AssemblyException - { - assembly.transients( HelloSpeaker.class ).withMixins( GroovyMixin.class ); - } - }; - HelloSpeaker speaker = assembler.module().newTransient( HelloSpeaker.class ); - Assert.assertEquals( "Hello World!", speaker.sayHello( "World" ) ); - // END SNIPPET: script - } - - @Test - public void testGroovyClassMixin() - throws Exception - { - // START SNIPPET: direct - SingletonAssembler assembler = new SingletonAssembler() - { - @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.transients( HelloSpeaker.class ).withMixins( HelloSpeakerMixin.class ); - } - }; - HelloSpeaker speaker = assembler.module().newTransient( HelloSpeaker.class ); - Assert.assertEquals( "Hello World!", speaker.sayHello( "World" ) ); - // END SNIPPET: direct - } -} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/Mixin1.java ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/Mixin1.java b/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/Mixin1.java deleted file mode 100644 index 632ed7b..0000000 --- a/libraries/lang-groovy/src/test/groovy/org/apache/polygene/library/groovy/Mixin1.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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.polygene.library.groovy; - -public interface Mixin1 -{ - String do1(); -} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/HelloSpeaker.groovy ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/HelloSpeaker.groovy b/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/HelloSpeaker.groovy deleted file mode 100644 index c5e4162..0000000 --- a/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/HelloSpeaker.groovy +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.polygene.library.groovy - -// START SNIPPET: script -class HelloSpeaker { - def This - def sayHello( name ) { - "Hello $name!".toString() - } -} -// END SNIPPET: script http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/HelloSpeaker.sayHello.groovy ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/HelloSpeaker.sayHello.groovy b/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/HelloSpeaker.sayHello.groovy deleted file mode 100644 index 66467c8..0000000 --- a/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/HelloSpeaker.sayHello.groovy +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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.polygene.library.groovy - -// START SNIPPET: script -"Hello ${args[0]}!".toString() -// END SNIPPET: script http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/Mixin1.groovy ---------------------------------------------------------------------- diff --git a/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/Mixin1.groovy b/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/Mixin1.groovy deleted file mode 100644 index f99f4a6..0000000 --- a/libraries/lang-groovy/src/test/resources/org/apache/polygene/library/groovy/Mixin1.groovy +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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.polygene.library.groovy - -public class Mixin1 -{ - def This - def counter = 0 - - public String do1() - { - counter = counter + 1 - return "do1() in Groovy:" + counter - } -} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-javascript/build.gradle ---------------------------------------------------------------------- diff --git a/libraries/lang-javascript/build.gradle b/libraries/lang-javascript/build.gradle deleted file mode 100644 index 3f8806c..0000000 --- a/libraries/lang-javascript/build.gradle +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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. - * - * - */ - -apply plugin: 'polygene-library' - -description = "Apache Polygene⢠JavaScript Library allows for Mixins to be implemented in JavaScript instead of directly in compiled Java." - -jar { manifest { name = "Apache Polygene⢠Library - Scripting - JavaScript" } } - - -dependencies { - api polygene.core.api - - implementation polygene.library( 'scripting' ) - implementation libraries.javascript - - runtimeOnly polygene.core.runtime - - testImplementation polygene.core.testsupport - - testRuntimeOnly libraries.logback -} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-javascript/dev-status.xml ---------------------------------------------------------------------- diff --git a/libraries/lang-javascript/dev-status.xml b/libraries/lang-javascript/dev-status.xml deleted file mode 100644 index 7a96a31..0000000 --- a/libraries/lang-javascript/dev-status.xml +++ /dev/null @@ -1,38 +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. - ~ - ~ - --> -<module xmlns="http://polygene.apache.org/schemas/2008/dev-status/1" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://polygene.apache.org/schemas/2008/dev-status/1 - http://polygene.apache.org/schemas/2008/dev-status/1/dev-status.xsd"> - <status> - <!--none,early,beta,stable,mature--> - <codebase>beta</codebase> - - <!-- none, brief, good, complete --> - <documentation>brief</documentation> - - <!-- none, some, good, complete --> - <unittests>some</unittests> - </status> - <licenses> - <license>ALv2</license> - </licenses> -</module> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-javascript/licenses/rhino.license ---------------------------------------------------------------------- diff --git a/libraries/lang-javascript/licenses/rhino.license b/libraries/lang-javascript/licenses/rhino.license deleted file mode 100644 index 7714141..0000000 --- a/libraries/lang-javascript/licenses/rhino.license +++ /dev/null @@ -1,470 +0,0 @@ - MOZILLA PUBLIC LICENSE - Version 1.1 - - --------------- - -1. Definitions. - - 1.0.1. "Commercial Use" means distribution or otherwise making the - Covered Code available to a third party. - - 1.1. "Contributor" means each entity that creates or contributes to - the creation of Modifications. - - 1.2. "Contributor Version" means the combination of the Original - Code, prior Modifications used by a Contributor, and the Modifications - made by that particular Contributor. - - 1.3. "Covered Code" means the Original Code or Modifications or the - combination of the Original Code and Modifications, in each case - including portions thereof. - - 1.4. "Electronic Distribution Mechanism" means a mechanism generally - accepted in the software development community for the electronic - transfer of data. - - 1.5. "Executable" means Covered Code in any form other than Source - Code. - - 1.6. "Initial Developer" means the individual or entity identified - as the Initial Developer in the Source Code notice required by Exhibit - A. - - 1.7. "Larger Work" means a work which combines Covered Code or - portions thereof with code not governed by the terms of this License. - - 1.8. "License" means this document. - - 1.8.1. "Licensable" means having the right to grant, to the maximum - extent possible, whether at the time of the initial grant or - subsequently acquired, any and all of the rights conveyed herein. - - 1.9. "Modifications" means any addition to or deletion from the - substance or structure of either the Original Code or any previous - Modifications. When Covered Code is released as a series of files, a - Modification is: - A. Any addition to or deletion from the contents of a file - containing Original Code or previous Modifications. - - B. Any new file that contains any part of the Original Code or - previous Modifications. - - 1.10. "Original Code" means Source Code of computer software code - which is described in the Source Code notice required by Exhibit A as - Original Code, and which, at the time of its release under this - License is not already Covered Code governed by this License. - - 1.10.1. "Patent Claims" means any patent claim(s), now owned or - hereafter acquired, including without limitation, method, process, - and apparatus claims, in any patent Licensable by grantor. - - 1.11. "Source Code" means the preferred form of the Covered Code for - making modifications to it, including all modules it contains, plus - any associated interface definition files, scripts used to control - compilation and installation of an Executable, or source code - differential comparisons against either the Original Code or another - well known, available Covered Code of the Contributor's choice. The - Source Code can be in a compressed or archival form, provided the - appropriate decompression or de-archiving software is widely available - for no charge. - - 1.12. "You" (or "Your") means an individual or a legal entity - exercising rights under, and complying with all of the terms of, this - License or a future version of this License issued under Section 6.1. - For legal entities, "You" includes any entity which controls, is - controlled by, or is under common control with You. For purposes of - this definition, "control" means (a) the power, direct or indirect, - to cause the direction or management of such entity, whether by - contract or otherwise, or (b) ownership of more than fifty percent - (50%) of the outstanding shares or beneficial ownership of such - entity. - -2. Source Code License. - - 2.1. The Initial Developer Grant. - The Initial Developer hereby grants You a world-wide, royalty-free, - non-exclusive license, subject to third party intellectual property - claims: - (a) under intellectual property rights (other than patent or - trademark) Licensable by Initial Developer to use, reproduce, - modify, display, perform, sublicense and distribute the Original - Code (or portions thereof) with or without Modifications, and/or - as part of a Larger Work; and - - (b) under Patents Claims infringed by the making, using or - selling of Original Code, to make, have made, use, practice, - sell, and offer for sale, and/or otherwise dispose of the - Original Code (or portions thereof). - - (c) the licenses granted in this Section 2.1(a) and (b) are - effective on the date Initial Developer first distributes - Original Code under the terms of this License. - - (d) Notwithstanding Section 2.1(b) above, no patent license is - granted: 1) for code that You delete from the Original Code; 2) - separate from the Original Code; or 3) for infringements caused - by: i) the modification of the Original Code or ii) the - combination of the Original Code with other software or devices. - - 2.2. Contributor Grant. - Subject to third party intellectual property claims, each Contributor - hereby grants You a world-wide, royalty-free, non-exclusive license - - (a) under intellectual property rights (other than patent or - trademark) Licensable by Contributor, to use, reproduce, modify, - display, perform, sublicense and distribute the Modifications - created by such Contributor (or portions thereof) either on an - unmodified basis, with other Modifications, as Covered Code - and/or as part of a Larger Work; and - - (b) under Patent Claims infringed by the making, using, or - selling of Modifications made by that Contributor either alone - and/or in combination with its Contributor Version (or portions - of such combination), to make, use, sell, offer for sale, have - made, and/or otherwise dispose of: 1) Modifications made by that - Contributor (or portions thereof); and 2) the combination of - Modifications made by that Contributor with its Contributor - Version (or portions of such combination). - - (c) the licenses granted in Sections 2.2(a) and 2.2(b) are - effective on the date Contributor first makes Commercial Use of - the Covered Code. - - (d) Notwithstanding Section 2.2(b) above, no patent license is - granted: 1) for any code that Contributor has deleted from the - Contributor Version; 2) separate from the Contributor Version; - 3) for infringements caused by: i) third party modifications of - Contributor Version or ii) the combination of Modifications made - by that Contributor with other software (except as part of the - Contributor Version) or other devices; or 4) under Patent Claims - infringed by Covered Code in the absence of Modifications made by - that Contributor. - -3. Distribution Obligations. - - 3.1. Application of License. - The Modifications which You create or to which You contribute are - governed by the terms of this License, including without limitation - Section 2.2. The Source Code version of Covered Code may be - distributed only under the terms of this License or a future version - of this License released under Section 6.1, and You must include a - copy of this License with every copy of the Source Code You - distribute. You may not offer or impose any terms on any Source Code - version that alters or restricts the applicable version of this - License or the recipients' rights hereunder. However, You may include - an additional document offering the additional rights described in - Section 3.5. - - 3.2. Availability of Source Code. - Any Modification which You create or to which You contribute must be - made available in Source Code form under the terms of this License - either on the same media as an Executable version or via an accepted - Electronic Distribution Mechanism to anyone to whom you made an - Executable version available; and if made available via Electronic - Distribution Mechanism, must remain available for at least twelve (12) - months after the date it initially became available, or at least six - (6) months after a subsequent version of that particular Modification - has been made available to such recipients. You are responsible for - ensuring that the Source Code version remains available even if the - Electronic Distribution Mechanism is maintained by a third party. - - 3.3. Description of Modifications. - You must cause all Covered Code to which You contribute to contain a - file documenting the changes You made to create that Covered Code and - the date of any change. You must include a prominent statement that - the Modification is derived, directly or indirectly, from Original - Code provided by the Initial Developer and including the name of the - Initial Developer in (a) the Source Code, and (b) in any notice in an - Executable version or related documentation in which You describe the - origin or ownership of the Covered Code. - - 3.4. Intellectual Property Matters - (a) Third Party Claims. - If Contributor has knowledge that a license under a third party's - intellectual property rights is required to exercise the rights - granted by such Contributor under Sections 2.1 or 2.2, - Contributor must include a text file with the Source Code - distribution titled "LEGAL" which describes the claim and the - party making the claim in sufficient detail that a recipient will - know whom to contact. If Contributor obtains such knowledge after - the Modification is made available as described in Section 3.2, - Contributor shall promptly modify the LEGAL file in all copies - Contributor makes available thereafter and shall take other steps - (such as notifying appropriate mailing lists or newsgroups) - reasonably calculated to inform those who received the Covered - Code that new knowledge has been obtained. - - (b) Contributor APIs. - If Contributor's Modifications include an application programming - interface and Contributor has knowledge of patent licenses which - are reasonably necessary to implement that API, Contributor must - also include this information in the LEGAL file. - - (c) Representations. - Contributor represents that, except as disclosed pursuant to - Section 3.4(a) above, Contributor believes that Contributor's - Modifications are Contributor's original creation(s) and/or - Contributor has sufficient rights to grant the rights conveyed by - this License. - - 3.5. Required Notices. - You must duplicate the notice in Exhibit A in each file of the Source - Code. If it is not possible to put such notice in a particular Source - Code file due to its structure, then You must include such notice in a - location (such as a relevant directory) where a user would be likely - to look for such a notice. If You created one or more Modification(s) - You may add your name as a Contributor to the notice described in - Exhibit A. You must also duplicate this License in any documentation - for the Source Code where You describe recipients' rights or ownership - rights relating to Covered Code. You may choose to offer, and to - charge a fee for, warranty, support, indemnity or liability - obligations to one or more recipients of Covered Code. However, You - may do so only on Your own behalf, and not on behalf of the Initial - Developer or any Contributor. You must make it absolutely clear than - any such warranty, support, indemnity or liability obligation is - offered by You alone, and You hereby agree to indemnify the Initial - Developer and every Contributor for any liability incurred by the - Initial Developer or such Contributor as a result of warranty, - support, indemnity or liability terms You offer. - - 3.6. Distribution of Executable Versions. - You may distribute Covered Code in Executable form only if the - requirements of Section 3.1-3.5 have been met for that Covered Code, - and if You include a notice stating that the Source Code version of - the Covered Code is available under the terms of this License, - including a description of how and where You have fulfilled the - obligations of Section 3.2. The notice must be conspicuously included - in any notice in an Executable version, related documentation or - collateral in which You describe recipients' rights relating to the - Covered Code. You may distribute the Executable version of Covered - Code or ownership rights under a license of Your choice, which may - contain terms different from this License, provided that You are in - compliance with the terms of this License and that the license for the - Executable version does not attempt to limit or alter the recipient's - rights in the Source Code version from the rights set forth in this - License. If You distribute the Executable version under a different - license You must make it absolutely clear that any terms which differ - from this License are offered by You alone, not by the Initial - Developer or any Contributor. You hereby agree to indemnify the - Initial Developer and every Contributor for any liability incurred by - the Initial Developer or such Contributor as a result of any such - terms You offer. - - 3.7. Larger Works. - You may create a Larger Work by combining Covered Code with other code - not governed by the terms of this License and distribute the Larger - Work as a single product. In such a case, You must make sure the - requirements of this License are fulfilled for the Covered Code. - -4. Inability to Comply Due to Statute or Regulation. - - If it is impossible for You to comply with any of the terms of this - License with respect to some or all of the Covered Code due to - statute, judicial order, or regulation then You must: (a) comply with - the terms of this License to the maximum extent possible; and (b) - describe the limitations and the code they affect. Such description - must be included in the LEGAL file described in Section 3.4 and must - be included with all distributions of the Source Code. Except to the - extent prohibited by statute or regulation, such description must be - sufficiently detailed for a recipient of ordinary skill to be able to - understand it. - -5. Application of this License. - - This License applies to code to which the Initial Developer has - attached the notice in Exhibit A and to related Covered Code. - -6. Versions of the License. - - 6.1. New Versions. - Netscape Communications Corporation ("Netscape") may publish revised - and/or new versions of the License from time to time. Each version - will be given a distinguishing version number. - - 6.2. Effect of New Versions. - Once Covered Code has been published under a particular version of the - License, You may always continue to use it under the terms of that - version. You may also choose to use such Covered Code under the terms - of any subsequent version of the License published by Netscape. No one - other than Netscape has the right to modify the terms applicable to - Covered Code created under this License. - - 6.3. Derivative Works. - If You create or use a modified version of this License (which you may - only do in order to apply it to code which is not already Covered Code - governed by this License), You must (a) rename Your license so that - the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", - "MPL", "NPL" or any confusingly similar phrase do not appear in your - license (except to note that your license differs from this License) - and (b) otherwise make it clear that Your version of the license - contains terms which differ from the Mozilla Public License and - Netscape Public License. (Filling in the name of the Initial - Developer, Original Code or Contributor in the notice described in - Exhibit A shall not of themselves be deemed to be modifications of - this License.) - -7. DISCLAIMER OF WARRANTY. - - COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, - WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF - DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. - THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE - IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, - YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE - COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER - OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF - ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -8. TERMINATION. - - 8.1. This License and the rights granted hereunder will terminate - automatically if You fail to comply with terms herein and fail to cure - such breach within 30 days of becoming aware of the breach. All - sublicenses to the Covered Code which are properly granted shall - survive any termination of this License. Provisions which, by their - nature, must remain in effect beyond the termination of this License - shall survive. - - 8.2. If You initiate litigation by asserting a patent infringement - claim (excluding declatory judgment actions) against Initial Developer - or a Contributor (the Initial Developer or Contributor against whom - You file such action is referred to as "Participant") alleging that: - - (a) such Participant's Contributor Version directly or indirectly - infringes any patent, then any and all rights granted by such - Participant to You under Sections 2.1 and/or 2.2 of this License - shall, upon 60 days notice from Participant terminate prospectively, - unless if within 60 days after receipt of notice You either: (i) - agree in writing to pay Participant a mutually agreeable reasonable - royalty for Your past and future use of Modifications made by such - Participant, or (ii) withdraw Your litigation claim with respect to - the Contributor Version against such Participant. If within 60 days - of notice, a reasonable royalty and payment arrangement are not - mutually agreed upon in writing by the parties or the litigation claim - is not withdrawn, the rights granted by Participant to You under - Sections 2.1 and/or 2.2 automatically terminate at the expiration of - the 60 day notice period specified above. - - (b) any software, hardware, or device, other than such Participant's - Contributor Version, directly or indirectly infringes any patent, then - any rights granted to You by such Participant under Sections 2.1(b) - and 2.2(b) are revoked effective as of the date You first made, used, - sold, distributed, or had made, Modifications made by that - Participant. - - 8.3. If You assert a patent infringement claim against Participant - alleging that such Participant's Contributor Version directly or - indirectly infringes any patent where such claim is resolved (such as - by license or settlement) prior to the initiation of patent - infringement litigation, then the reasonable value of the licenses - granted by such Participant under Sections 2.1 or 2.2 shall be taken - into account in determining the amount or value of any payment or - license. - - 8.4. In the event of termination under Sections 8.1 or 8.2 above, - all end user license agreements (excluding distributors and resellers) - which have been validly granted by You or any distributor hereunder - prior to termination shall survive termination. - -9. LIMITATION OF LIABILITY. - - UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT - (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL - DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, - OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR - ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY - CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, - WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER - COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN - INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF - LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY - RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW - PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE - EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO - THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. - -10. U.S. GOVERNMENT END USERS. - - The Covered Code is a "commercial item," as that term is defined in - 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer - software" and "commercial computer software documentation," as such - terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 - C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), - all U.S. Government End Users acquire Covered Code with only those - rights set forth herein. - -11. MISCELLANEOUS. - - This License represents the complete agreement concerning subject - matter hereof. If any provision of this License is held to be - unenforceable, such provision shall be reformed only to the extent - necessary to make it enforceable. This License shall be governed by - California law provisions (except to the extent applicable law, if - any, provides otherwise), excluding its conflict-of-law provisions. - With respect to disputes in which at least one party is a citizen of, - or an entity chartered or registered to do business in the United - States of America, any litigation relating to this License shall be - subject to the jurisdiction of the Federal Courts of the Northern - District of California, with venue lying in Santa Clara County, - California, with the losing party responsible for costs, including - without limitation, court costs and reasonable attorneys' fees and - expenses. The application of the United Nations Convention on - Contracts for the International Sale of Goods is expressly excluded. - Any law or regulation which provides that the language of a contract - shall be construed against the drafter shall not apply to this - License. - -12. RESPONSIBILITY FOR CLAIMS. - - As between Initial Developer and the Contributors, each party is - responsible for claims and damages arising, directly or indirectly, - out of its utilization of rights under this License and You agree to - work with Initial Developer and Contributors to distribute such - responsibility on an equitable basis. Nothing herein is intended or - shall be deemed to constitute any admission of liability. - -13. MULTIPLE-LICENSED CODE. - - Initial Developer may designate portions of the Covered Code as - "Multiple-Licensed". "Multiple-Licensed" means that the Initial - Developer permits you to utilize portions of the Covered Code under - Your choice of the NPL or the alternative licenses, if any, specified - by the Initial Developer in the file described in Exhibit A. - -EXHIBIT A -Mozilla Public License. - - ``The contents of this file are subject to the Mozilla Public License - Version 1.1 (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.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the - License for the specific language governing rights and limitations - under the License. - - The Original Code is ______________________________________. - - The Initial Developer of the Original Code is ________________________. - Portions created by ______________________ are Copyright (C) ______ - _______________________. All Rights Reserved. - - Contributor(s): ______________________________________. - - Alternatively, the contents of this file may be used under the terms - of the _____ license (the "[___] License"), in which case the - provisions of [______] License are applicable instead of those - above. If you wish to allow use of your version of this file only - under the terms of the [____] License and not to allow others to use - your version of this file under the MPL, indicate your decision by - deleting the provisions above and replace them with the notice and - other provisions required by the [___] License. If you do not delete - the provisions above, a recipient may use your version of this file - under either the MPL or the [___] License." - - [NOTE: The text of this Exhibit A may differ slightly from the text of - the notices in the Source Code files of the Original Code. You should - use the text of this Exhibit A rather than the text found in the - Original Code Source Code for Your Modifications.] - http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-javascript/src/main/java/org/apache/polygene/library/javascript/JavaScriptMixin.java ---------------------------------------------------------------------- diff --git a/libraries/lang-javascript/src/main/java/org/apache/polygene/library/javascript/JavaScriptMixin.java b/libraries/lang-javascript/src/main/java/org/apache/polygene/library/javascript/JavaScriptMixin.java deleted file mode 100644 index 10ebcca..0000000 --- a/libraries/lang-javascript/src/main/java/org/apache/polygene/library/javascript/JavaScriptMixin.java +++ /dev/null @@ -1,332 +0,0 @@ -/* - * 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.polygene.library.javascript; - -import java.io.*; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.net.URL; -import java.util.HashMap; -import java.util.StringTokenizer; -import org.mozilla.javascript.*; -import org.apache.polygene.api.common.AppliesTo; -import org.apache.polygene.api.common.AppliesToFilter; -import org.apache.polygene.api.composite.Composite; -import org.apache.polygene.api.composite.TransientBuilderFactory; -import org.apache.polygene.api.injection.scope.Structure; -import org.apache.polygene.api.injection.scope.This; -import org.apache.polygene.library.scripting.ScriptException; -import org.apache.polygene.library.scripting.ScriptReloadable; - -/** - * Generic mixin that implements interfaces by delegating to JavaScript functions - * using Rhino. Each method in an interface is declared as a JS function - * in a file located in classpath with the name "<interface>.<method>.js", - * where the interface name includes the package, and has "." replaced with "/". - * <p> - * Example: - * </p> - * <pre><code> - * org/apache/polygene/samples/hello/domain/HelloWorldSpeaker.say.js - * </code></pre> - */ -@AppliesTo( JavaScriptMixin.AppliesTo.class ) -public class JavaScriptMixin - implements InvocationHandler, ScriptReloadable -{ - @This private Composite me; - - static private Scriptable standardScope; - - private HashMap<String, Function> cachedScripts; - - @Structure private TransientBuilderFactory factory; - private Scriptable instanceScope; - - static - { - Context cx = Context.enter(); - standardScope = cx.initStandardObjects(); - Context.exit(); - } - - public JavaScriptMixin() - { - cachedScripts = new HashMap<String, Function>(); - Context cx = Context.enter(); - instanceScope = cx.newObject( standardScope ); - instanceScope.setPrototype( standardScope ); - Context.exit(); - - } - - @Override - public Object invoke( Object proxy, Method method, Object[] args ) throws Throwable - { - Context cx = Context.enter(); - try - { - Scriptable proxyScope = Context.toObject( proxy, instanceScope ); - proxyScope.setPrototype( instanceScope ); - proxyScope.put( "compositeBuilderFactory", proxyScope, factory ); - proxyScope.put( "This", proxyScope, me ); - Function fn = getFunction( cx, proxyScope, method ); - Object result = fn.call( cx, instanceScope, proxyScope, args ); - - if( result instanceof Undefined ) - { - return null; - } - else if( result instanceof Wrapper ) - { - return ( (Wrapper) result ).unwrap(); - } - else - { - return result; - } - } - finally - { - Context.exit(); - } - } - - @Override - public void reloadScripts() - { - cachedScripts.clear(); - } - - private Function getFunction( Context cx, Scriptable scope, Method method ) - throws IOException - { - Class<?> declaringClass = method.getDeclaringClass(); - String classname = declaringClass.getName(); - String methodName = method.getName(); - String requestedFunctionName = classname + ":" + methodName; - - Function fx = cachedScripts.get( requestedFunctionName ); - if( fx != null ) - { - return fx; - } - compileScripts( cx, scope, method ); - fx = cachedScripts.get( requestedFunctionName ); - return fx; - } - - private void compileScripts( Context cx, Scriptable scope, Method method ) - throws IOException - { - URL scriptUrl = getFunctionResource( method ); - if( scriptUrl == null ) - { - throw new IOException( "No script found for method " + method.getName() ); - } - - InputStream in = scriptUrl.openStream(); - BufferedReader scriptReader = new BufferedReader( new InputStreamReader( in ) ); - int lineNo = 1; - String classname = method.getDeclaringClass().getName(); - while( true ) - { - ScriptFragment fragment = extractFunction( scriptReader ); - if( "".equals( fragment.script.trim() ) ) - { - break; - } - String functionName = parseFunctionName( fragment.script, scriptUrl.toString() ); - Function function = cx.compileFunction( scope, fragment.script, "<" + scriptUrl.toString() + ">", lineNo, null ); - cachedScripts.put( classname + ":" + functionName, function ); - lineNo = lineNo + fragment.numberOfLines; - } - } - - /** - * Extracts the function name. - * <p> - * Since the fragment has been stripped of all comments, the first non-whitespace word to appear - * should be "function" and the word after that should be the function name. - * </p> - * - * @param script The script snippet. - * @param scriptName The name of the script being parsed. - * @return the name of the function declared in this snippet. - */ - private String parseFunctionName( String script, String scriptName ) - { - // TODO optimize with hardcoded parser?? - StringTokenizer st = new StringTokenizer( script, " \t\n\r\f(){}", false ); - if( !st.hasMoreTokens() ) - { - throw new ScriptException( "The word \"function\" was not found in script: " + scriptName ); - } - String fx = st.nextToken(); - if( !"function".equals( fx ) ) - { - throw new ScriptException( "The word \"function\" was not found in script: " + scriptName ); - } - if( !st.hasMoreTokens() ) - { - throw new ScriptException( "Invalid syntax in: " + scriptName + "\n No function name." ); - } - return st.nextToken(); - } - - /** - * Returns ONE function, minus comments. - * - * @param scriptReader The Reader of the script - * @return A ScriptFragment containing the Script text for the function, and how many lines it is. - * @throws IOException If a problem in the Reader occurs. - */ - private ScriptFragment extractFunction( Reader scriptReader ) - throws IOException - { - ScriptFragment fragment = new ScriptFragment(); - boolean inString = false; - boolean inChar = false; - boolean escaped = false; - boolean lineComment = false; - boolean blockComment = false; - char lastCh = '\0'; - int braceCounter = 0; - boolean notStarted = true; - int b = scriptReader.read(); - int skip = 0; - while( b != -1 && ( notStarted || braceCounter > 0 ) ) - { - char ch = (char) b; - if( !blockComment && !lineComment ) - { - fragment.script = fragment.script + ch; - if( !escaped ) - { - if( !inString && !inChar ) - { - if( ch == '{' ) - { - braceCounter++; - notStarted = false; - } - if( ch == '}' ) - { - braceCounter--; - } - } - if( ch == '\"' ) - { - inString = !inString; - } - if( ch == '\'' ) - { - inChar = !inChar; - } - if( ch == '\\' ) - { - escaped = true; - } - if( ch == '\n' ) - { - fragment.numberOfLines++; - } - if( ch == '/' && lastCh == '/' ) - { - lineComment = true; - fragment.script = fragment.script.substring( 0, fragment.script.length() - 2 ); - } - if( ch == '*' && lastCh == '/' ) - { - blockComment = true; - fragment.script = fragment.script.substring( 0, fragment.script.length() - 2 ); - } - } - else - { - if( ch == 'u' ) - { - skip = 4; - } - else if( skip > 0 ) - { - skip--; - } - else - { - escaped = false; - } - } - } - else - { - if( lineComment ) - { - if( ch == '\n' ) - { - lineComment = false; - } - } - if( blockComment ) - { - if( ch == '/' && lastCh == '*' ) - { - blockComment = false; - } - } - } - lastCh = ch; - b = scriptReader.read(); - } - return fragment; - } - - private static URL getFunctionResource( Method method ) - { - String scriptName = getScriptName( method ); - Class<?> declaringClass = method.getDeclaringClass(); - ClassLoader loader = declaringClass.getClassLoader(); - return loader.getResource( scriptName ); - } - - private static String getScriptName( Method method ) - { - Class<?> declaringClass = method.getDeclaringClass(); - String classname = declaringClass.getName(); - return classname.replace( '.', '/' ) + ".js"; - } - - private static class ScriptFragment - { - String script = ""; - int numberOfLines = 0; - } - - public static class AppliesTo - implements AppliesToFilter - { - - public boolean appliesTo( Method method, Class compositeType, Class mixin, Class modelClass ) - { - return getFunctionResource( method ) != null; - } - - } -} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-javascript/src/main/java/org/apache/polygene/library/javascript/package.html ---------------------------------------------------------------------- diff --git a/libraries/lang-javascript/src/main/java/org/apache/polygene/library/javascript/package.html b/libraries/lang-javascript/src/main/java/org/apache/polygene/library/javascript/package.html deleted file mode 100644 index 30d5ac6..0000000 --- a/libraries/lang-javascript/src/main/java/org/apache/polygene/library/javascript/package.html +++ /dev/null @@ -1,24 +0,0 @@ -<!-- - ~ 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. - ~ - ~ - --> -<html> - <body> - <h2>JavaScript Language Support Library.</h2> - </body> -</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/DomainType.java ---------------------------------------------------------------------- diff --git a/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/DomainType.java b/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/DomainType.java deleted file mode 100644 index ce981dc..0000000 --- a/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/DomainType.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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.polygene.library.javascript; - -public interface DomainType -{ - String do1(); -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/HelloSpeaker.java ---------------------------------------------------------------------- diff --git a/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/HelloSpeaker.java b/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/HelloSpeaker.java deleted file mode 100644 index f07460a..0000000 --- a/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/HelloSpeaker.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.polygene.library.javascript; - -import org.apache.polygene.api.mixin.Mixins; - -// START SNIPPET: mixin - -@Mixins(JavaScriptMixin.class) -public interface HelloSpeaker -{ - void sayHello(); -} -// END SNIPPET: mixin http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/JavaScriptMixinTest.java ---------------------------------------------------------------------- diff --git a/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/JavaScriptMixinTest.java b/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/JavaScriptMixinTest.java deleted file mode 100644 index acaa23a..0000000 --- a/libraries/lang-javascript/src/test/java/org/apache/polygene/library/javascript/JavaScriptMixinTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.polygene.library.javascript; - -import org.junit.Assert; -import org.junit.Test; -import org.apache.polygene.bootstrap.AssemblyException; -import org.apache.polygene.bootstrap.ModuleAssembly; -import org.apache.polygene.test.AbstractPolygeneTest; - -public class JavaScriptMixinTest - extends AbstractPolygeneTest -{ - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.transients( DomainType.class ).withMixins( JavaScriptMixin.class ); - } - - @Test - public void testInvoke() throws Throwable - { - DomainType domain = transientBuilderFactory.newTransient( DomainType.class ); - Assert.assertEquals( "do1 script \" and ' for many cases is harder.", domain.do1() ); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-javascript/src/test/resources/org/apache/polygene/library/javascript/DomainType.js ---------------------------------------------------------------------- diff --git a/libraries/lang-javascript/src/test/resources/org/apache/polygene/library/javascript/DomainType.js b/libraries/lang-javascript/src/test/resources/org/apache/polygene/library/javascript/DomainType.js deleted file mode 100644 index a1115af..0000000 --- a/libraries/lang-javascript/src/test/resources/org/apache/polygene/library/javascript/DomainType.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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. - * - * - */ -// This is a line comment. - -/* A block comment should not interfere */ -function /* not even here*/ do1() -{ - // { - // { are nasty... - return "do1 script \" and \' for many cases is harder."; -} - -function do2() -{ - return "}"; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/71aaa07d/libraries/lang-jruby/README.txt ---------------------------------------------------------------------- diff --git a/libraries/lang-jruby/README.txt b/libraries/lang-jruby/README.txt deleted file mode 100644 index 31edbf4..0000000 --- a/libraries/lang-jruby/README.txt +++ /dev/null @@ -1,10 +0,0 @@ - -JRuby is licensed under LGPL, and Apache Software Foundation -doesn't allow the use of LGPL in Apache projects. - -Therefor, Apache Polygene⢠had to drop this library component, but -it is still available for separate download at - -https://github.com/Qi4j/qi4j-sdk - -in the libraries/lang-jruby directory.
