You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/07/30 21:48:33 UTC

[34/80] [partial] zest-java git commit: First round of changes to move to org.apache.zest namespace.

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ServiceImporter.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/ServiceImporter.java b/core/api/src/main/java/org/qi4j/api/service/ServiceImporter.java
deleted file mode 100644
index ee3d6e5..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/ServiceImporter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service;
-
-/**
- * Import a service from some external source.
- */
-public interface ServiceImporter<T>
-{
-    /**
-     * Imports an instance of the service type described in the service descriptor.
-     *
-     * @param serviceDescriptor The service descriptor.
-     *
-     * @return The imported service instance.
-     *
-     * @throws ServiceImporterException if import failed.
-     */
-    T importService( ImportedServiceDescriptor serviceDescriptor )
-        throws ServiceImporterException;
-
-    /**
-     * Ask if the service is available or not.
-     *
-     * @param instance the instance to be checked
-     *
-     * @return true if the service is available, false if not
-     */
-    boolean isAvailable( T instance );
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ServiceImporterException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/ServiceImporterException.java b/core/api/src/main/java/org/qi4j/api/service/ServiceImporterException.java
deleted file mode 100644
index c8c8fc7..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/ServiceImporterException.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service;
-
-/**
- * If a ServiceImporter could not import a service
- * instance it must throw this exception.
- */
-public class ServiceImporterException
-    extends RuntimeException
-{
-    public ServiceImporterException()
-    {
-    }
-
-    public ServiceImporterException( String string )
-    {
-        super( string );
-    }
-
-    public ServiceImporterException( String string, Throwable throwable )
-    {
-        super( string, throwable );
-    }
-
-    public ServiceImporterException( Throwable throwable )
-    {
-        super( throwable );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ServiceReference.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/ServiceReference.java b/core/api/src/main/java/org/qi4j/api/service/ServiceReference.java
deleted file mode 100644
index 7c616c2..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/ServiceReference.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service;
-
-import org.qi4j.api.activation.ActivationEventListenerRegistration;
-import org.qi4j.api.structure.MetaInfoHolder;
-import org.qi4j.api.type.HasTypes;
-
-/**
- * From a ServiceReference you can access and modify metadata about a service.
- * You can also access the actual service through get(), that can then be invoked.
- */
-public interface ServiceReference<T>
-    extends HasTypes, ActivationEventListenerRegistration, MetaInfoHolder
-{
-    /**
-     * @return the service's identity
-     */
-    String identity();
-
-    /**
-     * @return the actual service
-     */
-    T get();
-
-    /**
-     * @return TRUE if the service is active, otherwise return FALSE
-     */
-    boolean isActive();
-
-    /**
-     * @return TRUE if the service is available, otherwise return FALSE
-     */
-    boolean isAvailable();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/ServiceUnavailableException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/ServiceUnavailableException.java b/core/api/src/main/java/org/qi4j/api/service/ServiceUnavailableException.java
deleted file mode 100644
index 465c945..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/ServiceUnavailableException.java
+++ /dev/null
@@ -1,35 +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.api.service;
-
-/**
- * Thrown when no available service is found.
- */
-public class ServiceUnavailableException
-    extends RuntimeException
-{
-    public ServiceUnavailableException( String message )
-    {
-        super( message );
-    }
-
-    public ServiceUnavailableException( String message, Throwable cause )
-    {
-        super( message, cause );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/importer/InstanceImporter.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/importer/InstanceImporter.java b/core/api/src/main/java/org/qi4j/api/service/importer/InstanceImporter.java
deleted file mode 100644
index 38901fb..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/importer/InstanceImporter.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.importer;
-
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.service.ImportedServiceDescriptor;
-import org.qi4j.api.service.ServiceImporter;
-import org.qi4j.api.service.ServiceImporterException;
-import org.qi4j.api.structure.Application;
-import org.qi4j.api.structure.Layer;
-import org.qi4j.api.structure.MetaInfoHolder;
-import org.qi4j.api.structure.Module;
-import org.qi4j.functional.Function;
-import org.qi4j.functional.Iterables;
-
-import static org.qi4j.functional.Iterables.filter;
-import static org.qi4j.functional.Iterables.first;
-import static org.qi4j.functional.Iterables.map;
-import static org.qi4j.functional.Specifications.notNull;
-
-/**
- * Return a predefined service instance that was provided as meta-info. Search for meta-info in the following order:
- * the service itself, the module of the service, the layer of the service, the whole application.
- */
-public final class InstanceImporter<T>
-    implements ServiceImporter<T>
-{
-    @Structure
-    private Application application;
-
-    @Structure
-    private Layer layer;
-
-    @Structure
-    private Module module;
-
-    @Override
-    public T importService( final ImportedServiceDescriptor serviceDescriptor )
-        throws ServiceImporterException
-    {
-        T instance = null;
-        Iterable<MetaInfoHolder> holders = Iterables.iterable( serviceDescriptor, module, layer, application );
-        for( final MetaInfoHolder metaInfoHolder : holders )
-        {
-            Function<Class<?>, T> metaFinder = new Function<Class<?>, T>()
-            {
-                @Override
-                @SuppressWarnings( "unchecked" )
-                public T map( Class<?> type )
-                {
-                    return (T) metaInfoHolder.metaInfo( type );
-                }
-            };
-            instance = first( filter( notNull(), map( metaFinder, serviceDescriptor.types() ) ) );
-            if( instance != null )
-            {
-                break;
-            }
-        }
-        return instance;
-    }
-
-    @Override
-    public boolean isAvailable( T instance )
-    {
-        return true;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/importer/NewObjectImporter.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/importer/NewObjectImporter.java b/core/api/src/main/java/org/qi4j/api/service/importer/NewObjectImporter.java
deleted file mode 100644
index d29b1ce..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/importer/NewObjectImporter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.importer;
-
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.object.ObjectFactory;
-import org.qi4j.api.service.ImportedServiceDescriptor;
-import org.qi4j.api.service.ServiceImporter;
-import org.qi4j.api.service.ServiceImporterException;
-import org.qi4j.functional.Iterables;
-
-/**
- * Import Services using a new registered Object instance.
- */
-public final class NewObjectImporter<T>
-    implements ServiceImporter<T>
-{
-    @Structure
-    private ObjectFactory obf;
-
-    @Override
-    @SuppressWarnings( "unchecked" )
-    public T importService( ImportedServiceDescriptor serviceDescriptor )
-        throws ServiceImporterException
-    {
-        return obf.newObject( (Class<T>) Iterables.first( serviceDescriptor.types() ) );
-    }
-
-    @Override
-    public boolean isAvailable( T instance )
-    {
-        return true;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/importer/ServiceInstanceImporter.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/importer/ServiceInstanceImporter.java b/core/api/src/main/java/org/qi4j/api/service/importer/ServiceInstanceImporter.java
deleted file mode 100644
index 7910228..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/importer/ServiceInstanceImporter.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2010, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.importer;
-
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.service.ImportedServiceDescriptor;
-import org.qi4j.api.service.ServiceFinder;
-import org.qi4j.api.service.ServiceImporter;
-import org.qi4j.api.service.ServiceImporterException;
-import org.qi4j.api.service.ServiceReference;
-
-/**
- * Use a registered service that implements ServiceImporter to do the actual
- * import. The service id of the service that this importer should delegate to must
- * be set as meta-info on this service. Example:
- * <pre><code>
- * module.services(MyServiceImporterService.class).identifiedBy("someid");
- * module.importedServices(OtherService.class).importedBy(ServiceInstanceImporter.class).setMetaInfo("someid");
- * </code></pre>
- */
-public class ServiceInstanceImporter<T>
-    implements ServiceImporter<T>
-{
-    @Structure
-    ServiceFinder finder;
-
-    ServiceImporter<T> service;
-
-    String serviceId;
-
-    @Override
-    public T importService( ImportedServiceDescriptor importedServiceDescriptor )
-        throws ServiceImporterException
-    {
-        serviceId = importedServiceDescriptor.metaInfo( String.class );
-
-        return serviceImporter().importService( importedServiceDescriptor );
-    }
-
-    @Override
-    public boolean isAvailable( T instance )
-    {
-        return serviceImporter().isAvailable( instance );
-    }
-
-    @SuppressWarnings( {"raw", "unchecked"} )
-    private ServiceImporter<T> serviceImporter()
-    {
-        if( service == null )
-        {
-            for( ServiceReference<ServiceImporter> reference : finder.<ServiceImporter>findServices( ServiceImporter.class ) )
-            {
-                if( reference.identity().equals( serviceId ) )
-                {
-                    service = reference.get();
-                    break;
-                }
-            }
-        }
-
-        if( service == null )
-        {
-            throw new ServiceImporterException( "No service importer with id '" + serviceId + "' was found" );
-        }
-
-        return service;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/importer/ServiceSelectorImporter.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/importer/ServiceSelectorImporter.java b/core/api/src/main/java/org/qi4j/api/service/importer/ServiceSelectorImporter.java
deleted file mode 100644
index ad3c757..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/importer/ServiceSelectorImporter.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.importer;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.service.Availability;
-import org.qi4j.api.service.ImportedServiceDescriptor;
-import org.qi4j.api.service.ServiceFinder;
-import org.qi4j.api.service.ServiceImporter;
-import org.qi4j.api.service.ServiceImporterException;
-import org.qi4j.api.service.ServiceReference;
-import org.qi4j.api.service.qualifier.ServiceQualifier;
-import org.qi4j.functional.Iterables;
-import org.qi4j.functional.Specification;
-
-/**
- * If several services are available with a given type, and you want to constrain
- * the current module to use a specific one, then use this importer. Specify a
- * Specification&lt;ServiceReference&lt;T&gt;&gt; criteria as meta-info for the service, which will be applied
- * to the list of available services, and the first match will be chosen.
- *
- * This importer will avoid selecting itself, as could be possible if the ServiceQualifier.first()
- * filter is used.
- */
-public final class ServiceSelectorImporter<T>
-    implements ServiceImporter<T>
-{
-    @Structure
-    private ServiceFinder locator;
-
-    @Override
-    @SuppressWarnings( { "raw", "unchecked" } )
-    public T importService( ImportedServiceDescriptor serviceDescriptor )
-        throws ServiceImporterException
-    {
-        Specification<ServiceReference<?>> selector = serviceDescriptor.metaInfo( Specification.class );
-        Class serviceType = Iterables.first( serviceDescriptor.types() );
-        Iterable<ServiceReference<T>> services = locator.findServices( serviceType );
-        List<ServiceReference<T>> filteredServices = new ArrayList<>();
-        for( ServiceReference<T> service : services )
-        {
-            Specification selector1 = service.metaInfo( Specification.class );
-            if( selector1 != null && selector1 == selector )
-            {
-                continue;
-            }
-
-            filteredServices.add( service );
-        }
-        T service = ServiceQualifier.firstService( selector, filteredServices );
-        if( service == null )
-        {
-            throw new ServiceImporterException( "Could not find any service to import that matches the given specification for " + serviceDescriptor
-                .identity() );
-        }
-        return service;
-    }
-
-    @Override
-    public boolean isAvailable( T instance )
-    {
-        return !( instance instanceof Availability ) || ( (Availability) instance ).isAvailable();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/importer/package.html
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/importer/package.html b/core/api/src/main/java/org/qi4j/api/service/importer/package.html
deleted file mode 100644
index d960b3d..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/importer/package.html
+++ /dev/null
@@ -1,21 +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>Service Importers.</h2>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/package.html
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/package.html b/core/api/src/main/java/org/qi4j/api/service/package.html
deleted file mode 100644
index 587937c..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/package.html
+++ /dev/null
@@ -1,21 +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>Service API.</h2>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/Active.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/Active.java b/core/api/src/main/java/org/qi4j/api/service/qualifier/Active.java
deleted file mode 100644
index d06a749..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/Active.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.qualifier;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import org.qi4j.api.service.ServiceReference;
-import org.qi4j.functional.Specification;
-
-/**
- * Filter services based on whether they are active or not.
- * <p>
- * At an injection point you can do this:
- * </p>
- * <pre><code>
- * &#64;Service &#64;Active MyService service;
- * </code></pre>
- * <p>
- * to get only a service that is currently active.
- * </p>
- */
-@Retention( RetentionPolicy.RUNTIME )
-@Qualifier( Active.ActiveQualifier.class )
-public @interface Active
-{
-    /**
-     * Active Annotation Qualifier.
-     * See {@link Active}.
-     */
-    public final class ActiveQualifier
-        implements AnnotationQualifier<Active>
-    {
-        @Override
-        public <T> Specification<ServiceReference<?>> qualifier( Active active )
-        {
-            return ServiceQualifier.whereActive();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/AnnotationQualifier.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/AnnotationQualifier.java b/core/api/src/main/java/org/qi4j/api/service/qualifier/AnnotationQualifier.java
deleted file mode 100644
index 7187ed1..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/AnnotationQualifier.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.qualifier;
-
-import java.lang.annotation.Annotation;
-import org.qi4j.api.service.ServiceReference;
-import org.qi4j.functional.Specification;
-
-/**
- * Constructs a Specification for a given qualifier annotation
- */
-public interface AnnotationQualifier<QUALIFIER extends Annotation>
-{
-    public <T> Specification<ServiceReference<?>> qualifier( QUALIFIER qualifier );
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/Available.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/Available.java b/core/api/src/main/java/org/qi4j/api/service/qualifier/Available.java
deleted file mode 100644
index 894451d..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/Available.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.qualifier;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import org.qi4j.api.service.ServiceReference;
-import org.qi4j.functional.Specification;
-
-/**
- * Filter services based on whether they are available or not.
- *
- * At an injection point you can do this:
- *
- * <pre><code>
- * &#64;Service &#64;Available MyService service;
- * </code></pre>
- * to get only a service that is currently available.
- */
-@Retention( RetentionPolicy.RUNTIME )
-@Qualifier( Available.AvailableQualifier.class )
-public @interface Available
-{
-    /**
-     * Available Annotation Qualifier.
-     * See {@link Available}.
-     */
-    public final class AvailableQualifier
-        implements AnnotationQualifier<Available>
-    {
-        @Override
-        public <T> Specification<ServiceReference<?>> qualifier( Available active )
-        {
-            return ServiceQualifier.whereAvailable();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/HasMetaInfo.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/HasMetaInfo.java b/core/api/src/main/java/org/qi4j/api/service/qualifier/HasMetaInfo.java
deleted file mode 100644
index aac0702..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/HasMetaInfo.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2009, Niclas Hedhman. All Rights Reserved.
- *
- * 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.api.service.qualifier;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import org.qi4j.api.service.ServiceReference;
-import org.qi4j.functional.Specification;
-
-/**
- * Filter services based on Meta Info being declared on the Service.
- * <p>
- * Meta Info of any type can be set on the service during assembly, e.g.;
- * </p>
- * <pre><code>
- * module.addService( MyService.class ).setMetaInfo( new MyCustomInfo(someData) );
- * </code></pre>
- * <p>
- * and then at an injection point you can do this:
- * </p>
- * <pre><code>
- * &#64;Service &#64;HasMetaInfo(MyCustomInfo.class) MyService service;
- * </code></pre>
- * <p>
- * to get only a service that has a MyCustomInfo instance set as meta info.
- * </p>
- */
-@Retention( RetentionPolicy.RUNTIME )
-@Qualifier( HasMetaInfo.HasMetaInfoQualifier.class )
-@Documented
-public @interface HasMetaInfo
-{
-    /**
-     * The Class(es) needed to have been defined in the Service meta info for a qualifier to evaluate true.
-     *
-     * @return One or more classes that should be defined in the service's meta info for the service to be considered
-     *         qualified. If more than one class is defined, the {@code anded()} parameter will define if they must be
-     *         AND'ed or OR'ed together.
-     */
-    Class[] value();
-
-    /**
-     * True if the Classes defined in the value() field should be AND'ed instead of OR'ed.
-     *
-     * @return If true, all the Class types defined in {@code value()} must be defined for the service for it to be
-     *         qualified. If false, if any of the Class types defined in {@code value()} is defined for the service
-     *         the service is qualified.
-     */
-    boolean anded() default false;
-
-    /**
-     * HasMetaInfo Annotation Qualifier.
-     * See {@link HasMetaInfo}.
-     */
-    public static class HasMetaInfoQualifier
-        implements AnnotationQualifier<HasMetaInfo>
-    {
-        @Override
-        public <T> Specification<ServiceReference<?>> qualifier( final HasMetaInfo hasMetaInfo )
-        {
-            return new Specification<ServiceReference<?>>()
-            {
-                @Override
-                @SuppressWarnings( {"raw", "unchecked"} )
-                public boolean satisfiedBy( ServiceReference<?> service )
-                {
-                    for( Class metaInfoType : hasMetaInfo.value() )
-                    {
-                        Object metaInfo = service.metaInfo( metaInfoType );
-                        if( hasMetaInfo.anded() )
-                        {
-                            if( metaInfo == null )
-                            {
-                                return false;
-                            }
-                        }
-                        else
-                        {
-                            if( metaInfo != null )
-                            {
-                                return true;
-                            }
-                        }
-                    }
-                    return false;
-                }
-            };
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/IdentifiedBy.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/IdentifiedBy.java b/core/api/src/main/java/org/qi4j/api/service/qualifier/IdentifiedBy.java
deleted file mode 100644
index 2c715d7..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/IdentifiedBy.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.qualifier;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import org.qi4j.api.service.ServiceReference;
-import org.qi4j.functional.Specification;
-
-/**
- * Filter services based on identity. Identity can be set during assembly, like so:
- * <pre><code>
- * module.addService(MyService.class).identifiedBy("myservice1");
- * </code></pre>
- *
- * and then at an injection point you can do this:
- * <pre><code>
- * &#64;Service @IdentifiedBy("myservice1") MyService service;
- * </code></pre>
- * to get only a service identified "myservice1".
- */
-@Retention( RetentionPolicy.RUNTIME )
-@Qualifier( IdentifiedBy.IdentifiedByQualifier.class )
-public @interface IdentifiedBy
-{
-    public abstract String value();
-
-    /**
-     * IdentifiedBy Annotation Qualifier.
-     * See {@link IdentifiedBy}.
-     */
-    public final class IdentifiedByQualifier
-        implements AnnotationQualifier<IdentifiedBy>
-    {
-        @Override
-        public <T> Specification<ServiceReference<?>> qualifier( IdentifiedBy identifiedBy )
-        {
-            return ServiceQualifier.withId( identifiedBy.value() );
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/Qualifier.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/Qualifier.java b/core/api/src/main/java/org/qi4j/api/service/qualifier/Qualifier.java
deleted file mode 100644
index 50efb1c..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/Qualifier.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.qualifier;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Annotation used to declare Qualifiers annotations.
- */
-@Retention( RetentionPolicy.RUNTIME )
-public @interface Qualifier
-{
-    public abstract Class<? extends AnnotationQualifier> value();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/ServiceQualifier.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/ServiceQualifier.java b/core/api/src/main/java/org/qi4j/api/service/qualifier/ServiceQualifier.java
deleted file mode 100644
index 75410d6..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/ServiceQualifier.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.qualifier;
-
-import org.qi4j.api.service.ServiceReference;
-import org.qi4j.functional.Specification;
-
-/**
- * This class helps you select a particular service
- * from a list.
- * <p>
- * Provide a Selector which does the actual
- * selection from the list. A common case is to select
- * based on identity of the service, which you can do this way:
- * </p>
- *
- * <pre><code>
- * new ServiceQualifier&lt;MyService&gt;(services, ServiceQualifier.withId("someId"))
- * </code></pre>
- * <p>
- * Many selectors can be combined by using firstOf. Example:
- * </p>
- * <pre><code>
- * new ServiceQualifier&lt;MyService&gt;(services, firstOf(withTags("sometag"), firstActive(), first()))
- * </code></pre>
- * <p>
- * This will pick a service that has the tag "sometag", or if none is found take the first active one. If no
- * service is active, then the first service will be picked.
- * </p>
- */
-public abstract class ServiceQualifier
-{
-    public static <T> T firstService( Specification<ServiceReference<?>> qualifier,
-                                      Iterable<ServiceReference<T>> services
-    )
-    {
-        for( ServiceReference<T> service : services )
-        {
-            if( qualifier.satisfiedBy( service ) )
-            {
-                return service.get();
-            }
-        }
-        return null;
-    }
-
-    public static Specification<ServiceReference<?>> withId( final String anId )
-    {
-        return new Specification<ServiceReference<?>>()
-        {
-            @Override
-            public boolean satisfiedBy( ServiceReference<?> service )
-            {
-                return service.identity().equals( anId );
-            }
-        };
-    }
-
-    public static Specification<ServiceReference<?>> whereMetaInfoIs( final Object metaInfo )
-    {
-        return new Specification<ServiceReference<?>>()
-        {
-            @Override
-            public boolean satisfiedBy( ServiceReference<?> service )
-            {
-                Object metaObject = service.metaInfo( metaInfo.getClass() );
-                return metaObject != null && metaInfo.equals( metaObject );
-            }
-        };
-    }
-
-    public static Specification<ServiceReference<?>> whereActive()
-    {
-        return new Specification<ServiceReference<?>>()
-        {
-            @Override
-            public boolean satisfiedBy( ServiceReference<?> service )
-            {
-                return service.isActive();
-            }
-        };
-    }
-
-    public static Specification<ServiceReference<?>> whereAvailable()
-    {
-        return new Specification<ServiceReference<?>>()
-        {
-            @Override
-            public boolean satisfiedBy( ServiceReference<?> service )
-            {
-                return service.isAvailable();
-            }
-        };
-    }
-
-    public static Specification<ServiceReference<?>> withTags( final String... tags )
-    {
-        return new Specification<ServiceReference<?>>()
-        {
-            @Override
-            public boolean satisfiedBy( ServiceReference<?> service )
-            {
-                ServiceTags serviceTags = service.metaInfo( ServiceTags.class );
-
-                return serviceTags != null && serviceTags.hasTags( tags );
-            }
-        };
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/ServiceTags.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/ServiceTags.java b/core/api/src/main/java/org/qi4j/api/service/qualifier/ServiceTags.java
deleted file mode 100644
index 5ee8cb5..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/ServiceTags.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.qualifier;
-
-import java.io.Serializable;
-
-/**
- * Use this as metainfo about a Service to specify tags. Easiest way to set them on a service
- * is to use the <code>ServiceDeclaration.taggedWith(String...)</code> method.
- *
- * These can be used in conjunction with the withTags() Service
- * Selector.
- */
-public final class ServiceTags
-    implements Serializable
-{
-    private String[] tags;
-
-    public ServiceTags( String... tags )
-    {
-        this.tags = tags;
-    }
-
-    public String[] tags()
-    {
-        return tags;
-    }
-
-    public boolean hasTag( String tag )
-    {
-        for( String serviceTag : tags )
-        {
-            if( serviceTag.equals( tag ) )
-            {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    public boolean hasTags( String... aTags )
-    {
-        for( String tag : aTags )
-        {
-            if( !hasTag( tag ) )
-            {
-                return false;
-            }
-        }
-
-        return true;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/Tagged.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/Tagged.java b/core/api/src/main/java/org/qi4j/api/service/qualifier/Tagged.java
deleted file mode 100644
index 3c8c0b7..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/Tagged.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.service.qualifier;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import org.qi4j.api.service.ServiceReference;
-import org.qi4j.functional.Specification;
-
-/**
- * Filter services based on tags. Tags can be set using the ServiceTags meta-info, like so:
- * <pre><code>
- * module.addService(MyService.class).taggedWith(new ServiceTags("onetag","twotag"));
- * </code></pre>
- *
- * and then at an injection point you can do this:
- *
- * <pre><code>
- * &#64;Service &#64;Tagged("onetag") MyService service;
- * </code></pre>
- * to get only a service tagged with MyService. If several match only the first match is used.
- */
-@Retention( RetentionPolicy.RUNTIME )
-@Qualifier( Tagged.TaggedQualifier.class )
-public @interface Tagged
-{
-    public abstract String[] value();
-
-    /**
-     * Tagged Annotation Qualifier.
-     * See {@link Tagged}.
-     */
-    public final class TaggedQualifier
-        implements AnnotationQualifier<Tagged>
-    {
-        @Override
-        public Specification<ServiceReference<?>> qualifier( Tagged tagged )
-        {
-            return ServiceQualifier.withTags( tagged.value() );
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/service/qualifier/package.html
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/qualifier/package.html b/core/api/src/main/java/org/qi4j/api/service/qualifier/package.html
deleted file mode 100644
index ec0edd3..0000000
--- a/core/api/src/main/java/org/qi4j/api/service/qualifier/package.html
+++ /dev/null
@@ -1,59 +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>Service Qualifiers.</h2>
-        <p>
-            The @Service injection is only able to specify the type of the service to be injected. If any other type of
-            qualification has to be done it has to be done manually but for common cases it's more convenient to use
-            annotations to do this filtering. This package contains annotations to perform this qualification.
-        </p>
-        <p>Example:</p>
-        <blockquote>
-            <pre>@Service @Tagged( "sometag" ) MyService service;</pre>
-        </blockquote>
-        <p>
-            This will only inject instances of MyService that have been tagged with "sometag". If none exist an
-            exception will occur at injection time since it is not optional.
-        </p>
-        <p>It also works with iterables:</p>
-        <blockquote>
-            <pre>@Service @Tagged( "sometag" ) Iterable&lt;MyService&gt; services;</pre>
-        </blockquote>
-        <p>
-            The qualification will be evaluated upon each call to iterator(), and since the qualifier has access to a
-            ServiceReference, which contains the isActive() method, it can even provide some dynamicity.
-        </p>
-        <blockquote>
-            <pre>@Service @Active Iterable&lt;SomeImportedService&gt; importedServices;</pre>
-        </blockquote>
-        <p>
-            Let's say these SomeImportedService are only sometimes available. Then whenever iterator() is called the
-            {@link org.qi4j.api.service.qualifier.Active} tag can kick in and filter out those whose
-            ServiceReference.isActive() returns false.
-        </p>
-        <p>Standard ones defined in the API are:</p>
-        <ul>
-            <li>{@link org.qi4j.api.service.qualifier.Active}</li>
-            <li>{@link org.qi4j.api.service.qualifier.Available}</li>
-            <li>{@link org.qi4j.api.service.qualifier.HasMetaInfo}</li>
-            <li>{@link org.qi4j.api.service.qualifier.IdentifiedBy}</li>
-            <li>{@link org.qi4j.api.service.qualifier.Tagged}</li>
-        </ul>
-        <p>See tests and API for more examples, and how to implement your own qualifiers.</p>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/sideeffect/GenericSideEffect.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/sideeffect/GenericSideEffect.java b/core/api/src/main/java/org/qi4j/api/sideeffect/GenericSideEffect.java
deleted file mode 100644
index 167c1ef..0000000
--- a/core/api/src/main/java/org/qi4j/api/sideeffect/GenericSideEffect.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman. All rights Reserved.
- *
- * 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.api.sideeffect;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-
-/**
- * Base class for generic SideEffects.
- */
-public abstract class GenericSideEffect
-    extends SideEffectOf<InvocationHandler>
-    implements InvocationHandler
-{
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public Object invoke( final Object proxy, final Method method, final Object[] args )
-        throws Throwable
-    {
-        invoke( method, args );
-        return null;
-    }
-
-    /**
-     * Convenience method to be overridden by subclasses in order to avoid returning null, as returned value from side
-     * effects is not taken in consideration.
-     *
-     * @param method the method that was invoked
-     * @param args   the arguments of the method invocation
-     *
-     * @throws Throwable - the exception to throw from the method invocation on the proxy instance. The exception's type
-     *                   must be assignable either to any of the exception types declared in the throws clause of the
-     *                   interface method or to the unchecked exception types {code}java.lang.RuntimeException{code}
-     *                   or {code}java.lang.Error{code}. If a checked exception is thrown by this method that is not
-     *                   assignable to any of the exception types declared in the throws clause of the interface method,
-     *                   then an UndeclaredThrowableException containing the exception that was thrown by this method
-     *                   will be thrown by the method invocation on the proxy instance.
-     */
-    protected void invoke( final Method method, final Object[] args )
-        throws Throwable
-    {
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectDescriptor.java b/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectDescriptor.java
deleted file mode 100644
index 85e8610..0000000
--- a/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectDescriptor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.sideeffect;
-
-/**
- * SideEffect Descriptor.
- */
-public interface SideEffectDescriptor
-{
-    Class<?> modifierClass();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectOf.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectOf.java b/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectOf.java
deleted file mode 100644
index 39113cc..0000000
--- a/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectOf.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman. All rights Reserved.
- *
- * 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.api.sideeffect;
-
-import org.qi4j.api.sideeffect.internal.SideEffectFor;
-
-/**
- * Base class for SideEffects. It introduces a typed "next" pointer
- * that SideEffects can use to get the result of the original invocation.
- * <p>
- * Generic SideEffects should subclass {@link GenericSideEffect} instead.
- * </p>
- * <p>
- * SideEffects implementations must be thread-safe in their implementation,
- * as multiple threads may share instances.
- * </p>
- */
-public abstract class SideEffectOf<T>
-{
-    final
-    @SideEffectFor
-    protected T result = null;
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffects.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffects.java b/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffects.java
deleted file mode 100644
index bd2e525..0000000
--- a/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffects.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.sideeffect;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * This annotation is used by composites and mixins to declare what SideEffects
- * should apply to the type or specific method.
- */
-@Retention( RetentionPolicy.RUNTIME )
-@Target( { ElementType.TYPE, ElementType.METHOD } )
-@Documented
-public @interface SideEffects
-{
-    Class<?>[] value();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectsDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectsDescriptor.java b/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectsDescriptor.java
deleted file mode 100644
index 9f569ea..0000000
--- a/core/api/src/main/java/org/qi4j/api/sideeffect/SideEffectsDescriptor.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*  Copyright 2008 Edward Yakop.
-*
-* 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.api.sideeffect;
-
-/**
- * SideEffects Descriptor.
- */
-public interface SideEffectsDescriptor
-{
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/sideeffect/internal/SideEffectFor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/sideeffect/internal/SideEffectFor.java b/core/api/src/main/java/org/qi4j/api/sideeffect/internal/SideEffectFor.java
deleted file mode 100644
index 1ab3383..0000000
--- a/core/api/src/main/java/org/qi4j/api/sideeffect/internal/SideEffectFor.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.sideeffect.internal;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import org.qi4j.api.injection.InjectionScope;
-
-/**
- * This annotation is required once in each SideEffect, to mark the
- * field where the element providing the invocation result should be
- * injected.
- * <p>
- * The type of the field must be of the same type as the SideEffect
- * itself, or an InvocationHandler.
- * </p>
- * <p>
- * Example;
- * </p>
- * <pre><code>
- * public interface MyStuff
- * {
- *     SomeResult doSomething();
- * }
- *
- * public class MyStuffSideEffect
- *     implements MyStuff
- * {
- *     &#64;SideEffectFor MyStuff next;
- *
- *     public SomeResult doSomething()
- *     {
- *          SomeResult result = next.doSomething();
- *
- *         // HERE DO THE SIDEEFFECT STUFF.
- *
- *          return result; // Result value is ignored, null would work too.
- *     }
- * }
- * </code></pre>
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ ElementType.FIELD, ElementType.PARAMETER })
-@Documented
-@InjectionScope
-public @interface SideEffectFor
-{
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/sideeffect/internal/package.html
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/sideeffect/internal/package.html b/core/api/src/main/java/org/qi4j/api/sideeffect/internal/package.html
deleted file mode 100644
index 269774e..0000000
--- a/core/api/src/main/java/org/qi4j/api/sideeffect/internal/package.html
+++ /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.
--->
-<html>
-    <body>
-        <h1>Internal/Private package for the API.</h1>
-        <p>
-            This is an internal package, and no classes in this package is part of the API and compatibility
-            with these classes will not be attempted.
-        </p>
-    </body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/sideeffect/package.html
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/sideeffect/package.html b/core/api/src/main/java/org/qi4j/api/sideeffect/package.html
deleted file mode 100644
index a658adb..0000000
--- a/core/api/src/main/java/org/qi4j/api/sideeffect/package.html
+++ /dev/null
@@ -1,21 +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>SideEffect API.</h2>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/structure/Application.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/structure/Application.java b/core/api/src/main/java/org/qi4j/api/structure/Application.java
deleted file mode 100644
index 6023942..0000000
--- a/core/api/src/main/java/org/qi4j/api/structure/Application.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 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.api.structure;
-
-import org.qi4j.api.activation.Activation;
-import org.qi4j.api.activation.ActivationEventListenerRegistration;
-
-/**
- * The Application represents a whole Zest application.
- */
-public interface Application
-    extends ActivationEventListenerRegistration, Activation, MetaInfoHolder
-{
-    /**
-     * Application modes.
-     */
-    public enum Mode
-    {
-        /**
-         * Should be used for unit test runs. Created files etc. should be cleaned up between runs.
-         */
-        test,
-        /**
-         * Should be used during development. Typically create in-memory databases etc.
-         */
-        development,
-        /**
-         * Should be used in QA environments, and other production-like settings where different set of external
-         * resources are utilized.
-         */
-        staging,
-        /**
-         * Should be used in production. All databases are persistent on disk etc.
-         */
-        production
-    }
-
-    /**
-     * @return Application name
-     */
-    String name();
-
-    /**
-     * The version of the application. This can be in any format, but
-     * most likely will follow the Dewey format, i.e. x.y.z.
-     *
-     * @return the version of the application
-     */
-    String version();
-
-    /**
-     * @return Application Mode
-     */
-    Mode mode();
-
-    /**
-     * Find a Layer.
-     *
-     * @param layerName Layer name
-     * @return Found Layer, never returns null
-     * @throws IllegalArgumentException if there's no such Layer
-     */
-    Layer findLayer( String layerName )
-        throws IllegalArgumentException;
-
-    /**
-     * Find a Module.
-     *
-     * @param layerName Layer name
-     * @param moduleName Module name
-     * @return Found Module, never returns null
-     * @throws IllegalArgumentException if there's no such Module
-     */
-    Module findModule( String layerName, String moduleName )
-        throws IllegalArgumentException;
-
-    /**
-     * @return Application Descriptor
-     */
-    ApplicationDescriptor descriptor();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/structure/ApplicationDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/structure/ApplicationDescriptor.java b/core/api/src/main/java/org/qi4j/api/structure/ApplicationDescriptor.java
deleted file mode 100644
index b33f134..0000000
--- a/core/api/src/main/java/org/qi4j/api/structure/ApplicationDescriptor.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.structure;
-
-import org.qi4j.api.Qi4j;
-import org.qi4j.functional.VisitableHierarchy;
-
-/**
- * Application Descriptor.
- */
-public interface ApplicationDescriptor
-    extends VisitableHierarchy<Object, Object>
-{
-    /**
-     * Create a new instance of the Application.
-     * @param runtime Zest Runtime
-     * @param importedServiceInstances Imported Services instances
-     * @return a new instance of the Application.
-     */
-    Application newInstance( Qi4j runtime, Object... importedServiceInstances );
-
-    /**
-     * @return the Application's name
-     */
-    String name();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/structure/Layer.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/structure/Layer.java b/core/api/src/main/java/org/qi4j/api/structure/Layer.java
deleted file mode 100644
index 4268764..0000000
--- a/core/api/src/main/java/org/qi4j/api/structure/Layer.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 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.api.structure;
-
-import org.qi4j.api.activation.Activation;
-import org.qi4j.api.activation.ActivationEventListenerRegistration;
-
-/**
- * The Layer represents a single layer in a Zest application.
- */
-public interface Layer
-    extends ActivationEventListenerRegistration, Activation, MetaInfoHolder
-{
-    /**
-     * @return the Layer's name
-     */
-    String name();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/structure/LayerDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/structure/LayerDescriptor.java b/core/api/src/main/java/org/qi4j/api/structure/LayerDescriptor.java
deleted file mode 100644
index db0c56a..0000000
--- a/core/api/src/main/java/org/qi4j/api/structure/LayerDescriptor.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.structure;
-
-/**
- * Layer Descriptor.
- */
-public interface LayerDescriptor
-{
-
-    /**
-     * @return the Layer's name
-     */
-    String name();
-
-    /**
-     * @return Layers used by this Layer
-     */
-    UsedLayersDescriptor usedLayers();
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/structure/MetaInfoHolder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/structure/MetaInfoHolder.java b/core/api/src/main/java/org/qi4j/api/structure/MetaInfoHolder.java
deleted file mode 100644
index f497a75..0000000
--- a/core/api/src/main/java/org/qi4j/api/structure/MetaInfoHolder.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2012, Niclas Hedhman. All Rights Reserved.
- *
- * 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.api.structure;
-
-/**
- * MetaInfo holder.
- */
-public interface MetaInfoHolder
-{
-
-    /**
-     * Get metadata that implements the given type.
-     * The info is registered during assembly of the application.
-     *
-     * @param infoType the type of metadata to be returned
-     *
-     * @return the metadata for the given type, or <code>null</code> if
-     *         no such metadata has been registered
-     */
-    <T> T metaInfo( Class<T> infoType );
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/structure/Module.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/structure/Module.java b/core/api/src/main/java/org/qi4j/api/structure/Module.java
deleted file mode 100644
index 47ffab8..0000000
--- a/core/api/src/main/java/org/qi4j/api/structure/Module.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 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.api.structure;
-
-import org.qi4j.api.activation.ActivationEventListenerRegistration;
-import org.qi4j.api.composite.TransientBuilderFactory;
-import org.qi4j.api.composite.TransientDescriptor;
-import org.qi4j.api.entity.EntityDescriptor;
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.object.ObjectDescriptor;
-import org.qi4j.api.object.ObjectFactory;
-import org.qi4j.api.query.QueryBuilderFactory;
-import org.qi4j.api.service.ServiceFinder;
-import org.qi4j.api.unitofwork.UnitOfWorkFactory;
-import org.qi4j.api.value.ValueBuilderFactory;
-import org.qi4j.api.value.ValueDescriptor;
-import org.qi4j.functional.Function;
-import org.qi4j.functional.Visitable;
-import org.qi4j.functional.Visitor;
-
-/**
- * API for interacting with a Module. Instances
- * of this can be accessed by using the {@link Structure}
- * injection scope.
- */
-public interface Module
-    extends ActivationEventListenerRegistration,
-            MetaInfoHolder,
-            ObjectFactory,
-            TransientBuilderFactory,
-            ValueBuilderFactory,
-            UnitOfWorkFactory,
-            QueryBuilderFactory,
-            ServiceFinder
-{
-
-    /**
-     * @return the Module's name
-     */
-    String name();
-
-    /**
-     * @return the Module's ClassLoader
-     */
-    ClassLoader classLoader();
-
-    /**
-     * @param typeName name of a transient composite type
-     * @return the descriptor for a transient composite or null if the class could not be found or the transient composite is not visible
-     */
-    TransientDescriptor transientDescriptor( String typeName );
-
-    /**
-     * @param typeName name of an entity composite type
-     * @return the descriptor for an entity composite or null if the class could not be found or the entity composite is not visible
-     */
-    EntityDescriptor entityDescriptor( String typeName );
-
-    /**
-     * @param typeName name of an object type
-     * @return the descriptor for an object or null if the class could not be found or the object is not visible
-     */
-    ObjectDescriptor objectDescriptor( String typeName );
-
-    /**
-     * @param typeName name of a value composite type
-     * @return the descriptor for a value composite or null if the class could not be found or the value composite is not visible
-     */
-    ValueDescriptor valueDescriptor( String typeName );
-
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/structure/ModuleDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/structure/ModuleDescriptor.java b/core/api/src/main/java/org/qi4j/api/structure/ModuleDescriptor.java
deleted file mode 100644
index ffb7b9b..0000000
--- a/core/api/src/main/java/org/qi4j/api/structure/ModuleDescriptor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.structure;
-
-/**
- * Module Descriptor.
- */
-public interface ModuleDescriptor
-{
-    String name();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/structure/UsedLayersDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/structure/UsedLayersDescriptor.java b/core/api/src/main/java/org/qi4j/api/structure/UsedLayersDescriptor.java
deleted file mode 100644
index ee530b7..0000000
--- a/core/api/src/main/java/org/qi4j/api/structure/UsedLayersDescriptor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.structure;
-
-/**
- * Used Layers Descriptor.
- */
-public interface UsedLayersDescriptor
-{
-    Iterable<? extends LayerDescriptor> layers();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/structure/package.html
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/structure/package.html b/core/api/src/main/java/org/qi4j/api/structure/package.html
deleted file mode 100644
index 3134a90..0000000
--- a/core/api/src/main/java/org/qi4j/api/structure/package.html
+++ /dev/null
@@ -1,21 +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>Application Structure API.</h2>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/type/CollectionType.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/type/CollectionType.java b/core/api/src/main/java/org/qi4j/api/type/CollectionType.java
deleted file mode 100644
index 1b85b5f..0000000
--- a/core/api/src/main/java/org/qi4j/api/type/CollectionType.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.type;
-
-import java.lang.reflect.Type;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import org.qi4j.api.util.Classes;
-
-/**
- * Collection ValueType.
- * <p>This handles Collection, List and Set types.</p>
- */
-public final class CollectionType
-    extends ValueType
-{
-
-    public static boolean isCollection( Type type )
-    {
-        Class<?> cl = Classes.RAW_CLASS.map( type );
-        return cl.equals( Collection.class ) || cl.equals( List.class ) || cl.equals( Set.class );
-    }
-
-    public static CollectionType collectionOf( Class<?> collectedType )
-    {
-        return new CollectionType( Collection.class, ValueType.of( collectedType ) );
-    }
-
-    public static CollectionType listOf( Class<?> collectedType )
-    {
-        return new CollectionType( List.class, ValueType.of( collectedType ) );
-    }
-
-    public static CollectionType setOf( Class<?> collectedType )
-    {
-        return new CollectionType( Set.class, ValueType.of( collectedType ) );
-    }
-    private ValueType collectedType;
-
-    public CollectionType( Class<?> type, ValueType collectedType )
-    {
-        super( type );
-        this.collectedType = collectedType;
-        if( !isCollection( type ) )
-        {
-            throw new IllegalArgumentException( type + " is not a Collection, List or Set." );
-        }
-    }
-
-    public ValueType collectedType()
-    {
-        return collectedType;
-    }
-
-    @Override
-    public String toString()
-    {
-        return super.toString() + "<" + collectedType + ">";
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/type/EnumType.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/type/EnumType.java b/core/api/src/main/java/org/qi4j/api/type/EnumType.java
deleted file mode 100644
index aa4ff31..0000000
--- a/core/api/src/main/java/org/qi4j/api/type/EnumType.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.type;
-
-import java.lang.reflect.Type;
-
-/**
- * Enum ValueType.
- */
-public final class EnumType
-    extends ValueType
-{
-
-    public static boolean isEnum( Type type )
-    {
-        if( type instanceof Class )
-        {
-            Class<?> typeClass = (Class) type;
-            return ( typeClass.isEnum() );
-        }
-        return false;
-    }
-
-    public static EnumType of( Class<?> type )
-    {
-        return new EnumType( type );
-    }
-
-    public EnumType( Class<?> type )
-    {
-        super( type );
-        if( !isEnum( type ) )
-        {
-            throw new IllegalArgumentException( type + " is not an Enum." );
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/type/HasTypes.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/type/HasTypes.java b/core/api/src/main/java/org/qi4j/api/type/HasTypes.java
deleted file mode 100644
index 0ad36a4..0000000
--- a/core/api/src/main/java/org/qi4j/api/type/HasTypes.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.qi4j.api.type;
-
-/**
- * Has types.
- */
-public interface HasTypes
-{
-    Iterable<Class<?>> types();
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8744a67f/core/api/src/main/java/org/qi4j/api/type/MapType.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/type/MapType.java b/core/api/src/main/java/org/qi4j/api/type/MapType.java
deleted file mode 100644
index 1cb1700..0000000
--- a/core/api/src/main/java/org/qi4j/api/type/MapType.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * 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.api.type;
-
-import java.lang.reflect.Type;
-import java.util.Map;
-import org.qi4j.api.util.Classes;
-
-/**
- * Map ValueType.
- * <p>This handles instances of Map.</p>
- */
-public final class MapType
-    extends ValueType
-{
-
-    private ValueType keyType;
-    private ValueType valueType;
-    private final Serialization.Variant variant;
-
-    public static boolean isMap( Type type )
-    {
-        Class<?> cl = Classes.RAW_CLASS.map( type );
-        return Map.class.isAssignableFrom( cl );
-    }
-
-    public static MapType of( Class<?> keyType, Class<?> valueType )
-    {
-        return new MapType( Map.class, ValueType.of( keyType ), ValueType.of( valueType ) );
-    }
-
-    public static MapType of( Class<?> keyType, Class<?> valueType, Serialization.Variant variant )
-    {
-        return new MapType( Map.class, ValueType.of( keyType ), ValueType.of( valueType ), variant );
-    }
-
-    public MapType( Class<?> type, ValueType keyType, ValueType valueType )
-    {
-        this( type, keyType, valueType, Serialization.Variant.entry );
-    }
-
-    public MapType( Class<?> type, ValueType keyType, ValueType valueType, Serialization.Variant variant )
-    {
-        super( type );
-        this.keyType = keyType;
-        this.valueType = valueType;
-        this.variant = variant;
-        if( !isMap( type ) )
-        {
-            throw new IllegalArgumentException( type + " is not a Map." );
-        }
-    }
-
-    public ValueType keyType()
-    {
-        return keyType;
-    }
-
-    public ValueType valueType()
-    {
-        return valueType;
-    }
-
-    public Serialization.Variant variant()
-    {
-        return variant;
-    }
-
-    @Override
-    public String toString()
-    {
-        return super.toString() + "<" + keyType + "," + valueType + ">";
-    }
-}