diff --git a/Annotation/Service.php b/Annotation/Service.php
index 8b8b0de..abb01e0 100644
--- a/Annotation/Service.php
+++ b/Annotation/Service.php
@@ -33,9 +33,6 @@ final class Service
/** @var bool */
public $public;
- /** @var string */
- public $scope;
-
/** @var bool */
public $shared;
diff --git a/HttpKernel/ControllerResolver.php b/HttpKernel/ControllerResolver.php
index 71e7366..67d4eb0 100644
--- a/HttpKernel/ControllerResolver.php
+++ b/HttpKernel/ControllerResolver.php
@@ -28,7 +28,7 @@
use Symfony\Component\Config\ConfigCache;
use Symfony\Component\Config\Resource\FileResource;
use Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass;
-use Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass;
+use Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
@@ -152,7 +152,7 @@ private function prepareContainer($cache, $containerFilename, $metadata, $classN
$config = $container->getCompilerPassConfig();
$config->setOptimizationPasses(array());
$config->setRemovingPasses(array());
- $config->addPass(new ResolveDefinitionTemplatesPass());
+ $config->addPass(new ResolveChildDefinitionsPass());
$config->addPass(new PointcutMatchingPass($this->container->get('jms_aop.pointcut_container')->getPointcuts()));
$config->addPass(new InlineServiceDefinitionsPass());
$container->compile();
diff --git a/Metadata/Driver/AnnotationDriver.php b/Metadata/Driver/AnnotationDriver.php
index c8ecd9a..3a448cc 100644
--- a/Metadata/Driver/AnnotationDriver.php
+++ b/Metadata/Driver/AnnotationDriver.php
@@ -233,7 +233,6 @@ private function parseServiceAnnotation(Service $annot, ClassMetadata $metadata,
$metadata->parent = $annot->parent;
$metadata->public = $annot->public;
- $metadata->scope = $annot->scope;
$metadata->shared = $annot->shared;
$metadata->abstract = $annot->abstract;
$metadata->decorates = $annot->decorates;
diff --git a/Metadata/MetadataConverter.php b/Metadata/MetadataConverter.php
index d8f5269..3cfed28 100644
--- a/Metadata/MetadataConverter.php
+++ b/Metadata/MetadataConverter.php
@@ -20,6 +20,7 @@
use JMS\DiExtraBundle\Exception\InvalidAnnotationException;
use Metadata\ClassHierarchyMetadata;
+use Symfony\Component\DependencyInjection\ChildDefinition;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\DefinitionDecorator;
use Symfony\Component\DependencyInjection\Reference;
@@ -75,15 +76,16 @@ private function convertMetadata(ClassMetadata $classMetadata, ClassMetadata $pr
if (null === $previous && null === $classMetadata->parent) {
$definition = new Definition();
} else {
- $definition = new DefinitionDecorator(
+ $definition = new ChildDefinition(
$classMetadata->parent ?: $previous->id
);
}
- $definition->setClass($classMetadata->name);
- if (null !== $classMetadata->scope) {
- $definition->setScope($classMetadata->scope);
- }
+ $definition
+ ->setClass($classMetadata->name)
+ ->setPublic(true)
+ ->setPrivate(false)
+ ;
if (null !== $classMetadata->shared) {
$definition->setShared($classMetadata->shared);
}
diff --git a/Resources/config/services.xml b/Resources/config/services.xml
index b321e96..5830268 100644
--- a/Resources/config/services.xml
+++ b/Resources/config/services.xml
@@ -35,7 +35,7 @@
jms_di_extra.metadata_driver
-
+