/*******************************************************************************
* Copyright (c) 2015 IBH SYSTEMS GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBH SYSTEMS GmbH - initial API and implementation
*******************************************************************************/
package org.eclipse.packagedrone.testing;
import static org.junit.Assert.assertNotNull;
import java.io.File;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.deployment.DeployRequest;
import org.eclipse.aether.repository.Authentication;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.util.artifact.SubArtifact;
import org.eclipse.aether.util.repository.AuthenticationBuilder;
import org.eclipse.packagedrone.testing.mvn.MavenUtil;
import org.junit.Test;
public class MavenTest extends AbstractServerTest
{
@Test
public void testMvn1 () throws Exception
{
final ChannelTester ct = ChannelTester.create ( getWebContext (), "m1" );
ct.addAspect ( "mvn" );
ct.addAspect ( "maven.repo" );
ct.assignDeployGroup ( "m1" );
final String key = ct.getDeployKeys ().iterator ().next (); // get first
assertNotNull ( key );
final RepositorySystem system = MavenUtil.newRepositorySystem ();
final RepositorySystemSession session = MavenUtil.newRepositorySystemSession ( system );
Artifact jarArtifact = new DefaultArtifact ( "de.dentrassi", "test.bundle1", "", "jar", "1.0.0-SNAPSHOT" );
jarArtifact = jarArtifact.setFile ( new File ( "data/mvn/test.bundle1-1.0.0-SNAPSHOT.jar" ) );
Artifact pomArtifact = new SubArtifact ( jarArtifact, "", "pom" );
pomArtifact = pomArtifact.setFile ( new File ( "data/mvn/test.bundle1-1.0.0-SNAPSHOT.pom" ) );
Artifact srcArtifact = new SubArtifact ( jarArtifact, "sources", "jar" );
srcArtifact = srcArtifact.setFile ( new File ( "data/mvn/test.bundle1-1.0.0-SNAPSHOT-sources.jar" ) );
final AuthenticationBuilder ab = new AuthenticationBuilder ();
ab.addUsername ( "deploy" );
ab.addPassword ( key );
final Authentication auth = ab.build ();
final RemoteRepository distRepo = new RemoteRepository.Builder ( "test", "default", resolve ( String.format ( "/maven/%s", ct.getId () ) ) ).setAuthentication ( auth ).build ();
final DeployRequest deployRequest = new DeployRequest ();
deployRequest.addArtifact ( jarArtifact ).addArtifact ( pomArtifact ).addArtifact ( srcArtifact );
deployRequest.setRepository ( distRepo );
system.deploy ( session, deployRequest );
testUrl ( String.format ( "/maven/%s", ct.getId () ) ); // index page
// FIXME: check more data
}
}