You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2015/04/20 10:08:12 UTC
[07/10] zest-sandbox git commit: Cleanup Zest Sandbox - Remove dead
projects
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/pom.xml
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/pom.xml b/libraries/jini/importer/pom.xml
deleted file mode 100644
index 4bc0aac..0000000
--- a/libraries/jini/importer/pom.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.qi4j.library.jini</groupId>
- <artifactId>org.qi4j.library.jini</artifactId>
- <version>0-SNAPSHOT</version>
- </parent>
- <groupId>org.qi4j.library.jini</groupId>
- <artifactId>org.qi4j.library.jini-importer</artifactId>
- <name>Qi4j Library - Jini Services Importer</name>
-
- <dependencies>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.testsupport</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.runtime</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.bootstrap</artifactId>
- </dependency>
- <dependency>
- <groupId>org.qi4j.library</groupId>
- <artifactId>org.qi4j.library.observations</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>jini-core</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>jini-ext</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>jsk-lib</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.wonderly</groupId>
- <artifactId>startnow</artifactId>
- <version>1.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- </dependencies>
-</project>
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniImporter.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniImporter.java b/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniImporter.java
deleted file mode 100644
index 5fba734..0000000
--- a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniImporter.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.service.ImportedServiceDescriptor;
-import org.qi4j.api.service.ServiceImporter;
-import org.qi4j.api.service.ServiceImporterException;
-
-import java.io.IOException;
-import java.lang.reflect.Proxy;
-
-public class JiniImporter
- implements ServiceImporter
-{
- @Optional @Service private JiniStatusService statusService;
-
- /**
- * Import a service from Jini by looking creating a Proxy which holds the Lookup cache to the wanted Jini service.
- *
- * @param serviceDescriptor The service descriptor.
- * @return a service instance
- * @throws ServiceImporterException
- */
-
- public Object importService( ImportedServiceDescriptor serviceDescriptor )
- throws ServiceImporterException
- {
- final Class<?> serviceType = serviceDescriptor.type();
- JiniProxyHandler handler;
- try
- {
- handler = new JiniProxyHandler( serviceType, statusService );
- }
- catch( IOException e )
- {
- throw new ServiceImporterException( "Unable to establish network.", e );
- }
- Class[] type = new Class[]{ serviceType };
- return Proxy.newProxyInstance( JiniImporter.class.getClassLoader(), type, handler );
- }
-
- public boolean isActive( Object instance )
- {
- JiniProxyHandler jiniHandler = (JiniProxyHandler) Proxy.getInvocationHandler( instance );
- return jiniHandler.isActive();
- }
-
- public boolean isAvailable( Object instance )
- {
- JiniProxyHandler jiniHandler = (JiniProxyHandler) Proxy.getInvocationHandler( instance );
- return jiniHandler.isActive();
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniProxyHandler.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniProxyHandler.java b/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniProxyHandler.java
deleted file mode 100644
index d0cf194..0000000
--- a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniProxyHandler.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer;
-
-import net.jini.core.entry.Entry;
-import net.jini.core.lookup.ServiceID;
-import net.jini.core.lookup.ServiceItem;
-import net.jini.core.lookup.ServiceTemplate;
-import net.jini.discovery.DiscoveryManagement;
-import net.jini.lease.LeaseRenewalManager;
-import net.jini.lookup.*;
-import org.qi4j.api.service.ServiceImporterException;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-
-public class JiniProxyHandler
- implements InvocationHandler, ServiceDiscoveryListener
-{
- private JiniStatusService statusService;
- private LookupCache lookupCache;
- private Object jiniService;
-
- JiniProxyHandler( Class serviceType, JiniStatusService statusService )
- throws IOException
- {
- this.statusService = statusService;
- LeaseRenewalManager leaseRenewal = null;
- DiscoveryManagement discoveryManagement = null;
- ServiceDiscoveryManager sdm = new ServiceDiscoveryManager( discoveryManagement, leaseRenewal );
- ServiceItemFilter filter = null;
- Entry[] entries = null; // Lookup all, regardless of entries.
- ServiceID serviceId = null; // Lookup all, regardless of serviceId.
- Class[] type = new Class[]{ serviceType };
- ServiceTemplate template = new ServiceTemplate( serviceId, type, entries );
- lookupCache = sdm.createLookupCache( template, filter, this );
- lookupCache.addListener( this );
- }
-
- public Object invoke( Object o, Method method, Object[] args )
- throws Throwable
- {
- synchronized( this )
- {
- if( jiniService == null )
- {
- ServiceItem item = lookupCache.lookup( null );
- if( item == null )
- {
- throw new ServiceImporterException( "Jini service currently not available" );
- }
- jiniService = item.service;
-
- if( jiniService == null )
- {
- throw new ServiceImporterException( "Jini service currently not available" );
- }
- }
-
- return method.invoke( jiniService, args );
- }
- }
-
- public synchronized boolean isActive()
- {
- return jiniService != null;
- }
-
- public void serviceAdded( ServiceDiscoveryEvent serviceDiscoveryEvent )
- {
- synchronized( this )
- {
- ServiceItem item = serviceDiscoveryEvent.getPostEventServiceItem();
- jiniService = item.service;
- }
- if( statusService != null )
- {
- statusService.serviceAdded( serviceDiscoveryEvent );
- }
- }
-
- public void serviceRemoved( ServiceDiscoveryEvent serviceDiscoveryEvent )
- {
- synchronized( this )
- {
- ServiceItem item = serviceDiscoveryEvent.getPostEventServiceItem();
- if( item.service.equals( jiniService ) )
- {
- jiniService = null;
- }
- }
- if( statusService != null )
- {
- statusService.serviceRemoved( serviceDiscoveryEvent );
- }
- }
-
- public void serviceChanged( ServiceDiscoveryEvent serviceDiscoveryEvent )
- {
- if( statusService != null )
- {
- statusService.serviceChanged( serviceDiscoveryEvent );
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniServiceObservation.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniServiceObservation.java b/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniServiceObservation.java
deleted file mode 100644
index d03353d..0000000
--- a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniServiceObservation.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 2009 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer;
-
-import org.qi4j.api.property.Property;
-import org.qi4j.library.observations.Observation;
-
-public interface JiniServiceObservation extends Observation
-{
- Property<String> serviceId();
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatus.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatus.java b/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatus.java
deleted file mode 100644
index 57448fa..0000000
--- a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatus.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer;
-
-import net.jini.core.lookup.ServiceID;
-
-public interface JiniStatus
-{
- boolean isAvailable( ServiceID service );
-
- boolean isAvailable( Class type );
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatusMixin.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatusMixin.java b/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatusMixin.java
deleted file mode 100644
index cf0d3b7..0000000
--- a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatusMixin.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer;
-
-import net.jini.core.lookup.ServiceID;
-import net.jini.core.lookup.ServiceItem;
-import net.jini.lookup.ServiceDiscoveryEvent;
-import net.jini.lookup.ServiceDiscoveryListener;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.library.observations.Observable;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.WeakHashMap;
-
-public class JiniStatusMixin
- implements JiniStatus, ServiceDiscoveryListener
-{
- @This Observable<JiniServiceObservation> observable;
-
- private WeakHashMap<ServiceID, Object> serviceIds;
- private WeakHashMap<Class, Set<Object>> services;
-
- public JiniStatusMixin()
- {
- services = new WeakHashMap<Class, Set<Object>>();
- serviceIds = new WeakHashMap<ServiceID, Object>();
- }
-
- public boolean isAvailable( ServiceID service )
- {
- return serviceIds.containsKey( service );
- }
-
- public boolean isAvailable( Class type )
- {
- return services.containsKey( type );
- }
-
- public void serviceAdded( ServiceDiscoveryEvent serviceDiscoveryEvent )
- {
- ServiceItem item = serviceDiscoveryEvent.getPostEventServiceItem();
- Object service = item.service;
- Class[] types = item.service.getClass().getClasses();
- ServiceID id = item.serviceID;
- serviceIds.put( id, service );
- for( Class type : types )
- {
- Set<Object> set = services.get( type );
- if( set == null )
- {
- set = new HashSet<Object>();
- services.put( type, set );
- }
- set.add( service );
- }
- }
-
- public void serviceRemoved( ServiceDiscoveryEvent serviceDiscoveryEvent )
- {
- ServiceItem item = serviceDiscoveryEvent.getPreEventServiceItem();
- Object service = item.service;
- Class[] types = item.service.getClass().getClasses();
- ServiceID id = item.serviceID;
- serviceIds.remove( id );
- for( Class type : types )
- {
- Set<Object> set = services.get( type );
- if( set != null )
- {
- set.remove( service );
- if( set.size() == 0 )
- {
- services.remove( type );
- }
- }
- }
- }
-
- public void serviceChanged( ServiceDiscoveryEvent serviceDiscoveryEvent )
- {
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatusService.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatusService.java b/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatusService.java
deleted file mode 100644
index fb8652f..0000000
--- a/libraries/jini/importer/src/main/java/org/qi4j/library/jini/importer/JiniStatusService.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer;
-
-import net.jini.lookup.ServiceDiscoveryListener;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.ServiceComposite;
-import org.qi4j.library.observations.Observable;
-
-@Mixins( { JiniStatusMixin.class } )
-public interface JiniStatusService
- extends JiniStatus, ServiceDiscoveryListener, Observable<JiniServiceObservation>, ServiceComposite
-{
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/ImportExternalJiniServiceTest.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/ImportExternalJiniServiceTest.java b/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/ImportExternalJiniServiceTest.java
deleted file mode 100644
index 37267e4..0000000
--- a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/ImportExternalJiniServiceTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2009 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.qi4j.api.service.ServiceFinder;
-import org.qi4j.api.service.ServiceReference;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.bootstrap.SingletonAssembler;
-import org.qi4j.library.jini.importer.org.qi4j.library.jini.tests.InterpreterService;
-
-import java.io.IOException;
-import java.util.Iterator;
-
-/**
- * This testcase starts an external non-Qi4j, Jini application and then makes sure that such Jini service will appear
- * as a Qi4j service via the ServiceImporter mechanism.
- */
-public class ImportExternalJiniServiceTest
-{
- private Process process;
-
- @Ignore( "Doesn't seem to work right now" )
- @Test
- public void givenExternalJiniServicePresentInitiallyWhenQi4jApplicationStartsExpectServiceToBeImported()
- throws IOException, InterruptedException
- {
- startExternalJiniService();
-
- SingletonAssembler assembler = new SingletonAssembler()
- {
- public void assemble( ModuleAssembly module ) throws AssemblyException
- {
- module.importedServices( InterpreterService.class ).importedBy( JiniImporter.class );
- }
- };
- final ServiceFinder finder = assembler.serviceFinder();
- final Iterable<ServiceReference<InterpreterService>> iterable = finder.findServices( InterpreterService.class );
- final Iterator<ServiceReference<InterpreterService>> iterator = iterable.iterator();
- final String serviceName = InterpreterService.class.getName();
- assertTrue( "Service proxy not found: " + serviceName, iterator.hasNext() );
-// assertTrue( "Service is not active: " + serviceName, iterator.next().isActive() );
- InterpreterService service = iterator.next().get();
- service.push( 123 );
- service.push( 321 );
- service.addition();
- assertEquals( 444, (int) service.popLong() );
- shutdownExternalJiniService();
- }
-
- private void startExternalJiniService()
- throws IOException
- {
- String[] args = { "org.qi4j.library.jini.tests.Main" };
- process = Runtime.getRuntime().exec( "java", args );
- }
-
- private void shutdownExternalJiniService()
- throws IOException, InterruptedException
- {
- process.destroy();
- process.waitFor();
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/IllegalExpressionException.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/IllegalExpressionException.java b/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/IllegalExpressionException.java
deleted file mode 100644
index b1561f2..0000000
--- a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/IllegalExpressionException.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright 2009 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer.org.qi4j.library.jini.tests;
-
-public class IllegalExpressionException extends RuntimeException
-{
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/InterpreterService.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/InterpreterService.java b/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/InterpreterService.java
deleted file mode 100644
index d5781ee..0000000
--- a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/InterpreterService.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2009 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer.org.qi4j.library.jini.tests;
-
-public interface InterpreterService
-{
- void push( long value );
-
- void push( double value );
-
- long popLong();
-
- double popDouble();
-
- void addition();
-
- void subtraction();
-
- void multiplication();
-
- void division();
-
- void modulo();
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/InterpreterServiceImpl.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/InterpreterServiceImpl.java b/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/InterpreterServiceImpl.java
deleted file mode 100644
index feb710f..0000000
--- a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/InterpreterServiceImpl.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright 2009 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer.org.qi4j.library.jini.tests;
-
-import net.jini.config.ConfigurationException;
-import org.wonderly.jini2.PersistentJiniService;
-
-import java.io.IOException;
-import java.util.Stack;
-
-public class InterpreterServiceImpl extends PersistentJiniService
- implements InterpreterService
-{
- private Stack<Entry> stack = new Stack<Entry>();
-
- public InterpreterServiceImpl( String[] arguments )
- throws IOException, ConfigurationException
- {
- super( arguments );
- }
-
- public void push( long value )
- {
- stack.push( new Entry( value ) );
- }
-
- public void push( double value )
- {
- stack.push( new Entry( value ) );
- }
-
- public long popLong()
- {
- Entry entry = stack.pop();
- return entry.value.longValue();
- }
-
- public double popDouble()
- {
- Entry entry = stack.pop();
- return entry.value.doubleValue();
- }
-
- public void addition()
- {
- Entry entry1 = stack.pop();
- Entry entry2 = stack.pop();
- if( entry1.type == EntryType.llong )
- {
- if( entry2.type != EntryType.llong )
- {
- throw new IllegalExpressionException();
- }
- final long result = entry2.value.longValue() + entry1.value.longValue();
- stack.push( new Entry( result ) );
- }
- else
- {
- if( entry2.type != EntryType.ddouble )
- {
- throw new IllegalExpressionException();
- }
- final double result = entry2.value.doubleValue() + entry1.value.doubleValue();
- stack.push( new Entry( result ) );
- }
- }
-
- public void subtraction()
- {
- Entry entry1 = stack.pop();
- Entry entry2 = stack.pop();
- if( entry1.type == EntryType.llong )
- {
- if( entry2.type != EntryType.llong )
- {
- throw new IllegalExpressionException();
- }
- final long result = entry2.value.longValue() - entry1.value.longValue();
- stack.push( new Entry( result ) );
- }
- else
- {
- if( entry2.type != EntryType.ddouble )
- {
- throw new IllegalExpressionException();
- }
- final double result = entry2.value.doubleValue() - entry1.value.doubleValue();
- stack.push( new Entry( result ) );
- }
- }
-
- public void multiplication()
- {
- Entry entry1 = stack.pop();
- Entry entry2 = stack.pop();
- if( entry1.type == EntryType.llong )
- {
- if( entry2.type != EntryType.llong )
- {
- throw new IllegalExpressionException();
- }
- final long result = entry2.value.longValue() * entry1.value.longValue();
- stack.push( new Entry( result ) );
- }
- else
- {
- if( entry2.type != EntryType.ddouble )
- {
- throw new IllegalExpressionException();
- }
- final double result = entry2.value.doubleValue() * entry1.value.doubleValue();
- stack.push( new Entry( result ) );
- }
- }
-
- public void division()
- {
- Entry entry1 = stack.pop();
- Entry entry2 = stack.pop();
- if( entry1.type == EntryType.llong )
- {
- if( entry2.type != EntryType.llong )
- {
- throw new IllegalExpressionException();
- }
- final long result = entry2.value.longValue() / entry1.value.longValue();
- stack.push( new Entry( result ) );
- }
- else
- {
- if( entry2.type != EntryType.ddouble )
- {
- throw new IllegalExpressionException();
- }
- final double result = entry2.value.doubleValue() / entry1.value.doubleValue();
- stack.push( new Entry( result ) );
- }
- }
-
- public void modulo()
- {
- Entry entry1 = stack.pop();
- Entry entry2 = stack.pop();
- if( entry1.type == EntryType.llong )
- {
- if( entry2.type != EntryType.llong )
- {
- throw new IllegalExpressionException();
- }
- final long result = entry2.value.longValue() % entry1.value.longValue();
- stack.push( new Entry( result ) );
- }
- else
- {
- throw new IllegalExpressionException();
- }
- }
-
- private class Entry
- {
- EntryType type;
- Number value;
-
- public Entry( double value )
- {
- type = EntryType.ddouble;
- this.value = value;
- }
-
- public Entry( long value )
- {
- type = EntryType.llong;
- this.value = value;
- }
- }
-
- private enum EntryType
- {
- ddouble, llong
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/Main.java
----------------------------------------------------------------------
diff --git a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/Main.java b/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/Main.java
deleted file mode 100644
index 10f3840..0000000
--- a/libraries/jini/importer/src/test/java/org/qi4j/library/jini/importer/org/qi4j/library/jini/tests/Main.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2009 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.importer.org.qi4j.library.jini.tests;
-
-import java.security.*;
-
-public class Main
-{
- private static InterpreterServiceImpl jiniService;
-
- public static void main( String[] args )
- throws Exception
- {
- Policy.setPolicy( new AllPolicy() );
- jiniService = new InterpreterServiceImpl( args );
- jiniService.startService();
- System.out.println( "Started 1!" );
- System.out.println( jiniService.getServiceID() );
- System.out.println( "Started 2!" );
- }
-
- private static class AllPolicy extends Policy
- {
- public PermissionCollection getPermissions( CodeSource codeSource )
- {
- final AllPermission allPermission = new AllPermission();
- final Permissions permissions = new Permissions();
- permissions.add( allPermission );
- return permissions;
- }
-
- public void refresh()
- {
- //To change body of implemented methods use File | Settings | File Templates.
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/dev-status.xml
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/dev-status.xml b/libraries/jini/javaspaces/dev-status.xml
deleted file mode 100644
index dc92d29..0000000
--- a/libraries/jini/javaspaces/dev-status.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<module xmlns="http://www.qi4j.org/schemas/2008/dev-status/1">
- <status>
- <codebase>early</codebase>
- <!--none,early,beta,stable,mature-->
- <documentation>brief</documentation>
- <!-- none, brief, good, complete -->
- <unittests>some</unittests>
- <!-- none, some, good, complete -->
- </status>
- <licenses>
- <license>ALv2</license>
- </licenses>
-</module>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/pom.xml
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/pom.xml b/libraries/jini/javaspaces/pom.xml
deleted file mode 100644
index d84809c..0000000
--- a/libraries/jini/javaspaces/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.qi4j.library.jini</groupId>
- <artifactId>org.qi4j.library.jini</artifactId>
- <version>0-SNAPSHOT</version>
- </parent>
- <groupId>org.qi4j.library.jini</groupId>
- <artifactId>org.qi4j.library.jini-javaspaces</artifactId>
- <name>Qi4j Library - Jini Javaspaces Services</name>
-
- <dependencies>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.testsupport</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.runtime</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.bootstrap</artifactId>
- </dependency>
- <dependency>
- <groupId>org.qi4j.library</groupId>
- <artifactId>org.qi4j.library.http</artifactId>
- <version>${version.qi4j}</version>
- </dependency>
- <dependency>
- <groupId>org.qi4j.library</groupId>
- <artifactId>org.qi4j.library.logging</artifactId>
- <version>${version.qi4j}</version>
- </dependency>
- <dependency>
- <groupId>org.qi4j.library.jini</groupId>
- <artifactId>org.qi4j.library.jini-lookup</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.qi4j.library.jini</groupId>
- <artifactId>org.qi4j.library.jini-transaction</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>jini-core</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>jini-ext</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>outrigger</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>start</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>jsk-lib</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- </dependencies>
-</project>
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/JavaSpacesService.java
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/JavaSpacesService.java b/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/JavaSpacesService.java
deleted file mode 100644
index db70923..0000000
--- a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/JavaSpacesService.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.javaspaces;
-
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.Activatable;
-import org.qi4j.api.service.ServiceComposite;
-
-@Mixins( OutriggerMixin.class )
-public interface JavaSpacesService extends Activatable, ServiceComposite
-{
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/JiniJavaSpacesServiceAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/JiniJavaSpacesServiceAssembler.java b/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/JiniJavaSpacesServiceAssembler.java
deleted file mode 100644
index b7be5a2..0000000
--- a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/JiniJavaSpacesServiceAssembler.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.javaspaces;
-
-import org.qi4j.bootstrap.Assembler;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.http.ServletInfo;
-
-public class JiniJavaSpacesServiceAssembler
- implements Assembler
-{
- public void assemble( ModuleAssembly module )
- throws AssemblyException
- {
- module.addEntities( OutriggerConfiguration.class );
- ServletInfo servletInfo = new ServletInfo( "/jini/outrigger-dl.jar" );
- module.addServices( OutriggerDownloadServletService.class ).instantiateOnStartup().setMetaInfo( servletInfo );
- module.addServices( JavaSpacesService.class ).instantiateOnStartup();
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerConfiguration.java
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerConfiguration.java b/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerConfiguration.java
deleted file mode 100644
index 8accf08..0000000
--- a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerConfiguration.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.javaspaces;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.common.UseDefaults;
-import org.qi4j.api.configuration.ConfigurationComposite;
-import org.qi4j.api.property.Property;
-
-public interface OutriggerConfiguration extends ConfigurationComposite
-{
- @Optional @UseDefaults Property<Boolean> useJrmp();
-
- @Optional Property<String> hostInterface();
-
- @Optional Property<String> securityPolicy();
-
- @Optional Property<String> outriggerDlJarLocation();
-
- /**
- * The groups that this Reggie instance should be serving.
- * This is a comma separated list of strings.
- *
- * @return the groups that Reggie is serving.
- */
- @Optional Property<String> groups();
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerDownloadServletService.java
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerDownloadServletService.java b/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerDownloadServletService.java
deleted file mode 100644
index b482e0a..0000000
--- a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerDownloadServletService.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.javaspaces;
-
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.ServiceComposite;
-
-import javax.servlet.Servlet;
-
-@Mixins( ResourceServletMixin.class )
-public interface OutriggerDownloadServletService extends Servlet, ServiceComposite
-{
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerMixin.java
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerMixin.java b/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerMixin.java
deleted file mode 100644
index eef45d0..0000000
--- a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/OutriggerMixin.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.javaspaces;
-
-import com.sun.jini.start.NonActivatableServiceDescriptor;
-import net.jini.config.Configuration;
-import net.jini.config.EmptyConfiguration;
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.service.Activatable;
-import org.qi4j.library.http.HttpService;
-import org.qi4j.library.http.Interface;
-import org.qi4j.library.jini.lookup.Streams;
-
-import java.io.*;
-import java.net.UnknownHostException;
-import java.security.Policy;
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-public class OutriggerMixin
- implements Activatable
-{
- @Optional @Service HttpService httpService;
- @This org.qi4j.api.configuration.Configuration<OutriggerConfiguration> my;
-
- private NonActivatableServiceDescriptor.Created lookupCreated;
- private File fileToCleanup;
-
- public void activate()
- throws Exception
- {
- // Prepare a temporary directory.
- File qi4j = new File( "qi4jtemp" );
- qi4j.mkdir();
- fileToCleanup = qi4j.getAbsoluteFile();
- File jini = new File( qi4j, "jini" );
- jini.mkdirs();
- File temp = File.createTempFile( "outrigger", "", jini );
- temp.delete();
- temp.mkdirs();
- // Start Outrigger
- Configuration serviceDescConfig = EmptyConfiguration.INSTANCE;
- String httpURLtext = my.configuration().outriggerDlJarLocation().get();
- if( httpURLtext == null )
- {
- // If Http Service not running in this JVM, we need the Download URL from configuration.
- if( httpService != null )
- {
- httpURLtext = constructDownloadURL();
- }
- }
- String outriggerJarLocation = createOutriggerJars( temp );
- File outriggerJarFile = new File( outriggerJarLocation );
- String securityPolicyLocation = createSecurityPolicy( temp, outriggerJarFile );
- String outriggerConfig = createOutriggerConfig( temp );
- System.out.println( " Http: " + httpURLtext );
- System.out.println( " Security: " + Policy.getPolicy() );
- System.out.println( " Jar Location: " + outriggerJarLocation );
- System.out.println( "Configuration: " + outriggerConfig );
- NonActivatableServiceDescriptor serviceDescriptor = new NonActivatableServiceDescriptor(
- httpURLtext,
- securityPolicyLocation,
- outriggerJarLocation,
- "com.sun.jini.outrigger.TransientOutriggerImpl",
- new String[]{ outriggerConfig } );
- lookupCreated = (NonActivatableServiceDescriptor.Created) serviceDescriptor.create( serviceDescConfig );
-
- }
-
- public void passivate() throws Exception
- {
- // How to shutdown properly???
- removeFile( fileToCleanup );
- }
-
- private String createOutriggerConfig( File dir )
- throws IOException
- {
- StringBuffer configuration = new StringBuffer();
- if( my.configuration().useJrmp().get() )
- {
- System.out.println( "Using JRMP..." );
- configuration.append( "import net.jini.jrmp.JrmpExporter;\n" +
- "import net.jini.core.discovery.LookupLocator;\n" +
- "\n" +
- "com.sun.jini.outrigger\n" +
- "{\n" +
- " serverExporter = new JrmpExporter();\n" );
- }
- else
- {
- System.out.println( "Using JERI..." );
- configuration.append( "import net.jini.jeri.BasicILFactory;\n" +
- "import net.jini.jeri.BasicJeriExporter;\n" +
- "import net.jini.jeri.tcp.TcpServerEndpoint;\n" +
- "import net.jini.core.discovery.LookupLocator;\n" +
- "com.sun.jini.outrigger\n" +
- "{" +
- " private invocationLayerFactory = new BasicILFactory();\n" +
- " serverExporter = new BasicJeriExporter(TcpServerEndpoint.getInstance(0),\n" +
- " invocationLayerFactory,\n" +
- " false,\n" +
- " true);\n" );
- }
- configuration.append( " initialLookupGroups = new String[] {" );
- String groupData = my.configuration().groups().get();
- String[] groups;
- if( groupData != null )
- {
- groups = convert( groupData );
- }
- else
- {
- groups = new String[]{ "qi4j" };
- }
- boolean first = true;
- for( String group : groups )
- {
- if( !first )
- {
- configuration.append( ", " );
- }
- first = false;
- configuration.append( "\"" );
- configuration.append( group );
- configuration.append( "\"" );
- }
-
- configuration.append( "};\n}" );
-
- File outriggerConfigFile = new File( dir, "outrigger.conf" );
- if( !outriggerConfigFile.exists() )
- {
- InputStream outriggerConfig = new ByteArrayInputStream( configuration.toString().getBytes() );
- copyStreamToFile( outriggerConfig, outriggerConfigFile );
- }
- return outriggerConfigFile.getAbsolutePath();
- }
-
- private String[] convert( String data )
- {
- if( data == null )
- {
- return new String[0];
- }
- ArrayList<String> result = new ArrayList<String>();
- StringTokenizer st = new StringTokenizer( data, ",", false );
- while( st.hasMoreTokens() )
- {
- String token = st.nextToken();
- result.add( token );
- }
- String[] retVal = new String[result.size()];
- return result.toArray( retVal );
- }
-
- private String createOutriggerJars( File temp )
- throws IOException
- {
- File outriggerJar = new File( temp, "outrigger-2.1.1.jar" );
- if( !outriggerJar.exists() )
- {
- InputStream outrigger = getClass().getResourceAsStream( "outrigger-2.1.1.jar" );
- copyStreamToFile( outrigger, outriggerJar );
- }
- return outriggerJar.getAbsolutePath();
- }
-
- private void removeFile( File fileToCleanup )
- {
- if( fileToCleanup == null )
- {
- return;
- }
-
- File[] files = fileToCleanup.listFiles();
- if( files == null )
- {
- return;
- }
- for( File file : files )
- {
- removeFile( file );
- }
- fileToCleanup.delete();
- }
-
- private String constructDownloadURL()
- throws UnknownHostException
- {
- Interface[] interfaces = httpService.interfacesServed();
- String host = interfaces[ 0 ].hostName();
- int port = interfaces[ 0 ].port();
- String protocol = interfaces[ 0 ].protocol().toString();
- return protocol + "://" + host + ":" + port + "/jini/outrigger-dl.jar";
- }
-
- private String createSecurityPolicy( File tempDir, File outriggerJarFile )
- throws IOException
- {
- String securityPolicy = my.configuration().securityPolicy().get();
- if( securityPolicy == null || "".equals( securityPolicy ) )
- {
- securityPolicy = "grant { permission java.security.AllPermission; };";
- }
- File securityPolicyFile = new File( tempDir, "outrigger-security.policy" );
- copyStringToFile( securityPolicy, securityPolicyFile );
- return securityPolicyFile.getAbsolutePath();
- }
-
- private void copyStringToFile( String securityPolicy, File securityPolicyFile )
- throws IOException
- {
- ByteArrayInputStream bais = new ByteArrayInputStream( securityPolicy.getBytes() );
- copyStreamToFile( bais, securityPolicyFile );
- }
-
- private void copyStreamToFile( InputStream inputStream, File destinationFile )
- throws IOException
- {
- destinationFile = destinationFile.getAbsoluteFile();
- File parentFile = destinationFile.getParentFile();
- if( !parentFile.exists() )
- {
- parentFile.mkdirs();
- }
- FileOutputStream fos = new FileOutputStream( destinationFile );
- Streams.copyStream( inputStream, fos, true );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/ResourceServletMixin.java
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/ResourceServletMixin.java b/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/ResourceServletMixin.java
deleted file mode 100644
index 07a2e14..0000000
--- a/libraries/jini/javaspaces/src/main/java/org/qi4j/library/jini/javaspaces/ResourceServletMixin.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.javaspaces;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import org.qi4j.library.jini.lookup.Streams;
-
-public class ResourceServletMixin extends HttpServlet
-{
- protected void doGet( HttpServletRequest request, HttpServletResponse response )
- throws ServletException, IOException
- {
- InputStream in = getClass().getResourceAsStream( "outrigger-dl-2.1.1.jar" );
- response.setContentType( "application/java" );
- OutputStream out = response.getOutputStream();
- Streams.copyStream( in, out, true );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/main/resources/org/qi4j/library/jini/javaspaces/outrigger-2.1.1.jar
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/main/resources/org/qi4j/library/jini/javaspaces/outrigger-2.1.1.jar b/libraries/jini/javaspaces/src/main/resources/org/qi4j/library/jini/javaspaces/outrigger-2.1.1.jar
deleted file mode 100644
index e5319ef..0000000
Binary files a/libraries/jini/javaspaces/src/main/resources/org/qi4j/library/jini/javaspaces/outrigger-2.1.1.jar and /dev/null differ
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/main/resources/org/qi4j/library/jini/javaspaces/outrigger-dl-2.1.1.jar
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/main/resources/org/qi4j/library/jini/javaspaces/outrigger-dl-2.1.1.jar b/libraries/jini/javaspaces/src/main/resources/org/qi4j/library/jini/javaspaces/outrigger-dl-2.1.1.jar
deleted file mode 100644
index e5319ef..0000000
Binary files a/libraries/jini/javaspaces/src/main/resources/org/qi4j/library/jini/javaspaces/outrigger-dl-2.1.1.jar and /dev/null differ
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/test/java/org/qi4j/library/jini/javaspaces/OutriggerStartTest.java
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/test/java/org/qi4j/library/jini/javaspaces/OutriggerStartTest.java b/libraries/jini/javaspaces/src/test/java/org/qi4j/library/jini/javaspaces/OutriggerStartTest.java
deleted file mode 100644
index 05d3c32..0000000
--- a/libraries/jini/javaspaces/src/test/java/org/qi4j/library/jini/javaspaces/OutriggerStartTest.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.javaspaces;
-
-import java.io.IOException;
-import java.security.AllPermission;
-import java.security.CodeSource;
-import java.security.PermissionCollection;
-import java.security.Permissions;
-import java.security.Policy;
-import java.util.Collection;
-import java.util.logging.Formatter;
-import java.util.logging.Handler;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.logging.SimpleFormatter;
-import net.jini.core.lookup.ServiceTemplate;
-import net.jini.discovery.DiscoveryEvent;
-import net.jini.discovery.DiscoveryListener;
-import net.jini.discovery.DiscoveryManagement;
-import net.jini.discovery.LookupDiscoveryManager;
-import net.jini.lookup.LookupCache;
-import net.jini.lookup.ServiceDiscoveryEvent;
-import net.jini.lookup.ServiceDiscoveryListener;
-import net.jini.lookup.ServiceDiscoveryManager;
-import net.jini.security.policy.DynamicPolicyProvider;
-import net.jini.space.JavaSpace05;
-import org.junit.Test;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.entitystore.memory.MemoryEntityStoreService;
-import org.qi4j.library.http.JettyServiceAssembler;
-import org.qi4j.library.jini.lookup.JiniLookupServiceAssembler;
-import org.qi4j.library.jini.transaction.JiniTransactionServiceAssembler;
-import org.qi4j.test.AbstractQi4jTest;
-
-public class OutriggerStartTest extends AbstractQi4jTest
-{
- private static Logger logger = Logger.getLogger( "" );
-
- static
- {
- Handler[] handlers = logger.getHandlers();
- for( Handler handler : handlers )
- {
- Formatter formatter = new SimpleFormatter();
- handler.setFormatter( formatter );
- }
- logger.setLevel( Level.FINEST );
-
- Policy basePolicy = new AllPolicy();
- DynamicPolicyProvider policyProvider = new DynamicPolicyProvider( basePolicy );
- Policy.setPolicy( policyProvider );
- }
-
-
- public void assemble( ModuleAssembly module ) throws AssemblyException
- {
- new JiniTransactionServiceAssembler().assemble( module );
- new JiniLookupServiceAssembler().assemble( module );
- new JiniJavaSpacesServiceAssembler().assemble( module );
- new JettyServiceAssembler().assemble( module );
- module.addObjects( Holder.class );
- module.addServices( MemoryEntityStoreService.class );
- }
-
- @Test
- public void whenStartingOutriggerExpectFoundJavaSpace05()
- throws Exception
- {
- LookupCache cache = initialize();
- MyServiceDiscoveryListener listener = new MyServiceDiscoveryListener();
- cache.addListener( listener );
- Holder object = objectBuilderFactory.newObject( Holder.class );
- synchronized( this )
- {
- if( !listener.added )
- {
- wait( 5000 );
- }
- }
- org.junit.Assert.assertTrue( listener.added );
- }
-
-
- private LookupCache initialize()
- throws IOException
- {
- DiscoveryManagement discoveryManager = new LookupDiscoveryManager( null, null, new MyDiscoveryListener() );
- ServiceDiscoveryManager sdm = new ServiceDiscoveryManager( discoveryManager, null );
- Class[] types = new Class[]{ JavaSpace05.class };
- ServiceTemplate template = new ServiceTemplate( null, types, null );
- LookupCache lookupCache = sdm.createLookupCache( template, null, null );
- return lookupCache;
-
- }
-
- public static class Holder
- {
- @Service JavaSpacesService service;
- }
-
- private static class MyDiscoveryListener
- implements DiscoveryListener
- {
-
- public void discovered( DiscoveryEvent e )
- {
- printEvent( e, "Discovered: " );
- }
-
- public void discarded( DiscoveryEvent e )
- {
- printEvent( e, "Discarded: " );
- }
-
- private void printEvent( DiscoveryEvent e, String message )
- {
- Collection<String[]> collection = e.getGroups().values();
- for( String[] array : collection )
- {
- StringBuffer groups = new StringBuffer();
- boolean first = true;
- for( String group : array )
- {
- if( !first )
- {
- groups.append( "," );
- }
- first = false;
- groups.append( group );
- System.out.println( message + groups );
- }
- }
- }
- }
-
- private class MyServiceDiscoveryListener
- implements ServiceDiscoveryListener
- {
- boolean added = false;
- boolean removed = false;
-
- public MyServiceDiscoveryListener()
- {
- }
-
- public void serviceAdded( ServiceDiscoveryEvent event )
- {
- synchronized( OutriggerStartTest.this )
- {
- logger.info( "Added: " + event.getPostEventServiceItem() );
- added = true;
- OutriggerStartTest.this.notifyAll();
- }
- }
-
- public void serviceRemoved( ServiceDiscoveryEvent event )
- {
- synchronized( OutriggerStartTest.this )
- {
- logger.info( "Removed: " + event.getPostEventServiceItem() );
- removed = true;
- OutriggerStartTest.this.notifyAll();
- }
- }
-
- public void serviceChanged( ServiceDiscoveryEvent event )
- {
- }
- }
-
- public static class AllPolicy extends Policy
- {
-
- public AllPolicy()
- {
- }
-
- public PermissionCollection getPermissions( CodeSource codeSource )
- {
- Permissions allPermission;
- allPermission = new Permissions();
- allPermission.add( new AllPermission() );
- return allPermission;
- }
-
- public void refresh()
- {
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/javaspaces/src/test/resources/org/qi4j/library/http/JettyService.properties
----------------------------------------------------------------------
diff --git a/libraries/jini/javaspaces/src/test/resources/org/qi4j/library/http/JettyService.properties b/libraries/jini/javaspaces/src/test/resources/org/qi4j/library/http/JettyService.properties
deleted file mode 100644
index 7a1adb8..0000000
--- a/libraries/jini/javaspaces/src/test/resources/org/qi4j/library/http/JettyService.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-port=8040
-hostName=127.0.0.1
-resourcePath=/
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/lookup/dev-status.xml
----------------------------------------------------------------------
diff --git a/libraries/jini/lookup/dev-status.xml b/libraries/jini/lookup/dev-status.xml
deleted file mode 100644
index dc92d29..0000000
--- a/libraries/jini/lookup/dev-status.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<module xmlns="http://www.qi4j.org/schemas/2008/dev-status/1">
- <status>
- <codebase>early</codebase>
- <!--none,early,beta,stable,mature-->
- <documentation>brief</documentation>
- <!-- none, brief, good, complete -->
- <unittests>some</unittests>
- <!-- none, some, good, complete -->
- </status>
- <licenses>
- <license>ALv2</license>
- </licenses>
-</module>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/lookup/pom.xml
----------------------------------------------------------------------
diff --git a/libraries/jini/lookup/pom.xml b/libraries/jini/lookup/pom.xml
deleted file mode 100644
index 86a6b70..0000000
--- a/libraries/jini/lookup/pom.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.qi4j.library.jini</groupId>
- <artifactId>org.qi4j.library.jini</artifactId>
- <version>0-SNAPSHOT</version>
- </parent>
- <groupId>org.qi4j.library.jini</groupId>
- <artifactId>org.qi4j.library.jini-lookup</artifactId>
- <name>Qi4j Library - Jini Lookup Service</name>
-
- <dependencies>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.testsupport</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.runtime</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.qi4j.core</groupId>
- <artifactId>org.qi4j.core.bootstrap</artifactId>
- </dependency>
- <dependency>
- <groupId>org.qi4j.library</groupId>
- <artifactId>org.qi4j.library.http</artifactId>
- <version>${version.qi4j}</version>
- </dependency>
- <dependency>
- <groupId>org.qi4j.library</groupId>
- <artifactId>org.qi4j.library.logging</artifactId>
- <version>${version.qi4j}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>jini-core</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>jini-ext</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>reggie</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>start</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.river</groupId>
- <artifactId>jsk-lib</artifactId>
- <version>2.1.1</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- </dependencies>
-</project>
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/JiniLookupServiceAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/JiniLookupServiceAssembler.java b/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/JiniLookupServiceAssembler.java
deleted file mode 100644
index 12a025f..0000000
--- a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/JiniLookupServiceAssembler.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.lookup;
-
-import org.qi4j.bootstrap.Assembler;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.http.ServletInfo;
-
-public class JiniLookupServiceAssembler
- implements Assembler
-{
- public void assemble( ModuleAssembly module )
- throws AssemblyException
- {
- module.addEntities( ReggieConfiguration.class );
- ServletInfo servletInfo = new ServletInfo( "/jini/reggie-dl.jar" );
- module.addServices( ReggieDownloadServletService.class ).instantiateOnStartup().setMetaInfo( servletInfo );
- module.addServices( ServiceRegistryService.class ).instantiateOnStartup();
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieConfiguration.java
----------------------------------------------------------------------
diff --git a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieConfiguration.java b/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieConfiguration.java
deleted file mode 100644
index 6eb357b..0000000
--- a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieConfiguration.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.lookup;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.common.UseDefaults;
-import org.qi4j.api.configuration.ConfigurationComposite;
-import org.qi4j.api.property.Property;
-
-public interface ReggieConfiguration extends ConfigurationComposite
-{
- @Optional @UseDefaults Property<Boolean> useJrmp();
-
- @Optional Property<String> hostInterface();
-
- @Optional Property<String> securityPolicy();
-
- @Optional Property<String> reggieDlJarLocation();
-
- /**
- * The groups that this Reggie instance should be serving.
- * This is a comma separated list of strings.
- *
- * @return the groups that Reggie is serving.
- */
- @Optional Property<String> groups();
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieDownloadServletService.java
----------------------------------------------------------------------
diff --git a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieDownloadServletService.java b/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieDownloadServletService.java
deleted file mode 100644
index ab31569..0000000
--- a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieDownloadServletService.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.lookup;
-
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.ServiceComposite;
-
-import javax.servlet.Servlet;
-
-@Mixins( ResourceServletMixin.class )
-public interface ReggieDownloadServletService extends Servlet, ServiceComposite
-{
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieMixin.java
----------------------------------------------------------------------
diff --git a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieMixin.java b/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieMixin.java
deleted file mode 100644
index ddfeaad..0000000
--- a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ReggieMixin.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.lookup;
-
-import com.sun.jini.admin.DestroyAdmin;
-import com.sun.jini.start.NonActivatableServiceDescriptor;
-import net.jini.admin.Administrable;
-import net.jini.config.Configuration;
-import net.jini.config.EmptyConfiguration;
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.service.Activatable;
-import org.qi4j.library.http.HttpService;
-import org.qi4j.library.http.Interface;
-
-import java.io.*;
-import java.net.UnknownHostException;
-import java.security.Policy;
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-public class ReggieMixin
- implements Activatable
-{
- @Optional @Service HttpService httpService;
- @This org.qi4j.api.configuration.Configuration<ReggieConfiguration> my;
-
- private NonActivatableServiceDescriptor.Created lookupCreated;
- private File fileToCleanup;
-
- public void activate()
- throws Exception
- {
- // Prepare a temporary directory.
- File qi4j = new File( "qi4jtemp" );
- qi4j.mkdir();
- fileToCleanup = qi4j.getAbsoluteFile();
- File jini = new File( qi4j, "jini" );
- jini.mkdirs();
- File temp = File.createTempFile( "reggie", "", jini );
- temp.delete();
- boolean success = temp.mkdirs();
- // Start Reggie
- Configuration serviceDescConfig = EmptyConfiguration.INSTANCE;
- String httpURL = my.configuration().reggieDlJarLocation().get();
- if( httpURL == null )
- {
- // If Http Service not running in this JVM, we need the Download URL from configuration.
- if( httpService != null )
- {
- httpURL = constructDownloadURL();
- }
- }
- String reggieJarLocation = createReggieJars( temp );
- File reggieJarFile = new File( reggieJarLocation );
- String securityPolicyLocation = createSecurityPolicy( temp, reggieJarFile );
- String reggieConfig = createReggieConfig( temp );
- System.out.println( "Policy: " + Policy.getPolicy() );
- NonActivatableServiceDescriptor serviceDescriptor = new NonActivatableServiceDescriptor(
- httpURL,
- securityPolicyLocation,
- reggieJarLocation,
- "com.sun.jini.reggie.TransientRegistrarImpl",
- new String[]{ reggieConfig } );
- lookupCreated = (NonActivatableServiceDescriptor.Created) serviceDescriptor.create( serviceDescConfig );
- }
-
- public void passivate() throws Exception
- {
- System.out.println( "Destroying Reggie." );
- Object admin = ( (Administrable) lookupCreated.proxy ).getAdmin();
- ( (DestroyAdmin) admin ).destroy();
- removeFile( fileToCleanup );
- }
-
- private String createReggieConfig( File dir )
- throws IOException
- {
- StringBuffer configuration = new StringBuffer();
- if( my.configuration().useJrmp().get() )
- {
- System.out.println( "Using JRMP..." );
- configuration.append( "import net.jini.jrmp.JrmpExporter;\n" +
- "\n" +
- "com.sun.jini.reggie {\n" +
- "\n" +
- " serverExporter = new JrmpExporter();\n" );
- }
- else
- {
- System.out.println( "Using JERI..." );
- configuration.append( "import net.jini.jeri.BasicILFactory;\n" +
- "import net.jini.jeri.BasicJeriExporter;\n" +
- "import net.jini.jeri.tcp.TcpServerEndpoint;\n" +
- "\n" +
- "com.sun.jini.reggie\n" +
- "{\n" +
- " private invocationLayerFactory = new BasicILFactory();\n" +
- " serverExporter = new BasicJeriExporter(TcpServerEndpoint.getInstance(0),\n" +
- " invocationLayerFactory,\n" +
- " false,\n" +
- " true);\n" );
- }
- configuration.append( " initialMemberGroups = new String[] {" );
- String groupData = my.configuration().groups().get();
- String[] groups;
- if( groupData != null )
- {
- groups = convert( groupData );
- }
- else
- {
- groups = new String[]{ "qi4j" };
- }
- boolean first = true;
- for( String group : groups )
- {
- if( !first )
- {
- configuration.append( ", " );
- }
- first = false;
- configuration.append( " \"" );
- configuration.append( group );
- configuration.append( "\" " );
- }
-
- configuration.append( "};\n}" );
- File reggieConfigFile = new File( dir, "reggie.conf" );
- if( !reggieConfigFile.exists() )
- {
- InputStream reggieConfig = new ByteArrayInputStream( configuration.toString().getBytes() );
- copyStreamToFile( reggieConfig, reggieConfigFile );
- }
- return reggieConfigFile.getAbsolutePath();
- }
-
- private String[] convert( String data )
- {
- if( data == null )
- {
- return new String[0];
- }
- ArrayList<String> result = new ArrayList<String>();
- StringTokenizer st = new StringTokenizer( data, ",", false );
- while( st.hasMoreTokens() )
- {
- String token = st.nextToken();
- result.add( token );
- }
- String[] retVal = new String[result.size()];
- return result.toArray( retVal );
- }
-
-
- private String createReggieJars( File temp )
- throws IOException
- {
- File reggieJar = new File( temp, "reggie-2.1.1.jar" );
- if( !reggieJar.exists() )
- {
- InputStream reggie = getClass().getResourceAsStream( "reggie-2.1.1.jar" );
- copyStreamToFile( reggie, reggieJar );
- }
- return reggieJar.getAbsolutePath();
- }
-
- private void removeFile( File fileToCleanup )
- {
- if( fileToCleanup == null )
- {
- return;
- }
-
- File[] files = fileToCleanup.listFiles();
- if( files == null )
- {
- return;
- }
- for( File file : files )
- {
- removeFile( file );
- }
- fileToCleanup.delete();
- }
-
- private String constructDownloadURL()
- throws UnknownHostException
- {
- Interface[] interfaces = httpService.interfacesServed();
- String host = interfaces[ 0 ].hostName();
- int port = interfaces[ 0 ].port();
- String protocol = interfaces[ 0 ].protocol().toString();
- return protocol + "://" + host + ":" + port + "/jini/reggie-dl.jar";
- }
-
- private String createSecurityPolicy( File tempDir, File reggieJarFile )
- throws IOException
- {
- String securityPolicy = my.configuration().securityPolicy().get();
- if( securityPolicy == null || "".equals( securityPolicy ) )
- {
- securityPolicy = "grant { permission java.security.AllPermission; };";
- }
- File securityPolicyFile = new File( tempDir, "reggie-security.policy" );
- copyStringToFile( securityPolicy, securityPolicyFile );
- return securityPolicyFile.getAbsolutePath();
- }
-
- private void copyStringToFile( String securityPolicy, File securityPolicyFile )
- throws IOException
- {
- ByteArrayInputStream bais = new ByteArrayInputStream( securityPolicy.getBytes() );
- copyStreamToFile( bais, securityPolicyFile );
- }
-
- private void copyStreamToFile( InputStream inputStream, File destinationFile )
- throws IOException
- {
- destinationFile = destinationFile.getAbsoluteFile();
- File parentFile = destinationFile.getParentFile();
- if( !parentFile.exists() )
- {
- parentFile.mkdirs();
- }
- FileOutputStream fos = new FileOutputStream( destinationFile );
- Streams.copyStream( inputStream, fos, true );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ResourceServletMixin.java
----------------------------------------------------------------------
diff --git a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ResourceServletMixin.java b/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ResourceServletMixin.java
deleted file mode 100644
index de9e6d5..0000000
--- a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ResourceServletMixin.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.lookup;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public class ResourceServletMixin extends HttpServlet
-{
- protected void doGet( HttpServletRequest request, HttpServletResponse response )
- throws ServletException, IOException
- {
- InputStream in = getClass().getResourceAsStream( "reggie-dl-2.1.1.jar" );
- response.setContentType( "application/java" );
- OutputStream out = response.getOutputStream();
- Streams.copyStream( in, out, true );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/25dbfc23/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ServiceRegistryService.java
----------------------------------------------------------------------
diff --git a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ServiceRegistryService.java b/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ServiceRegistryService.java
deleted file mode 100644
index 9050a66..0000000
--- a/libraries/jini/lookup/src/main/java/org/qi4j/library/jini/lookup/ServiceRegistryService.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.library.jini.lookup;
-
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.Activatable;
-import org.qi4j.api.service.ServiceComposite;
-
-@Mixins( { ReggieMixin.class } )
-public interface ServiceRegistryService extends Activatable, ServiceComposite
-{
-}