/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package br.uff.ic.oceano.core.util; import br.uff.ic.oceano.core.exception.ObjetoNaoEncontradoException; import br.uff.ic.oceano.core.exception.OceanoCoreException; import br.uff.ic.oceano.core.exception.ServiceException; import br.uff.ic.oceano.core.factory.ObjectFactory; import br.uff.ic.oceano.core.model.*; import br.uff.ic.oceano.core.model.transiente.Language; import br.uff.ic.oceano.core.service.*; import br.uff.ic.oceano.core.tools.metrics.MetricEnumeration; import br.uff.ic.oceano.core.tools.metrics.expression.QMOOD; import br.uff.ic.oceano.core.tools.metrics.extractors.cpp.LinesOfCodeExtractorCpp; import br.uff.ic.oceano.core.tools.metrics.extractors.cpp.LinesOfCodeTotalExtractorCpp; import br.uff.ic.oceano.core.tools.metrics.extractors.dependometer.MetricsLoader; import br.uff.ic.oceano.core.tools.metrics.extractors.java.*; import br.uff.ic.oceano.core.tools.metrics.service.MetricExtractorService; import br.uff.ic.oceano.core.tools.metrics.service.MetricService; import br.uff.ic.oceano.core.tools.vcs.SVN_By_SVNKit; import br.uff.ic.oceano.ourico.model.Estado; import br.uff.ic.oceano.ourico.service.EstadoService; import br.uff.ic.oceano.peixeespada.model.Agent; import br.uff.ic.oceano.peixeespada.model.Refactoring; import br.uff.ic.oceano.peixeespada.service.AgentService; import br.uff.ic.oceano.util.Output; import br.uff.ic.oceano.util.file.PathUtil; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.List; /** * * @author Heliomar * * */ public class DefaultDatabaseLoader { private static MetricExtractorService metricExtractorService = ObjectFactory.getObjectWithDataBaseDependencies(MetricExtractorService.class); private static MetricService metricService = ObjectFactory.getObjectWithDataBaseDependencies(MetricService.class); private static RevisionService configurationService = ObjectFactory.getObjectWithDataBaseDependencies(RevisionService.class); private static OceanoUserService oceanoUserService = ObjectFactory.getObjectWithDataBaseDependencies(OceanoUserService.class); private static RepositoryService repositoryService = ObjectFactory.getObjectWithDataBaseDependencies(RepositoryService.class); private static SoftwareProjectService projectService = ObjectFactory.getObjectWithDataBaseDependencies(SoftwareProjectService.class); private static ProjectUserService projectUserService = ObjectFactory.getObjectWithDataBaseDependencies(ProjectUserService.class); private static RefactoringService transformationService = ObjectFactory.getObjectWithDataBaseDependencies(RefactoringService.class); private static QualityAttributeService qualityAttributeService = ObjectFactory.getObjectWithDataBaseDependencies(QualityAttributeService.class); private static ConfigurationItemService configurationItemService = ObjectFactory.getObjectWithDataBaseDependencies(ConfigurationItemService.class); private static Repository SVN; private static SoftwareProject oceano; private static AgentService agentService = ObjectFactory.getObjectWithDataBaseDependencies(AgentService.class); private static EstadoService estadoService = ObjectFactory.getObjectWithDataBaseDependencies(EstadoService.class); public static void insertDefaultDataProduction() { try { OceanoUser user = new OceanoUser(); user.setName("Administrador"); user.setEmail("@"); user.setLogin("admin"); user.setPassword("admin"); oceanoUserService.save(user); insertMetrics(); insertDerivedMetricQualityAttributes(); insertRepositories(); insertQualityAttributes(); } catch (Exception ex) { throw new RuntimeException(ex); } insertRefactorings(); } public static synchronized void insertDefaultData() throws OceanoCoreException { try { insertOceanoUsers(); insertMetrics(); insertDerivedMetricQualityAttributes(); insertRefactorings(); insertRepositories(); insertConfigurationItemsAndProjects(); insereCheckOut(); insereEstado(); insertUserProjects(); insertRevisions(); insertQualityAttributes(); insertAgents(); } catch (Exception ex) { throw new OceanoCoreException(ex); } } private static void insereCheckOut() { // CheckOut co; // // co = new CheckOut(); // co.setAutobranch(1l); // co.setDiretorioAutobranch("diretorio"); // co.setDiretorioProtegido("protegido"); // co.setEstado("Testando"); // co.setPolitica("moderada"); // co.setProjeto("teste"); // co.setRevisao(1l); // co.setUrlRepositorio("url repositorio"); // co.setUsuario("marapao"); // co.setWorkspace("workspace"); // // checkOutService.save(co); // // co = new CheckOut(); // co.setAutobranch(2l); // co.setDiretorioAutobranch("diretorio"); // co.setDiretorioProtegido("protegido"); // co.setEstado("Testando"); // co.setPolitica("moderada"); // co.setProjeto("teste"); // co.setRevisao(2l); // co.setUrlRepositorio("url repositorio"); // co.setUsuario("marapao"); // co.setWorkspace("workspace"); // // checkOutService.save(co); } private static void insereEstado() { Estado es; es = new Estado(); es.setInicio(new Date()); es.setFim(new Date()); es.setAutobranch(1l); es.setDescricao("Carga Default 1"); estadoService.save(es); es = new Estado(); es.setInicio(new Date()); es.setFim(new Date()); es.setAutobranch(1l); es.setDescricao("Carga Default 2"); estadoService.save(es); } private static void insertRefactorings() { System.out.println("Inserindo Transformations..."); Refactoring t = null; t = new Refactoring(); t.setName(Refactoring.REFACTORING_ENCAPSULE_FIELDS); t.setDescription("Transformação que substitui variáveis públicas por privadas e troca o acesso para gets e sets"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_CLEAN_IMPORTS); t.setDescription("Transformação que remove os imports não utilizados"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_PULL_UP_METHODS); t.setDescription("Transformação que move métodos para a super classe"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_PULL_UP_FIELDS); t.setDescription("Transformação que move campos para a super classe"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_PUSH_DOWN_METHODS); t.setDescription("Transformação que move métodos para a sub classe"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_PUSH_DOWN_FIELDS); t.setDescription("Transformação que move campos para a sub classe"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_ADD_DELEGATE_METHODS); t.setDescription("Transformação que adiciona métodos delegados para métodos de um field"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_EXTRACT_INTERFACES); t.setDescription("Transformação que extrai interfaces através dos métodos de uma classe"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_USE_SUPER_TYPES); t.setDescription("Transformação que substitui o uso dos tipos pelos seus supertipos onde for possível"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_CREATE_FACTORY_METHODS); t.setDescription("Transformação que cria métodos factory pela definição do construtor"); transformationService.save(t); t = new Refactoring(); t.setName(Refactoring.REFACTORING_INLINE_METHODS); t.setDescription("Transformação que coloca o corpo do método onde ele é chamado e o remove"); transformationService.save(t); // for (int i = 0; i < 20; i++) { // t = new Refactoring(); // t.setNome("Transformacao_" + i); // t.setDescricao("transformação gerada para efeito de testes_" + i); // t.setTipo(i % 2 + 1); // transformationService.save(t); // } System.out.println(" ok"); } private static void insertMetrics() throws OceanoCoreException { try { Output.print("Inserting metrics..."); for (Metric metric : MetricEnumeration.getMetrics()) { metricService.save(metric); Output.print("Inserted: " + metric); } insertMetricExtractors(); MetricsLoader.load(); Output.println("ok"); } catch (Exception ex) { throw new OceanoCoreException(ex); } } private static void insertMetricExtractors() throws OceanoCoreException { System.out.print("Insering MetricExtractors..."); insertMetricExtractor(MetricEnumeration.ACC, Language.JAVA, CyclomaticComplexityExtractorJava.class); insertMetricExtractor(MetricEnumeration.ANA, Language.JAVA, AverageNumberOfAncestorsExtractorJava.class); insertMetricExtractor(MetricEnumeration.CAM, Language.JAVA, CohesionAmongMethodsInClassExtractorJava.class); insertMetricExtractor(MetricEnumeration.CIS, Language.JAVA, ClassInterfaceSizeExtractorJava.class); insertMetricExtractor(MetricEnumeration.DAM, Language.JAVA, DataAccessExtractorJava.class); insertMetricExtractor(MetricEnumeration.DCC, Language.JAVA, DirectClassCouplingExtractorJava.class); insertMetricExtractor(MetricEnumeration.DSC, Language.JAVA, DesignSizeInClassesExtractorJava.class); insertMetricExtractor(MetricEnumeration.LCOM, Language.JAVA, LackOfCohesionOfMethodsExtractorJava.class); insertMetricExtractor(MetricEnumeration.LOC, Language.JAVA, LinesOfCodeExtractorJava.class); insertMetricExtractor(MetricEnumeration.LOC, Language.CPP, LinesOfCodeExtractorCpp.class); insertMetricExtractor(MetricEnumeration.MFA, Language.JAVA, MeasureOfFunctionalAbstractionExtractorJava.class); insertMetricExtractor(MetricEnumeration.MLOC, Language.JAVA, MethodLinesOfCodeExtractorJava.class); insertMetricExtractor(MetricEnumeration.MOA, Language.JAVA, MeasureOfAggregationExtractorJava.class); insertMetricExtractor(MetricEnumeration.NOA, Language.JAVA, NumberOfAttributesExtractorJava.class); insertMetricExtractor(MetricEnumeration.NOH, Language.JAVA, NumberOfHierarchiesExtractorJava.class); insertMetricExtractor(MetricEnumeration.NOI, Language.JAVA, NumberOfInterfacesExtractorJava.class); insertMetricExtractor(MetricEnumeration.NOM, Language.JAVA, NumberOfMethodsExtractorJava.class); insertMetricExtractor(MetricEnumeration.NOP, Language.JAVA, NumberOfPolymorphicMethodsExtractorJava.class); insertMetricExtractor(MetricEnumeration.NORM, Language.JAVA, NumberOfOverriddenMethodsExtractorJava.class); insertMetricExtractor(MetricEnumeration.NSF, Language.JAVA, NumberOfStaticAttributesExtractorJava.class); insertMetricExtractor(MetricEnumeration.NSM, Language.JAVA, NumberOfStaticMethodsExtractorJava.class); insertMetricExtractor(MetricEnumeration.RMA, Language.JAVA, AbstractnessExtractorJava.class); insertMetricExtractor(MetricEnumeration.TCC, Language.JAVA, TotalCyclomaticComplexityExtractorJava.class); insertMetricExtractor(MetricEnumeration.TLOC, Language.JAVA, LinesOfCodeTotalExtractorJava.class); insertMetricExtractor(MetricEnumeration.TLOC, Language.CPP, LinesOfCodeTotalExtractorCpp.class); insertMetricExtractor(MetricEnumeration.NOAM, Language.JAVA, NumberOfAccessorMethods.class); insertMetricExtractor(MetricEnumeration.NPA, Language.JAVA, NumberOfPublicAttributes.class); System.out.println(" ok"); } private static void insertMetricExtractor(MetricEnumeration metricEnum, Language language, Class extractorClass) throws OceanoCoreException { try { //Get database metric, with ID Metric metric = metricService.getByAcronym(metricEnum.getAcronym()); MetricExtractor metricExtractor = new MetricExtractor(); metricExtractor.setMetric(metric); metricExtractor.setLanguage(language.name()); metricExtractor.setMetricExtractorClass(extractorClass.getCanonicalName()); metricExtractorService.save(metricExtractor); } catch (ObjetoNaoEncontradoException ex) { throw new OceanoCoreException(ex); } } private static void insertOceanoUsers() { System.out.println("Inserindo Oceano Users..."); OceanoUser user; user = new OceanoUser(); user.setName("Daniel Castellani"); user.setEmail("dancastellani@gmail.com"); user.setLogin("xan"); user.setPassword("xan"); oceanoUserService.save(user); user = new OceanoUser(); user.setName("Heliomar Kann da Rocha Santos"); user.setEmail("heliokann@gmail.com"); user.setLogin("kann"); user.setPassword("kann"); oceanoUserService.save(user); user = new OceanoUser(); user.setName("Leonardo Gresta Paulino Murta"); user.setEmail("leomurta@gmail.com"); user.setLogin("leo"); user.setPassword("leo"); oceanoUserService.save(user); user = new OceanoUser(); user.setName("Gleiph Ghiotto Lima de Menezes"); user.setEmail("gleiphgh@gmail.com"); user.setLogin("gleiph"); user.setPassword("gleiph"); oceanoUserService.save(user); user = new OceanoUser(); user.setName("Leandro Ribeiro De Cicco"); user.setEmail("leandrocicco@gmail.com"); user.setLogin("cicco"); user.setPassword("cicco"); oceanoUserService.save(user); user = new OceanoUser(); user.setName("Rafael de Souza Santos"); user.setEmail("rafaelss@ic.uff.br"); user.setLogin("rss"); user.setPassword("rss"); oceanoUserService.save(user); user = new OceanoUser(); user.setName("Wallace Ribeiro"); user.setEmail("..."); user.setLogin("wallace"); user.setPassword("wallace"); oceanoUserService.save(user); user = new OceanoUser(); user.setName("Daniel Heraclio"); user.setEmail("dheraclio@gmail.com"); user.setLogin("dheraclio"); user.setPassword("dheraclio"); oceanoUserService.save(user); System.out.println(" ok"); } private static void insertRepositories() { System.out.println("Inserindo repositorios suportados..."); try { Repository repository; repository = new Repository(); repository.setName(new SVN_By_SVNKit().getName()); repositoryService.save(repository); SVN = repository; // repository = new Repository(); // repository.setName("CVS"); // repositoryService.save(repository); // // repository = new Repository(); // repository.setName("Git"); // repositoryService.save(repository); } catch (ServiceException ex) { System.out.println(" FAIL!"); } System.out.println(" ok"); } private static void insertConfigurationItemsAndProjects() { System.out.println("Inserindo Projetos..."); SoftwareProject project = null; ConfigurationItem ci = null; try { ci = new ConfigurationItem(); ci.setBaseUrl("http://svn.desenvolvimento.uff.br/uff/proac/academico-graduacao/"); ci.setBranchPath("trunk"); ci.setTrunkPath("branches"); ci.setName("IdUFF"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("http://svn.desenvolvimento.uff.br/uff/proac/academico-graduacao/trunk/"); project.setMavenProject(true); projectService.save(project); // local ci = new ConfigurationItem(); ci.setBaseUrl("file:///C:/RepsPeixeEspada/rep_oceano/peixeespada/peixeespadacliente"); ci.setBranchPath("trunk"); ci.setTrunkPath("branches"); ci.setName("PeixeEspada-Local"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("file:///C:/RepsPeixeEspada/rep_oceano/peixeespada/peixeespadacliente/trunk/"); project.setMavenProject(true); projectService.save(project); ci = new ConfigurationItem(); ci.setBaseUrl("http://svn.desenvolvimento.uff.br/uff/publico/publico-core"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("Publico Core"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("http://svn.desenvolvimento.uff.br/uff/publico/publico-core/trunk/"); project.setMavenProject(true); projectService.save(project); oceano = project; ci = new ConfigurationItem(); ci.setBaseUrl("http://svn.desenvolvimento.uff.br/uff/commons/utils"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("Commons Utils"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("http://svn.desenvolvimento.uff.br/uff/commons/utils/trunk/"); project.setMavenProject(true); projectService.save(project); oceano = project; ci = new ConfigurationItem(); ci.setBaseUrl("http://svn.desenvolvimento.uff.br/uff/proac/monitoria/monitoria-core"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("Monitoria - Core"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("http://svn.desenvolvimento.uff.br/uff/proac/monitoria/monitoria-core/trunk/"); project.setMavenProject(true); projectService.save(project); oceano = project; ci = new ConfigurationItem(); ci.setBaseUrl("http://svn.desenvolvimento.uff.br/propp-efomento/"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("Pibic"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("http://svn.desenvolvimento.uff.br/propp-efomento/trunk/"); project.setMavenProject(true); projectService.save(project); oceano = project; ci = new ConfigurationItem(); ci.setBaseUrl("http://svn.desenvolvimento.uff.br/uff/proppi/academico-pos-graduacao/academico-pos-graduacao-core/"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("Acadêmico de Pós Graduação - Core"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("http://svn.desenvolvimento.uff.br/uff/proppi/academico-pos-graduacao/academico-pos-graduacao-core/trunk/"); project.setMavenProject(true); projectService.save(project); oceano = project; ci = new ConfigurationItem(); ci.setBaseUrl("https://gems.ic.uff.br/svn/oceano/oceano-core"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("Oceano-Core"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("https://gems.ic.uff.br/svn/oceano/oceano-core/trunk"); project.setMavenProject(true); projectService.save(project); oceano = project; ci = new ConfigurationItem(); ci.setBaseUrl("https://gems.ic.uff.br/svn/oceano/oceano-web/"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("Oceano-web"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("https://gems.ic.uff.br/svn/oceano/oceano-web/trunk"); project.setMavenProject(true); projectService.save(project); oceano = project; ci = new ConfigurationItem(); ci.setBaseUrl("http://svn.apache.org/repos/asf/subversion/"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("subversion"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setRepositoryUrl("http://svn.apache.org/repos/asf/subversion/trunk"); projectService.save(project); //NEOPZ ci = new ConfigurationItem(); ci.setBaseUrl("http://neopz.googlecode.com/svn/"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("NEOPZ"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setLanguage(Language.CPP); project.setMavenProject(false); project.setRepositoryUrl("http://neopz.googlecode.com/svn/trunk"); projectService.save(project); //NEOPZ Local String neopzLocalPath = "D:/DaNSIS/NeopzProjects/neopz_clone"; if (PathUtil.exists(neopzLocalPath)) { ci = new ConfigurationItem(); ci.setBaseUrl("http://neopz.googlecode.com/svn/"); ci.setBranchPath("branches"); ci.setTrunkPath("trunk"); ci.setName("NEOPZ local"); ci.setRepository(SVN); configurationItemService.save(ci); project = new SoftwareProject(); project.setConfigurationItem(ci); project.setLanguage(Language.CPP); project.setMavenProject(false); project.setRepositoryUrl("file:///" + neopzLocalPath + "/trunk"); projectService.save(project); } } catch (ServiceException ex) { System.out.println(" FAIL"); throw new RuntimeException(ex); } System.out.println(" ok"); } private static void insertUserProjects() throws ServiceException { List<SoftwareProject> projects = projectService.getAll(); OceanoUser oceanoUsersKann = oceanoUserService.autenticarUsuario("kann", "kann"); OceanoUser oceanoUsersDaniel = oceanoUserService.autenticarUsuario("xan", "xan"); OceanoUser oceanoUsersLeo = oceanoUserService.autenticarUsuario("leo", "leo"); OceanoUser oceanoUsersHeraclio = oceanoUserService.autenticarUsuario("dheraclio", "dheraclio"); List<OceanoUser> listUsers = Arrays.asList(oceanoUsersKann, oceanoUsersDaniel, oceanoUsersLeo, oceanoUsersHeraclio); for (SoftwareProject project : projects) { //dados preenchidos apenas para testes, não necessariamente estão corretos for (OceanoUser oceanoUser : listUsers) { ProjectUser pu = new ProjectUser(); pu.setProject(project); pu.setOceanoUser(oceanoUser); pu.setPassword(oceanoUser.getPassword()); pu.setLogin(oceanoUser.getLogin()); projectUserService.save(pu); } } } private static void insertQualityAttributes() throws ServiceException { //1 QualityAttribute attribute = new QualityAttribute(); attribute.setDescricao("efetividade"); attribute.setName(QualityAttribute.NAME_EFFECTIVENESS); qualityAttributeService.save(attribute); //2 attribute = new QualityAttribute(); attribute.setDescricao("EXTENDIBILITY"); attribute.setName(QualityAttribute.NAME_EXTENDIBILITY); qualityAttributeService.save(attribute); //3 attribute = new QualityAttribute(); attribute.setDescricao("Flexibilidade"); attribute.setName(QualityAttribute.NAME_FLEXIBILITY); qualityAttributeService.save(attribute); //4 /** * <FALTA a métrica CAM> attribute = new QualityAttribute(); * attribute.setDescricao("Funcionalidade"); * attribute.setNome(QualityAttribute.NAME_FUNCIONALITY); * qualityAttributeService.save(attribute); //5 attribute = new * QualityAttribute(); attribute.setDescricao("Reusabilidade"); * attribute.setNome(QualityAttribute.NAME_REUSABILITY); * qualityAttributeService.save(attribute); //6 attribute = new * QualityAttribute(); attribute.setDescricao("Entendibilidade, * legibilidade"); * attribute.setNome(QualityAttribute.NAME_UNDERSTANDIBILITY); * qualityAttributeService.save(attribute); */ } private static void insertRevisions() { System.out.println("Inserindo Revisões..."); Revision revision = new Revision(); revision.setProject(oceano); revision.setNumber(0L); revision.setCommitDate(Calendar.getInstance()); revision.setCommiter("Commiter" + System.currentTimeMillis()); configurationService.save(revision); System.out.println(" ok"); } private static void insertAgents() throws Exception { SoftwareProject peixeEspadaLocal = projectService.getByRepositoryUrl("file:///C:/RepsPeixeEspada/rep_oceano/peixeespada/peixeespadacliente/trunk/"); Agent a = new Agent(); a.setName("Kann"); a.setActive(true); a.setQualityAttribute(qualityAttributeService.getByName(QualityAttribute.NAME_EFFECTIVENESS)); a.setProject(oceano); agentService.salve(a); a = new Agent(); a.setName("Kann2"); a.setActive(true); a.setQualityAttribute(qualityAttributeService.getByName(QualityAttribute.NAME_EXTENDIBILITY)); a.setProject(oceano); agentService.salve(a); a = new Agent(); a.setName("Kann3"); a.setActive(true); a.setQualityAttribute(qualityAttributeService.getByName(QualityAttribute.NAME_FLEXIBILITY)); a.setProject(oceano); agentService.salve(a); a = new Agent(); a.setName("Kann4"); a.setActive(true); a.setQualityAttribute(qualityAttributeService.getByName(QualityAttribute.NAME_FLEXIBILITY)); a.setProject(peixeEspadaLocal); agentService.salve(a); a = new Agent(); a.setName("Kann5"); a.setActive(true); a.setQualityAttribute(qualityAttributeService.getByName(QualityAttribute.NAME_EFFECTIVENESS)); a.setProject(peixeEspadaLocal); agentService.salve(a); a = new Agent(); a.setName("Kann6"); a.setActive(true); a.setQualityAttribute(qualityAttributeService.getByName(QualityAttribute.NAME_EXTENDIBILITY)); a.setProject(peixeEspadaLocal); agentService.salve(a); } private static void insertDerivedMetricQualityAttributes() { Metric metric; //1 metric = new Metric(); metric.setAcronym(QMOOD.QA_EFFECTIVENESS); metric.setName(QMOOD.QA_EFFECTIVENESS); metric.setDescription(QMOOD.QA_EFFECTIVENESS); metric.setPreRelease(true); metric.setType(Metric.TYPE_FLOAT); metric.setExtratcsFrom(Metric.EXTRACTS_FROM_PROJECT); metric.setExtractsFromFont(false); metric.setExpression(QMOOD.QUALITY_ATTRIBUTE_EFFECTIVENESS); metric.setDerived(true); metricService.save(metric); //2 metric = new Metric(); metric.setAcronym(QMOOD.QA_EXTENDABILITY); metric.setName(QMOOD.QA_EXTENDABILITY); metric.setDescription(QMOOD.QA_EXTENDABILITY); metric.setPreRelease(true); metric.setType(Metric.TYPE_FLOAT); metric.setExtratcsFrom(Metric.EXTRACTS_FROM_PROJECT); metric.setExtractsFromFont(false); metric.setExpression(QMOOD.QUALITY_ATTRIBUTE_EXTENDABILITY); metric.setDerived(true); metricService.save(metric); //3 metric = new Metric(); metric.setAcronym(QMOOD.QA_FLEXIBILITY); metric.setName(QMOOD.QA_FLEXIBILITY); metric.setDescription(QMOOD.QA_FLEXIBILITY); metric.setPreRelease(true); metric.setType(Metric.TYPE_FLOAT); metric.setExtratcsFrom(Metric.EXTRACTS_FROM_PROJECT); metric.setExtractsFromFont(false); metric.setExpression(QMOOD.QUALITY_ATTRIBUTE_FLEXIBILITY); metric.setDerived(true); metricService.save(metric); //4 metric = new Metric(); metric.setAcronym(QMOOD.QA_FUNCTIONALITY); metric.setName(QMOOD.QA_FUNCTIONALITY); metric.setDescription(QMOOD.QA_FUNCTIONALITY); metric.setPreRelease(true); metric.setType(Metric.TYPE_FLOAT); metric.setExtratcsFrom(Metric.EXTRACTS_FROM_PROJECT); metric.setExtractsFromFont(false); metric.setExpression(QMOOD.QUALITY_ATTRIBUTE_FUNCTIONALITY); metric.setDerived(true); metricService.save(metric); //5 metric = new Metric(); metric.setAcronym(QMOOD.QA_REUSABILITY); metric.setName(QMOOD.QA_REUSABILITY); metric.setDescription(QMOOD.QA_REUSABILITY); metric.setPreRelease(true); metric.setType(Metric.TYPE_FLOAT); metric.setExtratcsFrom(Metric.EXTRACTS_FROM_PROJECT); metric.setExtractsFromFont(false); metric.setExpression(QMOOD.QUALITY_ATTRIBUTE_REUSABILITY); metric.setDerived(true); metricService.save(metric); //6 metric = new Metric(); metric.setAcronym(QMOOD.QA_UNDERSTANDABILITY); metric.setName(QMOOD.QA_UNDERSTANDABILITY); metric.setDescription(QMOOD.QA_UNDERSTANDABILITY); metric.setPreRelease(true); metric.setType(Metric.TYPE_FLOAT); metric.setExtratcsFrom(Metric.EXTRACTS_FROM_PROJECT); metric.setExtractsFromFont(false); metric.setExpression(QMOOD.QUALITY_ATTRIBUTE_UNDERSTANDABILITY); metric.setDerived(true); metricService.save(metric); } public static boolean isDefaultDataInserted() { boolean result = true; List buffer; buffer = metricService.getAll(); result &= (buffer != null && !buffer.isEmpty()); buffer = oceanoUserService.getAll(); result &= (buffer != null && !buffer.isEmpty()); buffer = metricExtractorService.getAll(); result &= (buffer != null && !buffer.isEmpty()); return result; } }