diff --git a/project_dependency.drupal.inc b/project_dependency.drupal.inc
index 0500c3e..902c3d6 100644
--- a/project_dependency.drupal.inc
+++ b/project_dependency.drupal.inc
@@ -76,6 +76,12 @@ function project_dependency_info_parse(array $info_files, $tag) {
     // Change info keys to suite project_dependency_info.
     $info[$component]['title'] = $info[$component]['name'];
     $info[$component]['name'] = $component;
+
+    // Look for composer.json files associated with this component
+    $composer_json = dirname($file) . '/composer.json';
+    if (file_exists($composer_json)) {
+      $info[$component]['composer'] = file_get_contents($composer_json);
+    }
   }
   return $info;
 }
diff --git a/project_dependency.install b/project_dependency.install
index f219756..e550c6c 100644
--- a/project_dependency.install
+++ b/project_dependency.install
@@ -55,6 +55,18 @@ function project_dependency_schema() {
         'type' => 'text',
         'size' => 'medium',
       ),
+      'package' => array(
+        'description' => 'The package for the component.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'composer' => array(
+        'description' => 'The optional composer requirements.',
+        'type' => 'text',
+        'size' => 'medium',
+      ),
     ),
     'primary key' => array('component_id'),
     'indexes' => array(
@@ -129,3 +141,29 @@ function project_dependency_update_7000() {
     array('indexes' => array('component_dependency' => array('component_id', 'dependency')))
   );
 }
+
+/**
+ * Add package and composer fields in {project_dependency_component} table.
+ */
+function project_dependency_update_7100() {
+  $fields = array(
+    'package' => array(
+      'description' => 'The package for the component.',
+      'type' => 'varchar',
+      'length' => 255,
+      'not null' => TRUE,
+      'default' => '',
+    ),
+    'composer' => array(
+      'description' => 'The optional composer requirements.',
+      'type' => 'text',
+      'size' => 'medium',
+    ),
+  );
+
+  foreach ($fields as $key => $field)  {
+    if (!db_field_exists('project_dependency_component', $key)) {
+      db_add_field('project_dependency_component', $key, $field);
+    }
+  }
+}
diff --git a/project_dependency.package.inc b/project_dependency.package.inc
index 0e83a9e..b6f97dc 100644
--- a/project_dependency.package.inc
+++ b/project_dependency.package.inc
@@ -46,6 +46,7 @@ function project_dependency_info_package_clear($release_nid) {
 function project_dependency_info_package_list_store($release_nid, array $info) {
   $records = array();
   foreach ($info as $component => $component_info) {
+    $composer = (isset($component_info['composer'])) ? $component_info['composer'] : '';
     // These will always be insertions, because we've already deleted the old
     // ones.
     $project_dependency_component_info = array(
@@ -53,6 +54,8 @@ function project_dependency_info_package_list_store($release_nid, array $info) {
       'name' => $component_info['name'],
       'title' => $component_info['title'],
       'description' => $component_info['description'],
+      'package' => $component_info['package'],
+      'composer' => $composer,
     );
     $result = drupal_write_record('project_dependency_component', $project_dependency_component_info);
     $records[$component] = $project_dependency_component_info;
