@Override
 public void run() {
   if (!repositoryHandler.isLoaderWorking()) {
     Logger.info(
         StringUtils.getString(
             "Automatically refreshing repository... (", new DateTime().toString(), ')'));
     repositoryHandler.refreshRepository();
   }
 }
示例#2
0
  @Test
  public void getDependencyFromDbDependency() {
    final DbArtifact dbArtifact = new DbArtifact();
    dbArtifact.setGroupId("org.axway.grapes");
    dbArtifact.setArtifactId("artifact1");
    dbArtifact.setVersion("1.0.0-SNAPSHOT");
    dbArtifact.setExtension("jar");

    final DbDependency dbDependency = new DbDependency();
    dbDependency.setScope(Scope.RUNTIME);
    dbDependency.setTarget(dbArtifact.getGavc());

    final RepositoryHandler repositoryHandler = mock(RepositoryHandler.class);
    when(repositoryHandler.getArtifact(dbArtifact.getGavc())).thenReturn(dbArtifact);

    final ModelMapper modelMapper = new ModelMapper(repositoryHandler);
    final Dependency dependency = modelMapper.getDependency(dbDependency, "sourceName", "123456");

    assertEquals(dbDependency.getTarget(), dependency.getTarget().getGavc());
    assertEquals(dbDependency.getScope(), dependency.getScope());
    assertEquals("sourceName", dependency.getSourceName());
    assertEquals("123456", dependency.getSourceVersion());
  }
示例#3
0
  public void run() {
    String dbChangeId;
    String dbPluginType;
    // Order db changes by create date before starting to run them
    ArrayList<String> unsortedDbChangeIds = new ArrayList<String>();
    ArrayList<String> sortedDbChangeIds = new ArrayList<String>();
    for (int i = 0; i < dbChanges.length(); i++) {
      unsortedDbChangeIds.add(dbChanges.getString(i));
    }
    sortedDbChangeIds = repHandler.getDbChangesSortedByCreateDate(unsortedDbChangeIds);
    for (int i = 0; i < sortedDbChangeIds.size(); i++) {
      dbChangeId = sortedDbChangeIds.get(i);
      String dbChangeScript = repHandler.getDatabaseChangeScript(dbChangeId);
      dbPluginType = repHandler.getDBPluginTypeForDbChange(dbChangeId);
      DBService dbService = DBService.getDBService(dbPluginType);
      HashMap<String, String> globalParameters = null;
      try {
        String dbcadServerHostname = InetAddress.getLocalHost().getHostName();
        globalParameters = repHandler.getDBPluginConfig(dbPluginType, dbcadServerHostname);
      } catch (UnknownHostException e) {
        e.printStackTrace();
      }
      ArrayList<DeploymentDetails> deploymentDetailsList =
          repHandler.getDeployableDatabaseInstancesAndSchemaNamesForLobIdAndDbChange(
              dbChangeId, lobId);
      for (DeploymentDetails deploymentDetails : deploymentDetailsList) {
        if (!repHandler.isDbChangeDeployed(
            dbChangeId,
            deploymentDetails.getDbGroupId(),
            deploymentDetails.getDbInstance().getDbId())) {
          if (!markOnly) {
            repHandler.markDbChangeDeploymentStatus(
                dbChangeId,
                deploymentDetails.getDbGroupId(),
                deploymentDetails.getDbInstance().getDbId(),
                DBCADController.RUNNING_STATUS);
            HashMap<String, HashMap<String, String>> parameterAttributes =
                dbService.getInstanceParameterAttributes();
            String dbSchemaName = deploymentDetails.getSchemaName();
            Cipher aes = null;
            try {
              aes = Cipher.getInstance("AES");
              // SecretKeySpec k = new SecretKeySpec(DBCADController.ENCRYPTION_KEY.getBytes(),
              // "AES");
              aes.init(Cipher.DECRYPT_MODE, DBCADController.ENC_KEY);

              HashMap<String, String> pluginInstanceParameters =
                  deploymentDetails.getDbInstance().getPluginInstanceParameters();
              for (Map.Entry<String, String> entry : pluginInstanceParameters.entrySet()) {
                String key = entry.getKey();
                if (parameterAttributes.get(key) != null
                    && parameterAttributes.get(key).get("ENCRYPTED").equals("TRUE")) {
                  BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
                  textEncryptor.setPassword(DBCADController.ENCRYPTION_KEY);
                  String encTextValue = (String) pluginInstanceParameters.get(key);
                  pluginInstanceParameters.put(key, textEncryptor.decrypt(encTextValue));
                }
              }

            } catch (Exception e) {
              e.printStackTrace();
            }

            dbService.initializeDBService(deploymentDetails.getDbInstance(), globalParameters);
            String output;
            AtomicInteger exitCode = new AtomicInteger(0);
            output = dbService.runScript(dbChangeScript, dbSchemaName, exitCode);
            repHandler.addDeploymentLog(dbChangeId, deploymentDetails.getDbInstance(), output);
            dbService.close();

            if (exitCode.intValue() == 0) {
              repHandler.markDbChangeDeploymentStatus(
                  dbChangeId,
                  deploymentDetails.getDbGroupId(),
                  deploymentDetails.getDbInstance().getDbId(),
                  DBCADController.OK_STATUS);
            } else {
              repHandler.markDbChangeDeploymentStatus(
                  dbChangeId,
                  deploymentDetails.getDbGroupId(),
                  deploymentDetails.getDbInstance().getDbId(),
                  DBCADController.ERROR_STATUS);
            }
          } else {
            repHandler.addDeploymentLog(
                dbChangeId, deploymentDetails.getDbInstance(), "-- MARK ONLY --");
            repHandler.markDbChangeDeploymentStatus(
                dbChangeId,
                deploymentDetails.getDbGroupId(),
                deploymentDetails.getDbInstance().getDbId(),
                DBCADController.OK_STATUS);
          }
        }
      }
    }
  }
