Skip to content

Commit

Permalink
SONAR-6256 Drop dependencies.from_resource_id and dependencies.to_res…
Browse files Browse the repository at this point in the history
…ource_id
  • Loading branch information
julienlancelot committed Apr 21, 2015
1 parent c83af35 commit e58da28
Show file tree
Hide file tree
Showing 18 changed files with 212 additions and 53 deletions.
Expand Up @@ -65,6 +65,7 @@
import org.sonar.server.db.migrations.v51.RenameComponentRelatedParamsInIssueFilters; import org.sonar.server.db.migrations.v51.RenameComponentRelatedParamsInIssueFilters;
import org.sonar.server.db.migrations.v51.UpdateProjectsModuleUuidPath; import org.sonar.server.db.migrations.v51.UpdateProjectsModuleUuidPath;
import org.sonar.server.db.migrations.v52.AddDependenciesComponentUuidColumns; import org.sonar.server.db.migrations.v52.AddDependenciesComponentUuidColumns;
import org.sonar.server.db.migrations.v52.DropDependenciesComponentColumns;
import org.sonar.server.db.migrations.v52.FeedDependenciesComponentUuids; import org.sonar.server.db.migrations.v52.FeedDependenciesComponentUuids;
import org.sonar.server.db.migrations.v52.FeedEventsComponentUuid; import org.sonar.server.db.migrations.v52.FeedEventsComponentUuid;
import org.sonar.server.db.migrations.v52.FeedProjectLinksComponentUuid; import org.sonar.server.db.migrations.v52.FeedProjectLinksComponentUuid;
Expand Down Expand Up @@ -139,6 +140,7 @@ public interface MigrationSteps {
FeedEventsComponentUuid.class, FeedEventsComponentUuid.class,
MoveProjectProfileAssociation.class, MoveProjectProfileAssociation.class,
AddDependenciesComponentUuidColumns.class, AddDependenciesComponentUuidColumns.class,
FeedDependenciesComponentUuids.class FeedDependenciesComponentUuids.class,
DropDependenciesComponentColumns.class
); );
} }
Expand Up @@ -26,6 +26,8 @@


import java.sql.SQLException; import java.sql.SQLException;


import static org.sonar.server.db.migrations.AddColumnsBuilder.ColumnDef.Type.STRING;

