diff --git a/core/lib/Drupal/Core/CoreBundle.php b/core/lib/Drupal/Core/CoreBundle.php index f3bf1968c9f92fb6a18182dedbb1f5e00175db4c..b8dd58f803d5d2bc7dae4a547ad1260bc87acea2 100644 --- a/core/lib/Drupal/Core/CoreBundle.php +++ b/core/lib/Drupal/Core/CoreBundle.php @@ -223,14 +223,6 @@ public function build(ContainerBuilder $container) { $container ->register('transliteration', 'Drupal\Core\Transliteration\PHPTransliteration'); - // Add Serializer with arguments to be replaced in the compiler pass. - // Register the entity reference handler plugin manager class. - $container->register('plugin.manager.rest.entityreference_handler', 'Drupal\rest\Plugin\Type\EntityReferenceHandlerPluginManager'); - $container->register('serializer', 'Drupal\Core\Serialization\Serializer') - ->addArgument(array()) - ->addArgument(array()) - ->addArgument(new Reference('plugin.manager.rest.entityreference_handler')); - $container->register('serializer.normalizer.complex_data', 'Drupal\Core\Serialization\ComplexDataNormalizer')->addTag('normalizer'); $container->register('serializer.normalizer.list', 'Drupal\Core\Serialization\ListNormalizer')->addTag('normalizer'); $container->register('serializer.normalizer.typed_data', 'Drupal\Core\Serialization\TypedDataNormalizer')->addTag('normalizer'); diff --git a/core/lib/Drupal/Core/Serialization/EntityReferenceHandlerAwareInterface.php b/core/lib/Drupal/Core/Serialization/EntityReferenceHandlerAwareInterface.php index 70486960f3209d329de3904576db6cad7a6a2f82..355cbc9ad412d320fcba74a2a3efeeebbf84c9ef 100644 --- a/core/lib/Drupal/Core/Serialization/EntityReferenceHandlerAwareInterface.php +++ b/core/lib/Drupal/Core/Serialization/EntityReferenceHandlerAwareInterface.php @@ -7,7 +7,7 @@ namespace Drupal\Core\Serialization; -use Drupal\rest\Plugin\Type\EntityReferenceHandlerPluginManager; +use Drupal\serialization\Plugin\Type\EntityReferenceHandlerPluginManager; interface EntityReferenceHandlerAwareInterface { diff --git a/core/modules/jsonld/lib/Drupal/jsonld/JsonldEntityNormalizer.php b/core/modules/jsonld/lib/Drupal/jsonld/JsonldEntityNormalizer.php index be4743104b6d7abf94ce1ecbb36623ceedca4cdb..acc75c35b92354896ae562d65ef987aa090d86b9 100644 --- a/core/modules/jsonld/lib/Drupal/jsonld/JsonldEntityNormalizer.php +++ b/core/modules/jsonld/lib/Drupal/jsonld/JsonldEntityNormalizer.php @@ -9,7 +9,7 @@ use Drupal\Core\Serialization\EntityReferenceHandlerAwareInterface; use Drupal\jsonld\JsonldNormalizerBase; -use Drupal\rest\Plugin\Type\EntityReferenceHandlerPluginManager; +use Drupal\serialization\Plugin\Type\EntityReferenceHandlerPluginManager; use Drupal\rdf\RdfMappingException; use Symfony\Component\Serializer\Exception\UnexpectedValueException; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; diff --git a/core/modules/rest/lib/Drupal/rest/RequestHandler.php b/core/modules/rest/lib/Drupal/rest/RequestHandler.php index 2c6c2d62971ebcf6be17e4e5889c37ad5a8faf4d..b8d6d42e95416638d42fc8268d1cadffec894f82 100644 --- a/core/modules/rest/lib/Drupal/rest/RequestHandler.php +++ b/core/modules/rest/lib/Drupal/rest/RequestHandler.php @@ -42,13 +42,9 @@ public function handle(Request $request, $id = NULL) { if (!empty($received)) { $definition = $resource->getDefinition(); $class = $definition['serialization_class']; - // Pass in the Entity Reference Handler Plugin Manager from the container. - $context = array( - 'entityreference_handler_plugin_manager' => $this->container->get('plugin.manager.rest.entityreference_handler'), - ); // @todo Replace the format here with something we get from the HTTP // Content-type header. See http://drupal.org/node/1850704 - $unserialized = $serializer->deserialize($received, $class, 'drupal_jsonld', $context); + $unserialized = $serializer->deserialize($received, $class, 'drupal_jsonld'); } // Invoke the operation on the resource plugin. diff --git a/core/modules/rest/rest.info b/core/modules/rest/rest.info index c0bf4bdf7fd627cbf73e6d2cb28c1bf135d3f08d..c450567f12a8a3a504e1c92a4d7f3257f5184961 100644 --- a/core/modules/rest/rest.info +++ b/core/modules/rest/rest.info @@ -5,4 +5,5 @@ version = VERSION core = 8.x ; @todo Remove this dependency once hard coding to JSON-LD is gone. dependencies[] = jsonld +dependencies[] = serialization configure = admin/config/services/rest diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/Type/EntityReferenceHandlerPluginManager.php b/core/modules/serialization/lib/Drupal/serialization/Plugin/Type/EntityReferenceHandlerPluginManager.php similarity index 69% rename from core/modules/rest/lib/Drupal/rest/Plugin/Type/EntityReferenceHandlerPluginManager.php rename to core/modules/serialization/lib/Drupal/serialization/Plugin/Type/EntityReferenceHandlerPluginManager.php index 5bf35b1d86fd7b880414f0562f2d28f966dacb11..02a01f2bd1e8353555cf8d5a176bf5e935f46485 100644 --- a/core/modules/rest/lib/Drupal/rest/Plugin/Type/EntityReferenceHandlerPluginManager.php +++ b/core/modules/serialization/lib/Drupal/serialization/Plugin/Type/EntityReferenceHandlerPluginManager.php @@ -2,10 +2,10 @@ /** * @file - * Contains Drupal/rest/Plugin/Type/EntityReferenceHandlerPluginManager + * Contains Drupal/serialization/Plugin/Type/EntityReferenceHandlerPluginManager */ -namespace Drupal\rest\Plugin\Type; +namespace Drupal\serialization\Plugin\Type; use Drupal\Component\Plugin\PluginManagerBase; use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery; @@ -20,7 +20,7 @@ class EntityReferenceHandlerPluginManager extends PluginManagerBase { * Overrides Drupal\Component\Plugin\PluginManagerBase::__construct(). */ public function __construct() { - $this->discovery = new AnnotatedClassDiscovery('rest', 'entityreference_handler'); + $this->discovery = new AnnotatedClassDiscovery('serialization', 'entityreference_handler'); $this->factory = new DefaultFactory($this); } } diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/rest/entityreference_handler/ConfiguredValue.php b/core/modules/serialization/lib/Drupal/serialization/Plugin/serialization/entityreference_handler/ConfiguredValue.php similarity index 89% rename from core/modules/rest/lib/Drupal/rest/Plugin/rest/entityreference_handler/ConfiguredValue.php rename to core/modules/serialization/lib/Drupal/serialization/Plugin/serialization/entityreference_handler/ConfiguredValue.php index c2a7d4ee2e5a977b57907242b8b6d97d841e0c0d..46e9d4c99f351f590faf2dcb82cbd603a98f653e 100644 --- a/core/modules/rest/lib/Drupal/rest/Plugin/rest/entityreference_handler/ConfiguredValue.php +++ b/core/modules/serialization/lib/Drupal/serialization/Plugin/serialization/entityreference_handler/ConfiguredValue.php @@ -5,7 +5,7 @@ * Contains Drupal/rest/Plugin/rest/entityreference_handler/ConfiguredValue */ -namespace Drupal\rest\Plugin\rest\entityreference_handler; +namespace Drupal\serialization\Plugin\serialization\entityreference_handler; use Drupal\Core\Annotation\Plugin; use Drupal\Core\Annotation\Translation; diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/rest/entityreference_handler/UriDereference.php b/core/modules/serialization/lib/Drupal/serialization/Plugin/serialization/entityreference_handler/UriDereference.php similarity index 85% rename from core/modules/rest/lib/Drupal/rest/Plugin/rest/entityreference_handler/UriDereference.php rename to core/modules/serialization/lib/Drupal/serialization/Plugin/serialization/entityreference_handler/UriDereference.php index e370621c8d5f4a214e7519e5104df589efd5d54b..91f3aa5953ced040858350e19467c368f7616aa1 100644 --- a/core/modules/rest/lib/Drupal/rest/Plugin/rest/entityreference_handler/UriDereference.php +++ b/core/modules/serialization/lib/Drupal/serialization/Plugin/serialization/entityreference_handler/UriDereference.php @@ -5,7 +5,7 @@ * Contains Drupal/rest/Plugin/rest/entityreference_handler/UriDereference */ -namespace Drupal\rest\Plugin\rest\entityreference_handler; +namespace Drupal\serialization\Plugin\serialization\entityreference_handler; use Drupal\Core\Annotation\Plugin; use Drupal\Core\Annotation\Translation; diff --git a/core/modules/serialization/lib/Drupal/serialization/SerializationBundle.php b/core/modules/serialization/lib/Drupal/serialization/SerializationBundle.php new file mode 100644 index 0000000000000000000000000000000000000000..9fad79a4493ea03184e086dd1512f49013729247 --- /dev/null +++ b/core/modules/serialization/lib/Drupal/serialization/SerializationBundle.php @@ -0,0 +1,31 @@ +register('plugin.manager.serialization.entityreference_handler', 'Drupal\serialization\Plugin\Type\EntityReferenceHandlerPluginManager'); + // Add Serializer with arguments to be replaced in the compiler pass. + $container->register('serializer', 'Drupal\Core\Serialization\Serializer') + ->addArgument(array()) + ->addArgument(array()) + ->addArgument(new Reference('plugin.manager.serialization.entityreference_handler')); + } +} diff --git a/core/modules/serialization/serialization.info b/core/modules/serialization/serialization.info new file mode 100644 index 0000000000000000000000000000000000000000..9ae7649fee91c09c504f83580ef2839846dce00e --- /dev/null +++ b/core/modules/serialization/serialization.info @@ -0,0 +1,4 @@ +name = Serialization +description = Provides a service for (de)serializing data to/from formats such as JSON and XML +package = Core +core = 8.x diff --git a/core/modules/action/tests/action_bulk_test/action_bulk_test.module b/core/modules/serialization/serialization.module similarity index 100% copy from core/modules/action/tests/action_bulk_test/action_bulk_test.module copy to core/modules/serialization/serialization.module