示例#4
0
  @Test
  public void getModule() {
    final DbModule dbModule = new DbModule();
    dbModule.setName("root");
    dbModule.setVersion("1.0.0-SNAPSHOT");

    final DbArtifact dbArtifact = new DbArtifact();
    dbArtifact.setGroupId("com.axway.root");
    dbArtifact.setArtifactId("artifact1");
    dbArtifact.setVersion("1.0.0-SNAPSHOT");
    dbArtifact.setClassifier("win");
    dbArtifact.setType("component");
    dbArtifact.setExtension("jar");
    dbModule.addArtifact(dbArtifact);

    final DbArtifact dbThirdParty = new DbArtifact();
    dbThirdParty.setGroupId("org.apache");
    dbThirdParty.setArtifactId("all");
    dbThirdParty.setVersion("6.8.0-5426");
    dbThirdParty.setType("jar");
    dbThirdParty.setExtension("jar");

    dbModule.addDependency(dbThirdParty.getGavc(), Scope.COMPILE);

    final DbModule dbSubmodule = new DbModule();
    dbSubmodule.setSubmodule(true);
    dbSubmodule.setName("sub1");
    dbSubmodule.setVersion("1.0.0-SNAPSHOT");

    final DbArtifact dbArtifact2 = new DbArtifact();
    dbArtifact2.setGroupId("com.axway.root.sub1");
    dbArtifact2.setArtifactId("artifactSub1");
    dbArtifact2.setVersion("1.0.0-SNAPSHOT");
    dbArtifact2.setExtension("jar");
    dbSubmodule.addArtifact(dbArtifact2);

    final DbArtifact dbThirdParty2 = new DbArtifact();
    dbThirdParty2.setGroupId("org.lol");
    dbThirdParty2.setArtifactId("all");
    dbThirdParty2.setVersion("1.2.3-4");
    dbThirdParty2.setExtension("jar");

    dbSubmodule.addDependency(dbThirdParty2.getGavc(), Scope.PROVIDED);
    dbModule.addSubmodule(dbSubmodule);

    final RepositoryHandler repositoryHandler = mock(RepositoryHandler.class);
    when(repositoryHandler.getArtifact(dbArtifact.getGavc())).thenReturn(dbArtifact);
    when(repositoryHandler.getArtifact(dbArtifact2.getGavc())).thenReturn(dbArtifact2);
    when(repositoryHandler.getArtifact(dbThirdParty.getGavc())).thenReturn(dbThirdParty);
    when(repositoryHandler.getArtifact(dbThirdParty2.getGavc())).thenReturn(dbThirdParty2);

    final ModelMapper modelMapper = new ModelMapper(repositoryHandler);
    final Module module = modelMapper.getModule(dbModule);

    assertEquals(dbModule.getName(), module.getName());
    assertEquals(dbModule.getVersion(), module.getVersion());
    assertEquals(1, module.getArtifacts().size());
    assertEquals(dbArtifact.getGavc(), module.getArtifacts().iterator().next().getGavc());
    assertEquals(1, module.getDependencies().size());

    final Dependency thirdParty = module.getDependencies().iterator().next();
    assertEquals(dbThirdParty.getGavc(), thirdParty.getTarget().getGavc());
    assertEquals(Scope.COMPILE, thirdParty.getScope());
    assertEquals(dbModule.getName(), thirdParty.getSourceName());
    assertEquals(dbModule.getVersion(), thirdParty.getSourceVersion());

    assertEquals(1, module.getSubmodules().size());
    final Module submodule = module.getSubmodules().iterator().next();

    assertEquals(dbSubmodule.getName(), submodule.getName());
    assertEquals(dbSubmodule.getVersion(), submodule.getVersion());
    assertEquals(1, submodule.getArtifacts().size());
    assertEquals(dbArtifact2.getGavc(), submodule.getArtifacts().iterator().next().getGavc());
    assertEquals(1, submodule.getDependencies().size());
    assertEquals(
        dbThirdParty2.getGavc(),
        submodule.getDependencies().iterator().next().getTarget().getGavc());
    assertEquals(
        dbSubmodule.getName(), submodule.getDependencies().iterator().next().getSourceName());
    assertEquals(
        dbSubmodule.getVersion(), submodule.getDependencies().iterator().next().getSourceVersion());
    assertEquals(Scope.PROVIDED, submodule.getDependencies().iterator().next().getScope());
  }