/** /**
* Add the following columns to the dependencies table : * Add the following columns to the dependencies table :
* - from_component_uuid * - from_component_uuid
Expand All @@ -50,14 +52,14 @@ private String generateSql() {
.addColumn( .addColumn(
new AddColumnsBuilder.ColumnDef() new AddColumnsBuilder.ColumnDef()
.setName("from_component_uuid") .setName("from_component_uuid")
.setType(AddColumnsBuilder.ColumnDef.Type.STRING) .setType(STRING)
.setLimit(50) .setLimit(50)
.setNullable(true) .setNullable(true)
) )
.addColumn( .addColumn(
new AddColumnsBuilder.ColumnDef() new AddColumnsBuilder.ColumnDef()
.setName("to_component_uuid") .setName("to_component_uuid")
.setType(AddColumnsBuilder.ColumnDef.Type.STRING) .setType(STRING)
.setLimit(50) .setLimit(50)
.setNullable(true) .setNullable(true)
) )
Expand Down
@@ -0,0 +1,55 @@
/*
* SonarQube, open source software quality management tool.
* Copyright (C) 2008-2014 SonarSource
* mailto:contact AT sonarsource DOT com
*
* SonarQube is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* SonarQube is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

package org.sonar.server.db.migrations.v52;

import com.google.common.annotations.VisibleForTesting;
import org.sonar.core.persistence.Database;
import org.sonar.server.db.migrations.DdlChange;
import org.sonar.server.db.migrations.DropColumnsBuilder;

import java.sql.SQLException;

/**
* Remove the following columns from the dependencies table :
* - from_resource_id
* - to_resource_id
*/
public class DropDependenciesComponentColumns extends DdlChange {

private final Database db;

public DropDependenciesComponentColumns(Database db) {
super(db);
this.db = db;
}

@Override
public void execute(Context context) throws SQLException {
context.execute(generateSql());
}

@VisibleForTesting
String generateSql() {
return new DropColumnsBuilder(db.getDialect(), "dependencies", "from_resource_id", "to_resource_id")
.build();
}

}
@@ -0,0 +1,52 @@
/*
* SonarQube, open source software quality management tool.
* Copyright (C) 2008-2014 SonarSource
* mailto:contact AT sonarsource DOT com
*
* SonarQube is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* SonarQube is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

package org.sonar.server.db.migrations.v52;

import org.junit.Before;
import org.junit.Test;
import org.sonar.core.persistence.Database;
import org.sonar.core.persistence.dialect.PostgreSql;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class DropDependenciesComponentColumnsTest {

DropDependenciesComponentColumns migration;

Database database;

@Before
public void setUp() throws Exception {
database = mock(Database.class);
migration = new DropDependenciesComponentColumns(database);
}

@Test
public void generate_sql_on_postgresql() throws Exception {
when(database.getDialect()).thenReturn(new PostgreSql());
assertThat(migration.generateSql()).isEqualTo(
"ALTER TABLE dependencies DROP COLUMN from_resource_id, DROP COLUMN to_resource_id"
);
}

}
Expand Up @@ -66,7 +66,7 @@ def to_json(dependencies_by_from, from_sid)
dependencies.each do |dep| dependencies.each do |dep|
hash={ hash={
:did => dep.id.to_s, :did => dep.id.to_s,
:rid => dep.to_resource_id.to_s, :rid => dep.to.id.to_s,
:w => dep.weight, :w => dep.weight,
:u => dep.usage, :u => dep.usage,
:s => dep.to_scope, :s => dep.to_scope,
Expand Down
Expand Up @@ -18,10 +18,10 @@
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# #
class Dependency < ActiveRecord::Base class Dependency < ActiveRecord::Base
belongs_to :from, :class_name => 'Project', :foreign_key => 'from_resource_id' belongs_to :from, :class_name => 'Project', :foreign_key => 'from_component_uuid', :primary_key => 'uuid'
belongs_to :from_snapshot, :class_name => 'Snapshot', :foreign_key => 'from_snapshot_id' belongs_to :from_snapshot, :class_name => 'Snapshot', :foreign_key => 'from_snapshot_id'


belongs_to :to, :class_name => 'Project', :foreign_key => 'to_resource_id' belongs_to :to, :class_name => 'Project', :foreign_key => 'to_component_uuid', :primary_key => 'uuid'
belongs_to :to_snapshot, :class_name => 'Snapshot', :foreign_key => 'to_snapshot_id' belongs_to :to_snapshot, :class_name => 'Snapshot', :foreign_key => 'to_snapshot_id'


belongs_to :project, :class_name => 'Project', :foreign_key => 'project_id' belongs_to :project, :class_name => 'Project', :foreign_key => 'project_id'
Expand Down
@@ -0,0 +1,31 @@
#
# SonarQube, open source software quality management tool.
# Copyright (C) 2008-2014 SonarSource
# mailto:contact AT sonarsource DOT com
#
# SonarQube is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# SonarQube is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#

#
# SonarQube 5.2
# SONAR-6256
#
class RemoveDependenciesComponentIds < ActiveRecord::Migration

def self.up
execute_java_migration('org.sonar.server.db.migrations.v52.DropDependenciesComponentColumns')
end

end
Expand Up @@ -64,11 +64,11 @@ private void saveInDB(Project project, Dependency dependency, BatchResource from
model.setUsage(dependency.getUsage()); model.setUsage(dependency.getUsage());
model.setWeight(dependency.getWeight()); model.setWeight(dependency.getWeight());


model.setFromResourceId(fromResource.resource().getId()); model.setFromComponentUuid(fromResource.resource().getUuid());
model.setFromScope(fromResource.resource().getScope()); model.setFromScope(fromResource.resource().getScope());
model.setFromSnapshotId(fromResource.snapshotId()); model.setFromSnapshotId(fromResource.snapshotId());


model.setToResourceId(toResource.resource().getId()); model.setToComponentUuid(toResource.resource().getUuid());
model.setToScope(toResource.resource().getScope()); model.setToScope(toResource.resource().getScope());
model.setToSnapshotId(toResource.snapshotId()); model.setToSnapshotId(toResource.snapshotId());


Expand Down
Expand Up @@ -33,7 +33,7 @@
*/ */
public class DatabaseVersion implements BatchComponent, ServerComponent { public class DatabaseVersion implements BatchComponent, ServerComponent {


public static final int LAST_VERSION = 910; public static final int LAST_VERSION = 911;


/** /**
* List of all the tables.n * List of all the tables.n
Expand Down
Expand Up @@ -334,6 +334,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('907');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('908'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('908');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('909'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('909');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('910'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('910');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('911');


INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '1418215735482', '1418215735482', null, null); INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '1418215735482', '1418215735482', null, null);
ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2; ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2;
Expand Up @@ -6,10 +6,8 @@ CREATE TABLE "GROUPS_USERS" (
CREATE TABLE "DEPENDENCIES" ( CREATE TABLE "DEPENDENCIES" (
"ID" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "ID" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),
"FROM_SNAPSHOT_ID" INTEGER, "FROM_SNAPSHOT_ID" INTEGER,
"FROM_RESOURCE_ID" INTEGER,
"FROM_COMPONENT_UUID" VARCHAR(50), "FROM_COMPONENT_UUID" VARCHAR(50),
"TO_SNAPSHOT_ID" INTEGER, "TO_SNAPSHOT_ID" INTEGER,
"TO_RESOURCE_ID" INTEGER,
"TO_COMPONENT_UUID" VARCHAR(50), "TO_COMPONENT_UUID" VARCHAR(50),
"DEP_USAGE" VARCHAR(30), "DEP_USAGE" VARCHAR(30),
"DEP_WEIGHT" INTEGER, "DEP_WEIGHT" INTEGER,
Expand Down
Expand Up @@ -22,32 +22,46 @@
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.apache.ibatis.session.ResultContext; import org.apache.ibatis.session.ResultContext;
import org.apache.ibatis.session.ResultHandler; import org.apache.ibatis.session.ResultHandler;
import org.apache.ibatis.session.SqlSession; import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test; import org.junit.Test;
import org.sonar.core.persistence.AbstractDaoTestCase; import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis; import org.sonar.core.persistence.DbTester;


import java.util.List; import java.util.List;


import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;


public class DependencyMapperTest extends AbstractDaoTestCase { public class DependencyMapperTest {

@ClassRule
public static DbTester dbtester = new DbTester();

DbSession session;

@Before
public void setUp() throws Exception {
dbtester.truncateTables();
session = dbtester.myBatis().openSession(false);
}

@After
public void tearDown() throws Exception {
session.close();
}

@Test @Test
public void should_find_all() { public void select_all_dependencies() {
setupData("fixture"); dbtester.prepareDbUnit(getClass(), "fixture.xml");


final List<DependencyDto> dependencies = Lists.newArrayList(); final List<DependencyDto> dependencies = Lists.newArrayList();


SqlSession session = getMyBatis().openSession(); session.getMapper(DependencyMapper.class).selectAll(new ResultHandler() {
try { public void handleResult(ResultContext context) {
session.getMapper(DependencyMapper.class).selectAll(new ResultHandler() { dependencies.add((DependencyDto) context.getResultObject());
public void handleResult(ResultContext context) { }
dependencies.add((DependencyDto) context.getResultObject()); });
}
});
} finally {
MyBatis.closeQuietly(session);
}


assertThat(dependencies).hasSize(2); assertThat(dependencies).hasSize(2);


Expand Down
@@ -1,4 +1,4 @@
<dataset> <dataset>
<dependencies id="1" from_resource_id="100" to_resource_id="101" from_snapshot_id="1000" to_snapshot_id="1001" dep_usage="compile" dep_weight="1" /> <dependencies id="1" from_component_uuid="ABCD" to_component_uuid="EFGH" from_snapshot_id="1000" to_snapshot_id="1001" dep_usage="compile" dep_weight="1" />
<dependencies id="2" from_resource_id="200" to_resource_id="201" from_snapshot_id="2000" to_snapshot_id="2001" dep_usage="provided" dep_weight="1" /> <dependencies id="2" from_component_uuid="DCBA" to_component_uuid="HGFE" from_snapshot_id="2000" to_snapshot_id="2001" dep_usage="provided" dep_weight="1" />
</dataset> </dataset>
Expand Up @@ -22,7 +22,7 @@
person_id="[null]" person_id="[null]"
text_value="[null]" tendency="[null]" measure_date="[null]" project_id="[null]" text_value="[null]" tendency="[null]" measure_date="[null]" project_id="[null]"
alert_status="[null]" description="[null]" measure_data="[null]"/> alert_status="[null]" description="[null]" measure_data="[null]"/>
<dependencies id="1" from_resource_id="1" from_component_uuid="A" from_snapshot_id="1" to_resource_id="30" to_component_uuid="CC" to_snapshot_id="30" <dependencies id="1" from_component_uuid="A" from_snapshot_id="1" to_component_uuid="CC" to_snapshot_id="30"
parent_dependency_id="[null]" project_snapshot_id="1" parent_dependency_id="[null]" project_snapshot_id="1"
dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/> dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/>
<events id="1" name="Version 1.0" component_uuid="1" snapshot_id="1" category="VERSION" description="[null]" <events id="1" name="Version 1.0" component_uuid="1" snapshot_id="1" category="VERSION" description="[null]"
Expand Down
Expand Up @@ -21,7 +21,7 @@
person_id="[null]" person_id="[null]"
text_value="[null]" tendency="[null]" measure_date="[null]" project_id="[null]" text_value="[null]" tendency="[null]" measure_date="[null]" project_id="[null]"
alert_status="[null]" description="[null]" measure_data="[null]"/> alert_status="[null]" description="[null]" measure_data="[null]"/>
<dependencies id="1" from_resource_id="1" from_component_uuid="A" from_snapshot_id="1" to_resource_id="30" to_component_uuid="CC" to_snapshot_id="30" <dependencies id="1" from_component_uuid="A" from_snapshot_id="1" to_component_uuid="CC" to_snapshot_id="30"
parent_dependency_id="[null]" project_snapshot_id="1" parent_dependency_id="[null]" project_snapshot_id="1"
dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/> dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/>
<events id="1" name="Version 1.0" component_uuid="1" snapshot_id="1" category="VERSION" description="[null]" <events id="1" name="Version 1.0" component_uuid="1" snapshot_id="1" category="VERSION" description="[null]"
Expand Down Expand Up @@ -51,10 +51,10 @@
person_id="[null]" person_id="[null]"
text_value="[null]" tendency="[null]" measure_date="[null]" project_id="[null]" text_value="[null]" tendency="[null]" measure_date="[null]" project_id="[null]"
alert_status="[null]" description="[null]" measure_data="[null]"/> alert_status="[null]" description="[null]" measure_data="[null]"/>
<dependencies id="2" from_resource_id="10" from_component_uuid="AA" from_snapshot_id="10" to_resource_id="5" to_component_uuid="E" to_snapshot_id="5" <dependencies id="2" from_component_uuid="AA" from_snapshot_id="10" to_component_uuid="E" to_snapshot_id="5"
parent_dependency_id="[null]" project_snapshot_id="5" parent_dependency_id="[null]" project_snapshot_id="5"
dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/> dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/>
<dependencies id="3" from_resource_id="5" from_component_uuid="C" from_snapshot_id="5" to_resource_id="300" to_component_uuid="CCC" to_snapshot_id="300" <dependencies id="3" from_component_uuid="C" from_snapshot_id="5" to_component_uuid="CCC" to_snapshot_id="300"
parent_dependency_id="[null]" project_snapshot_id="5" parent_dependency_id="[null]" project_snapshot_id="5"
dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/> dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/>
<events id="2" name="Version 1.0" component_uuid="5" snapshot_id="5" category="VERSION" description="[null]" <events id="2" name="Version 1.0" component_uuid="5" snapshot_id="5" category="VERSION" description="[null]"
Expand Down
Expand Up @@ -72,11 +72,11 @@ Note that measures, events and reviews are not deleted.
text_value="[null]" tendency="[null]" measure_date="[null]" alert_status="[null]" text_value="[null]" tendency="[null]" measure_date="[null]" alert_status="[null]"
description="[null]" measure_data="[null]"/> description="[null]" measure_data="[null]"/>


<dependencies id="3" from_resource_id="33" from_component_uuid="CC" from_snapshot_id="33" to_resource_id="44" to_component_uuid="DD" to_snapshot_id="44" <dependencies id="3" from_component_uuid="CC" from_snapshot_id="33" to_component_uuid="DD" to_snapshot_id="44"
parent_dependency_id="[null]" project_snapshot_id="[null]" parent_dependency_id="[null]" project_snapshot_id="[null]"
dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/> dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/>


<dependencies id="4" from_resource_id="55" from_component_uuid="EE" from_snapshot_id="55" to_resource_id="66" to_component_uuid="FF" to_snapshot_id="66" <dependencies id="4" from_component_uuid="EE" from_snapshot_id="55" to_component_uuid="FF" to_snapshot_id="66"
parent_dependency_id="[null]" project_snapshot_id="2" parent_dependency_id="[null]" project_snapshot_id="2"
dep_usage="USES" dep_weight="1" from_scope="LIB" to_scope="PRJ"/> dep_usage="USES" dep_weight="1" from_scope="LIB" to_scope="PRJ"/>


Expand Down
Expand Up @@ -18,11 +18,11 @@
tendency="[null]" measure_date="[null]" alert_status="[null]" description="[null]" tendency="[null]" measure_date="[null]" alert_status="[null]" description="[null]"
measure_data="[null]"/> measure_data="[null]"/>


<dependencies id="1" from_resource_id="1" from_component_uuid="A" from_snapshot_id="1" to_resource_id="2" to_component_uuid="B" to_snapshot_id="2" <dependencies id="1" from_component_uuid="A" from_snapshot_id="1" to_component_uuid="B" to_snapshot_id="2"
parent_dependency_id="[null]" project_snapshot_id="[null]" parent_dependency_id="[null]" project_snapshot_id="[null]"
dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/> dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/>


<dependencies id="2" from_resource_id="3" from_component_uuid="C" from_snapshot_id="3" to_resource_id="1" to_component_uuid="A" to_snapshot_id="1" <dependencies id="2" from_component_uuid="C" from_snapshot_id="3" to_component_uuid="A" to_snapshot_id="1"
parent_dependency_id="[null]" project_snapshot_id="2" parent_dependency_id="[null]" project_snapshot_id="2"
dep_usage="USES" dep_weight="1" from_scope="LIB" to_scope="PRJ"/> dep_usage="USES" dep_weight="1" from_scope="LIB" to_scope="PRJ"/>


Expand Down Expand Up @@ -56,11 +56,11 @@
text_value="[null]" tendency="[null]" measure_date="[null]" alert_status="[null]" text_value="[null]" tendency="[null]" measure_date="[null]" alert_status="[null]"
description="[null]" measure_data="[null]"/> description="[null]" measure_data="[null]"/>


<dependencies id="3" from_resource_id="33" from_component_uuid="CC" from_snapshot_id="33" to_resource_id="44" to_component_uuid="DD" to_snapshot_id="44" <dependencies id="3" from_component_uuid="CC" from_snapshot_id="33" to_component_uuid="DD" to_snapshot_id="44"
parent_dependency_id="[null]" project_snapshot_id="[null]" parent_dependency_id="[null]" project_snapshot_id="[null]"
dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/> dep_usage="USES" dep_weight="1" from_scope="PRJ" to_scope="LIB"/>


<dependencies id="4" from_resource_id="55" from_component_uuid="EE" from_snapshot_id="55" to_resource_id="66" to_component_uuid="FF" to_snapshot_id="66" <dependencies id="4" from_component_uuid="EE" from_snapshot_id="55" to_component_uuid="FF" to_snapshot_id="66"
parent_dependency_id="[null]" project_snapshot_id="2" parent_dependency_id="[null]" project_snapshot_id="2"
dep_usage="USES" dep_weight="1" from_scope="LIB" to_scope="PRJ"/> dep_usage="USES" dep_weight="1" from_scope="LIB" to_scope="PRJ"/>


Expand Down

0 comments on commit e58da28

Please sign in to comment.