mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
jps model: additional logging for loading from eclipse
This commit is contained in:
@@ -22,4 +22,9 @@ public class JpsJavaSdkType extends JpsSdkType<JpsDummyElement> implements JpsEl
|
||||
public static String getJavaExecutable(JpsSdk<?> sdk) {
|
||||
return sdk.getHomePath() + "/bin/java";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "java sdk type";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,4 +23,9 @@ public class JpsGlobalElementReference extends JpsElementReferenceBase<JpsGlobal
|
||||
@Override
|
||||
public void applyChanges(@NotNull JpsGlobalElementReference modified) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "global ref";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,4 +23,9 @@ public class JpsProjectElementReference extends JpsElementReferenceBase<JpsProje
|
||||
@Override
|
||||
public void applyChanges(@NotNull JpsProjectElementReference modified) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "project ref";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,4 +37,9 @@ public class JpsLibraryReferenceImpl extends JpsNamedElementReferenceImpl<JpsLib
|
||||
model.registerExternalReference(this);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "lib ref: '" + myElementName + "' in " + getParentReference();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,4 +39,9 @@ public class JpsLibraryDependencyImpl extends JpsDependencyElementBase<JpsLibrar
|
||||
public JpsLibraryDependencyImpl createCopy() {
|
||||
return new JpsLibraryDependencyImpl(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "lib dep [" + getLibraryReference() + "]";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,4 +47,9 @@ public class JpsModuleDependencyImpl extends JpsDependencyElementBase<JpsModuleD
|
||||
public JpsModuleDependencyImpl createCopy() {
|
||||
return new JpsModuleDependencyImpl(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "module dep [" + getModuleReference() + "]";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,4 +32,9 @@ public class JpsModuleReferenceImpl extends JpsNamedElementReferenceImpl<JpsModu
|
||||
model.registerExternalReference(this);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "module ref: '" + myElementName + "' in " + getParentReference();
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -21,4 +21,9 @@ public class JpsModuleSourceDependencyImpl extends JpsDependencyElementBase<JpsM
|
||||
public JpsModuleSourceDependencyImpl createCopy() {
|
||||
return new JpsModuleSourceDependencyImpl(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "module source dep";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,4 +52,9 @@ public class JpsSdkDependencyImpl extends JpsDependencyElementBase<JpsSdkDepende
|
||||
public boolean isInherited() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "sdk dep [" + mySdkType + "]";
|
||||
}
|
||||
}
|
||||
|
||||
+15
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.jps.model.serialization.library;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.JDOMUtil;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -17,6 +18,7 @@ import org.jetbrains.jps.model.library.sdk.JpsSdkReference;
|
||||
import org.jetbrains.jps.model.module.JpsSdkReferencesTable;
|
||||
import org.jetbrains.jps.model.serialization.JpsModelSerializerExtension;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -26,6 +28,8 @@ import java.util.List;
|
||||
* @author nik
|
||||
*/
|
||||
public class JpsSdkTableSerializer {
|
||||
private static final Logger LOG = Logger.getInstance(JpsSdkTableSerializer.class);
|
||||
|
||||
private static final JpsLibraryRootTypeSerializer[] PREDEFINED_ROOT_TYPE_SERIALIZERS = {
|
||||
new JpsLibraryRootTypeSerializer("classPath", JpsOrderRootType.COMPILED, true),
|
||||
new JpsLibraryRootTypeSerializer("sourcePath", JpsOrderRootType.SOURCES, true)
|
||||
@@ -76,6 +80,7 @@ public class JpsSdkTableSerializer {
|
||||
private static JpsLibrary loadSdk(Element sdkElement) {
|
||||
String name = getAttributeValue(sdkElement, NAME_TAG);
|
||||
String typeId = getAttributeValue(sdkElement, TYPE_TAG);
|
||||
LOG.debug("Loading " + typeId + " SDK '" + name + "'");
|
||||
JpsSdkPropertiesSerializer<?> serializer = getSdkPropertiesSerializer(typeId);
|
||||
final JpsLibrary library = createSdk(name, serializer, sdkElement);
|
||||
final Element roots = sdkElement.getChild(ROOTS_TAG);
|
||||
@@ -86,6 +91,16 @@ public class JpsSdkTableSerializer {
|
||||
loadRoots(rootElement, library, rootTypeSerializer.getType());
|
||||
}
|
||||
}
|
||||
else {
|
||||
LOG.info("root type serializer not found for " + rootTypeElement.getName());
|
||||
}
|
||||
}
|
||||
if (LOG.isDebugEnabled()) {
|
||||
List<File> files = library.getFiles(JpsOrderRootType.COMPILED);
|
||||
LOG.debug(name + " SDK classpath (" + files.size() + " roots):");
|
||||
for (File file : files) {
|
||||
LOG.debug(" " + file.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
return library;
|
||||
}
|
||||
|
||||
+22
-3
@@ -16,6 +16,7 @@
|
||||
package org.jetbrains.jps.eclipse.model;
|
||||
|
||||
import com.intellij.openapi.components.ExpandMacroToPathMap;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
@@ -44,6 +45,7 @@ import java.util.Set;
|
||||
* Date: 10/29/12
|
||||
*/
|
||||
class JpsEclipseClasspathReader extends AbstractEclipseClasspathReader<JpsModule> {
|
||||
private static final Logger LOG = Logger.getInstance(JpsEclipseClasspathReader.class);
|
||||
|
||||
public JpsEclipseClasspathReader(String rootPath, @Nullable List<String> currentRoots, @Nullable Set<String> moduleNames) {
|
||||
super(rootPath, currentRoots, moduleNames);
|
||||
@@ -66,8 +68,12 @@ class JpsEclipseClasspathReader extends AbstractEclipseClasspathReader<JpsModule
|
||||
boolean exported,
|
||||
String name,
|
||||
boolean applicationLevel) {
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("loading " + rootModel.getName() + ": adding " + (applicationLevel ? "application" : "project") + " library '" + name + "'");
|
||||
}
|
||||
JpsElementFactory factory = JpsElementFactory.getInstance();
|
||||
JpsLibraryReference libraryReference = factory.createLibraryReference(name, applicationLevel ? factory.createGlobalReference() : factory.createProjectReference());
|
||||
JpsLibraryReference libraryReference =
|
||||
factory.createLibraryReference(name, applicationLevel ? factory.createGlobalReference() : factory.createProjectReference());
|
||||
final JpsLibraryDependency dependency = rootModel.getDependenciesList().addLibraryDependency(libraryReference);
|
||||
setLibraryEntryExported(dependency, exported);
|
||||
}
|
||||
@@ -86,6 +92,9 @@ class JpsEclipseClasspathReader extends AbstractEclipseClasspathReader<JpsModule
|
||||
Collection<String> unknownJdks,
|
||||
EclipseModuleManager eclipseModuleManager,
|
||||
String jdkName) {
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("loading " + rootModel.getName() + ": set module jdk " + jdkName);
|
||||
}
|
||||
final JpsDependenciesList dependenciesList = rootModel.getDependenciesList();
|
||||
dependenciesList.addSdkDependency(JpsJavaSdkType.INSTANCE);
|
||||
if (jdkName != null) {
|
||||
@@ -154,6 +163,7 @@ class JpsEclipseClasspathReader extends AbstractEclipseClasspathReader<JpsModule
|
||||
else {
|
||||
url = expandEclipsePath2Url(rootModel, url);
|
||||
}
|
||||
LOG.debug("loading " + rootModel.getName() + ": adding module library " + libName + ": " + url);
|
||||
jpsLibrary.addRoot(url, JpsOrderRootType.COMPILED);
|
||||
|
||||
setLibraryEntryExported(dependency, exported);
|
||||
@@ -194,6 +204,7 @@ class JpsEclipseClasspathReader extends AbstractEclipseClasspathReader<JpsModule
|
||||
public void readClasspath(JpsModule model,
|
||||
final String testPattern,
|
||||
Element classpathElement, JpsMacroExpander expander) throws IOException {
|
||||
LOG.debug("start loading classpath for " + model.getName());
|
||||
for (Object o : classpathElement.getChildren(EclipseXml.CLASSPATHENTRY_TAG)) {
|
||||
try {
|
||||
readClasspathEntry(model, new ArrayList<String>(), new ArrayList<String>(), new HashSet<String>(), new HashSet<String>(),
|
||||
@@ -204,14 +215,22 @@ class JpsEclipseClasspathReader extends AbstractEclipseClasspathReader<JpsModule
|
||||
}
|
||||
}
|
||||
boolean foundSdkDependency = false;
|
||||
for (JpsDependencyElement element : model.getDependenciesList().getDependencies()) {
|
||||
JpsDependenciesList dependenciesList = model.getDependenciesList();
|
||||
for (JpsDependencyElement element : dependenciesList.getDependencies()) {
|
||||
if (element instanceof JpsSdkDependency) {
|
||||
foundSdkDependency = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!foundSdkDependency) {
|
||||
model.getDependenciesList().addSdkDependency(JpsJavaSdkType.INSTANCE);
|
||||
dependenciesList.addSdkDependency(JpsJavaSdkType.INSTANCE);
|
||||
}
|
||||
if (LOG.isDebugEnabled()) {
|
||||
String name = model.getName();
|
||||
LOG.debug("finished loading classpath for " + name + " (" + dependenciesList.getDependencies().size() + " items):");
|
||||
for (JpsDependencyElement element : dependenciesList.getDependencies()) {
|
||||
LOG.debug(" [" + name + "]:" + element.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.jps.eclipse.model;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.JDOMUtil;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import org.jdom.Document;
|
||||
@@ -20,6 +21,7 @@ import java.util.List;
|
||||
*/
|
||||
public class JpsEclipseClasspathSerializer extends JpsModuleClasspathSerializer {
|
||||
@NonNls public static final String CLASSPATH_STORAGE_ID = "eclipse";
|
||||
private static final Logger LOG = Logger.getInstance(JpsEclipseClasspathSerializer.class);
|
||||
|
||||
public JpsEclipseClasspathSerializer() {
|
||||
super(CLASSPATH_STORAGE_ID);
|
||||
@@ -38,6 +40,7 @@ public class JpsEclipseClasspathSerializer extends JpsModuleClasspathSerializer
|
||||
reader.readClasspath(module, null, document.getRootElement(), expander);//todo
|
||||
}
|
||||
catch (Exception e) {
|
||||
LOG.info(e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user