Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Maven option --also-make-dependents, and --resume-from for project dependency resolution #577

Merged
merged 1 commit into from
Jan 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions tycho-build/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,84 @@
<artifactId>tycho-pomless</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>org.eclipse.tycho.core.shared</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>org.eclipse.tycho.p2.maven.repository</artifactId>
<version>2.7.0-SNAPSHOT</version>
</dependency>
<!--
<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-core</artifactId>
<version>${project.version}</version>
</dependency>
-->
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.p2.core</artifactId>
<version>2.6.100</version>
</dependency>

<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.osgi</artifactId>
<version>3.17.100</version>
</dependency>

<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.p2.publisher</artifactId>
<version>1.6.200</version>
</dependency>

<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.p2.director</artifactId>
<version>2.5.100</version>
</dependency>

<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.p2.engine</artifactId>
<version>2.7.200</version>
</dependency>


<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.p2.metadata</artifactId>
<version>2.6.100</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.p2.repository</artifactId>
<version>2.5.300</version>
</dependency>

<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.osgi.compatibility.state</artifactId>
<version>1.2.500</version>
</dependency>


<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.p2.publisher.eclipse</artifactId>
<version>1.4.1</version>
</dependency>


<dependency>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.plexus</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
Expand All @@ -46,5 +124,24 @@
<artifactId>maven-core</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>org.eclipse.tycho.p2.resolver.impl</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>org.eclipse.tycho.p2.maven.repository</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.p2.metadata.repository</artifactId>
<version>1.4.0</version>
</dependency>


</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/*******************************************************************************
* Copyright (c) 2011, 2022 SAP AG and others.
* 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:
* SAP AG - initial API and implementation
* Christoph Läubrich - #225 MavenLogger is missing error method that accepts an exception
*******************************************************************************/
package org.eclipse.tycho.build;

import org.codehaus.plexus.logging.Logger;
import org.eclipse.tycho.core.shared.MavenLogger;

public class MavenLoggerAdapter implements MavenLogger {

private final Logger logger;
private final boolean extendedDebug;

public MavenLoggerAdapter(Logger logger, boolean extendedDebug) {
this.logger = logger;
this.extendedDebug = extendedDebug;
}

@Override
public void debug(String message) {
if (logger.isDebugEnabled()) {
logger.debug(message);
} else if (isExtendedDebugEnabled()) {
logger.info(message);
}
}

@Override
public void debug(String message, Throwable cause) {
if (logger.isDebugEnabled()) {
logger.debug(message, cause);
} else if (isExtendedDebugEnabled()) {
logger.info(message, cause);
}
}

@Override
public void info(String message) {
logger.info(message);
}

@Override
public void warn(String message) {
warn(message, null);
}

@Override
public void warn(String message, Throwable cause) {
logger.warn(message, cause);
}

@Override
public void error(String message, Throwable cause) {
logger.error(message, cause);
}

@Override
public void error(String message) {
logger.error(message);
}

@Override
public boolean isDebugEnabled() {
return logger.isDebugEnabled() || isExtendedDebugEnabled();
}

@Override
public boolean isExtendedDebugEnabled() {
return extendedDebug;
}

private boolean isEmpty(String message) {
return message == null || message.isEmpty();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
/*******************************************************************************
* Copyright (c) 2022 Christoph Läubrich and others.
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Christoph Läubrich - initial API and implementation
*******************************************************************************/
package org.eclipse.tycho.build;

import java.io.File;
import java.io.InputStream;
import java.util.Collection;
import java.util.Dictionary;

import org.codehaus.plexus.component.annotations.Component;
import org.eclipse.osgi.internal.framework.FilterImpl;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
import org.osgi.framework.BundleListener;
import org.osgi.framework.Filter;
import org.osgi.framework.FrameworkListener;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceFactory;
import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceObjects;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;

//FIXME this should not be necessary at all see https://bugs.eclipse.org/bugs/show_bug.cgi?id=578387
@Component(role = BundleContext.class, hint = "plexus")
public class PlexusBundleContext implements BundleContext {

@Override
public String getProperty(String key) {
return System.getProperty(key);
}

@Override
public Bundle getBundle() {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public Bundle installBundle(String location, InputStream input) throws BundleException {
throw new BundleException("this context does not support installations");
}

@Override
public Bundle installBundle(String location) throws BundleException {
throw new BundleException("this context does not support installations");
}

@Override
public Bundle getBundle(long id) {
return getBundle();
}

@Override
public Bundle[] getBundles() {
return new Bundle[0];
}

@Override
public void addServiceListener(ServiceListener listener, String filter) throws InvalidSyntaxException {

}

@Override
public void addServiceListener(ServiceListener listener) {

}

@Override
public void removeServiceListener(ServiceListener listener) {

}

@Override
public void addBundleListener(BundleListener listener) {

}

@Override
public void removeBundleListener(BundleListener listener) {

}

@Override
public void addFrameworkListener(FrameworkListener listener) {

}

@Override
public void removeFrameworkListener(FrameworkListener listener) {

}

@Override
public ServiceRegistration<?> registerService(String[] clazzes, Object service, Dictionary<String, ?> properties) {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public ServiceRegistration<?> registerService(String clazz, Object service, Dictionary<String, ?> properties) {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public <S> ServiceRegistration<S> registerService(Class<S> clazz, S service, Dictionary<String, ?> properties) {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public <S> ServiceRegistration<S> registerService(Class<S> clazz, ServiceFactory<S> factory,
Dictionary<String, ?> properties) {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public ServiceReference<?>[] getServiceReferences(String clazz, String filter) throws InvalidSyntaxException {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public ServiceReference<?>[] getAllServiceReferences(String clazz, String filter) throws InvalidSyntaxException {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public ServiceReference<?> getServiceReference(String clazz) {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public <S> ServiceReference<S> getServiceReference(Class<S> clazz) {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public <S> Collection<ServiceReference<S>> getServiceReferences(Class<S> clazz, String filter)
throws InvalidSyntaxException {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public <S> S getService(ServiceReference<S> reference) {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public boolean ungetService(ServiceReference<?> reference) {
return true;
}

@Override
public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> reference) {
throw new IllegalStateException("this is not OSGi!");
}

@Override
public File getDataFile(String filename) {
return null;
}

@Override
public Filter createFilter(String filter) throws InvalidSyntaxException {
return FilterImpl.newInstance(filter);
}

@Override
public Bundle getBundle(String location) {
return getBundle();
}

}
Loading