public RepositorySystemSession newSystemSession(RepositorySystem sys, Settings settings) {
    DefaultRepositorySystemSession session = new MavenRepositorySystemSession();

    Map<String, Object> configProps = new LinkedHashMap<String, Object>();
    putAllEnvProperties(configProps);
    session.setConfigProperties(configProps);

    session.setOffline(settings.isOffline());
    // session.setUserProperties(settings.getUserProperties());

    LocalRepository localRepo = new LocalRepository(getDefaultLocalRepoDir(settings));
    session.setLocalRepositoryManager(sys.newLocalRepositoryManager(localRepo));

    // session.setProxySelector(getProxySelector());
    session.setMirrorSelector(getMirrorSelector(settings));
    // session.setAuthenticationSelector(getAuthSelector());

    session.setCache(new DefaultRepositoryCache());

    // session.setRepositoryListener(new AntRepositoryListener(task));

    // session.setWorkspaceReader(ProjectWorkspaceReader.getInstance());

    return session;
  }
  /** Default repository session. */
  public static MavenRepositorySystemSession newSession(RepositorySystem system) throws Exception {

    final LocalRepository localRepo = newRepoLocal();

    final MavenRepositorySystemSession session = new MavenRepositorySystemSession();

    session.setLocalRepositoryManager(system.newLocalRepositoryManager(localRepo));

    return session;
  }
예제 #3
0
  private MavenRepositorySystemSession setupRepoSession(RepositorySystem repoSystem) {
    MavenRepositorySystemSession session = new MavenRepositorySystemSession();

    LocalRepository localRepo =
        new LocalRepository(OSUtils.getUserHomeDir().getAbsolutePath() + "/.m2/repository");
    session.setLocalRepositoryManager(repoSystem.newLocalRepositoryManager(localRepo));
    session.setOffline(false);

    session.setTransferErrorCachingEnabled(false);
    session.setNotFoundCachingEnabled(false);
    return session;
  }
예제 #4
0
파일: Maven.java 프로젝트: jopecko/airship
  public Maven(
      @Nullable Metadata.Repository snapshotsRepositoryInfo,
      @Nullable Metadata.Repository releasesRepositoryInfo)
      throws SettingsBuildingException {
    validateRepositoryMetadata(snapshotsRepositoryInfo, "snapshots");
    validateRepositoryMetadata(releasesRepositoryInfo, "releases");

    final SettingsBuildingRequest request =
        new DefaultSettingsBuildingRequest()
            .setGlobalSettingsFile(DEFAULT_GLOBAL_SETTINGS_FILE)
            .setUserSettingsFile(DEFAULT_USER_SETTINGS_FILE)
            .setSystemProperties(System.getProperties());

    Settings settings =
        new DefaultSettingsBuilderFactory().newInstance().build(request).getEffectiveSettings();

    repositorySystem =
        new DefaultServiceLocator()
            .addService(RepositoryConnectorFactory.class, AsyncRepositoryConnectorFactory.class)
            .addService(RepositoryConnectorFactory.class, FileRepositoryConnectorFactory.class)
            .addService(VersionResolver.class, DefaultVersionResolver.class)
            .addService(VersionRangeResolver.class, DefaultVersionRangeResolver.class)
            .addService(ArtifactDescriptorReader.class, DefaultArtifactDescriptorReader.class)
            .addService(MetadataGeneratorFactory.class, SnapshotMetadataGeneratorFactory.class)
            .getService(RepositorySystem.class);

    String localRepository = settings.getLocalRepository();
    if (localRepository == null || localRepository.trim().isEmpty()) {
      localRepository = new File(MAVEN_USER_HOME, "repository").getAbsolutePath();
    }

    session =
        new MavenRepositorySystemSession()
            .setLocalRepositoryManager(
                repositorySystem.newLocalRepositoryManager(new LocalRepository(localRepository)));

    releasesRepository =
        makeRemoteRepository(
            releasesRepositoryInfo, settings.getServer(releasesRepositoryInfo.getId()), false);
    snapshotsRepository =
        makeRemoteRepository(
            snapshotsRepositoryInfo, settings.getServer(snapshotsRepositoryInfo.getId()), true);
  }
  @Override
  public BundleInformation installFromRepository(String featureId, boolean start) {

    org.apache.maven.repository.internal.DefaultServiceLocator locator =
        new org.apache.maven.repository.internal.DefaultServiceLocator();
    locator.addService(RepositoryConnectorFactory.class, WagonRepositoryConnectorFactory.class);
    locator.setServices(WagonProvider.class, new HttpWagonProvider());

    RepositorySystem system = locator.getService(RepositorySystem.class);

    // RepositorySystem system = null;
    try {
      // system = new DefaultPlexusContainer().lookup(RepositorySystem.class);

      MavenRepositorySystemSession mvnRepository = new MavenRepositorySystemSession();

      mvnRepository.setLocalRepositoryManager(
          system.newLocalRepositoryManager(
              new LocalRepository(System.getProperty("java.io.tmpdir") + "/repo")));

      CollectRequest collectRequest = new CollectRequest();
      collectRequest.setRoot(new Dependency(new DefaultArtifact(featureId), JavaScopes.RUNTIME));
      collectRequest.addRepository(
          new RemoteRepository(
              "central", "default", "http://nexus.motechproject.org/content/repositories/public"));

      DependencyRequest dependencyRequest =
          new DependencyRequest(
              collectRequest, DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME));

      BundleInformation bundleInformation = null;
      List<ArtifactResult> artifactResults =
          system.resolveDependencies(mvnRepository, dependencyRequest).getArtifactResults();

      List<Bundle> bundlesInstalled = new ArrayList<>();

      for (ArtifactResult artifact : artifactResults) {
        LOG.info("Installing " + artifact);
        final File bundleFile = artifact.getArtifact().getFile();
        FileInputStream fileInputStream = null;
        try {
          fileInputStream = new FileInputStream(bundleFile);
          final File bundleFileToInstall =
              bundleDirectoryManager.saveBundleStreamToFile(bundleFile.getName(), fileInputStream);
          final Bundle bundle = installBundleFromFile(bundleFileToInstall, false, false);
          if (bundle != null) {
            bundlesInstalled.add(bundle);
          }
        } finally {
          IOUtils.closeQuietly(fileInputStream);
        }
      }

      // start bundles after all bundles installed to avoid any dependency resolution problems.
      if (start) {
        for (Bundle bundle : bundlesInstalled) {
          if (!isFragmentBundle(bundle)) {
            bundle.start();
          }
        }
      }

      return bundleInformation;
    } catch (Exception e) {
      LOG.error("Error while installing bundle and dependencies " + featureId, e);
      throw new MotechException("Cannot install file", e);
    }
  }