diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java index 6efb8555b579..d51610877f88 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java @@ -24,7 +24,7 @@ package com.intellij.compiler.impl; import com.intellij.CommonBundle; import com.intellij.analysis.AnalysisScope; import com.intellij.compiler.*; -import com.intellij.compiler.impl.newApi.NewCompiler; +import com.intellij.openapi.compiler.generic.GenericCompiler; import com.intellij.compiler.make.CacheCorruptedException; import com.intellij.compiler.make.CacheUtils; import com.intellij.compiler.make.DependencyCache; @@ -725,7 +725,7 @@ public class CompileDriver { boolean didSomething = false; final CompilerManager compilerManager = CompilerManager.getInstance(myProject); - NewCompilerRunner runner = new NewCompilerRunner(context, compilerManager, forceCompile, onlyCheckStatus); + GenericCompilerRunner runner = new GenericCompilerRunner(context, compilerManager, forceCompile, onlyCheckStatus); try { didSomething |= generateSources(compilerManager, context, forceCompile, onlyCheckStatus); @@ -747,23 +747,23 @@ public class CompileDriver { didSomething |= invokeFileProcessingCompilers(compilerManager, context, ClassInstrumentingCompiler.class, FILE_PROCESSING_COMPILER_ADAPTER_FACTORY, isRebuild, false, onlyCheckStatus); - didSomething |= runner.invokeCompilers(NewCompiler.CompileOrderPlace.CLASS_INSTRUMENTING); + didSomething |= runner.invokeCompilers(GenericCompiler.CompileOrderPlace.CLASS_INSTRUMENTING); // explicitly passing forceCompile = false because in scopes that is narrower than ProjectScope it is impossible // to understand whether the class to be processed is in scope or not. Otherwise compiler may process its items even if // there were changes in completely independent files. didSomething |= invokeFileProcessingCompilers(compilerManager, context, ClassPostProcessingCompiler.class, FILE_PROCESSING_COMPILER_ADAPTER_FACTORY, isRebuild, false, onlyCheckStatus); - didSomething |= runner.invokeCompilers(NewCompiler.CompileOrderPlace.CLASS_POST_PROCESSING); + didSomething |= runner.invokeCompilers(GenericCompiler.CompileOrderPlace.CLASS_POST_PROCESSING); didSomething |= invokeFileProcessingCompilers(compilerManager, context, PackagingCompiler.class, FILE_PACKAGING_COMPILER_ADAPTER_FACTORY, isRebuild, false, onlyCheckStatus); - didSomething |= runner.invokeCompilers(NewCompiler.CompileOrderPlace.PACKAGING); + didSomething |= runner.invokeCompilers(GenericCompiler.CompileOrderPlace.PACKAGING); didSomething |= invokeFileProcessingCompilers(compilerManager, context, Validator.class, FILE_PROCESSING_COMPILER_ADAPTER_FACTORY, forceCompile, true, onlyCheckStatus); - didSomething |= runner.invokeCompilers(NewCompiler.CompileOrderPlace.VALIDATING); + didSomething |= runner.invokeCompilers(GenericCompiler.CompileOrderPlace.VALIDATING); } catch (ExitException e) { if (LOG.isDebugEnabled()) { diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/CompilerCacheManager.java b/java/compiler/impl/src/com/intellij/compiler/impl/CompilerCacheManager.java index b93583556588..a254e44418de 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/CompilerCacheManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/CompilerCacheManager.java @@ -15,8 +15,8 @@ */ package com.intellij.compiler.impl; -import com.intellij.compiler.impl.newApi.NewCompiler; -import com.intellij.compiler.impl.newApi.NewCompilerCache; +import com.intellij.compiler.impl.generic.GenericCompilerCache; +import com.intellij.openapi.compiler.generic.GenericCompiler; import com.intellij.openapi.Disposable; import com.intellij.openapi.compiler.*; import com.intellij.openapi.compiler.Compiler; @@ -44,7 +44,7 @@ import java.util.Map; public class CompilerCacheManager implements ProjectComponent { private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.impl.CompilerCacheManager"); private final Map myCompilerToCacheMap = new HashMap(); - private final Map, NewCompilerCache> myNewCachesMap = new HashMap, NewCompilerCache>(); + private final Map, GenericCompilerCache> myGenericCachesMap = new HashMap, GenericCompilerCache>(); private final List myCacheDisposables = new ArrayList(); private final File myCachesRoot; private final Runnable myShutdownTask = new Runnable() { @@ -90,22 +90,23 @@ public class CompilerCacheManager implements ProjectComponent { return dir; } - public synchronized NewCompilerCache - getNewCompilerCache(NewCompiler compiler) throws IOException { - NewCompilerCache cache = myNewCachesMap.get(compiler); + public synchronized GenericCompilerCache + getGenericCompilerCache(GenericCompiler compiler) throws IOException { + GenericCompilerCache cache = myGenericCachesMap.get(compiler); if (cache == null) { - final NewCompilerCache newCache = new NewCompilerCache(compiler, NewCompilerRunner.getNewCompilerCacheDir(myProject, compiler)); - myNewCachesMap.put(compiler, newCache); + final GenericCompilerCache genericCache = new GenericCompilerCache(compiler, GenericCompilerRunner + .getGenericCompilerCacheDir(myProject, compiler)); + myGenericCachesMap.put(compiler, genericCache); myCacheDisposables.add(new Disposable() { @Override public void dispose() { - newCache.close(); + genericCache.close(); } }); - cache = newCache; + cache = genericCache; } //noinspection unchecked - return (NewCompilerCache)cache; + return (GenericCompilerCache)cache; } public synchronized FileProcessingCompilerStateCache getFileProcessingCompilerCache(FileProcessingCompiler compiler) throws IOException { @@ -172,7 +173,7 @@ public class CompilerCacheManager implements ProjectComponent { } } myCacheDisposables.clear(); - myNewCachesMap.clear(); + myGenericCachesMap.clear(); myCompilerToCacheMap.clear(); } diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/NewCompilerRunner.java b/java/compiler/impl/src/com/intellij/compiler/impl/GenericCompilerRunner.java similarity index 72% rename from java/compiler/impl/src/com/intellij/compiler/impl/NewCompilerRunner.java rename to java/compiler/impl/src/com/intellij/compiler/impl/GenericCompilerRunner.java index 1b7e3438d5ea..510c3eb575c1 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/NewCompilerRunner.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/GenericCompilerRunner.java @@ -16,7 +16,9 @@ package com.intellij.compiler.impl; import com.google.common.base.Throwables; -import com.intellij.compiler.impl.newApi.*; +import com.intellij.compiler.impl.generic.GenericCompilerCache; +import com.intellij.compiler.impl.generic.GenericCompilerPersistentData; +import com.intellij.openapi.compiler.generic.*; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.application.Result; @@ -41,26 +43,26 @@ import java.util.*; /** * @author nik */ -public class NewCompilerRunner { - private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.impl.NewCompilerRunner"); +public class GenericCompilerRunner { + private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.impl.GenericCompilerRunner"); private CompileContext myContext; private final boolean myForceCompile; private final boolean myOnlyCheckStatus; - private final NewCompiler[] myCompilers; + private final GenericCompiler[] myCompilers; private final Project myProject; - public NewCompilerRunner(CompileContext context, CompilerManager compilerManager, boolean forceCompile, boolean onlyCheckStatus) { + public GenericCompilerRunner(CompileContext context, CompilerManager compilerManager, boolean forceCompile, boolean onlyCheckStatus) { myContext = context; myForceCompile = forceCompile; myOnlyCheckStatus = onlyCheckStatus; - myCompilers = compilerManager.getCompilers(NewCompiler.class); + myCompilers = compilerManager.getCompilers(GenericCompiler.class); myProject = myContext.getProject(); } - public boolean invokeCompilers(NewCompiler.CompileOrderPlace place) throws CompileDriver.ExitException { + public boolean invokeCompilers(GenericCompiler.CompileOrderPlace place) throws CompileDriver.ExitException { boolean didSomething = false; try { - for (NewCompiler compiler : myCompilers) { + for (GenericCompiler compiler : myCompilers) { if (compiler.getOrderPlace().equals(place)) { didSomething = invokeCompiler(compiler); } @@ -84,14 +86,15 @@ public class NewCompilerRunner { return didSomething; } - private boolean invokeCompiler(NewCompiler compiler) throws IOException, CompileDriver.ExitException { + private boolean invokeCompiler(GenericCompiler compiler) throws IOException, CompileDriver.ExitException { return invokeCompiler(compiler, compiler.createInstance(myContext)); } private , Key, SourceState, OutputState> - boolean invokeCompiler(NewCompiler compiler, CompilerInstance instance) throws IOException, CompileDriver.ExitException { - NewCompilerCache cache = CompilerCacheManager.getInstance(myProject).getNewCompilerCache(compiler); - NewCompilerPersistentData data = new NewCompilerPersistentData(getNewCompilerCacheDir(myProject, compiler), compiler.getVersion()); + boolean invokeCompiler(GenericCompiler compiler, GenericCompilerInstance instance) throws IOException, CompileDriver.ExitException { + GenericCompilerCache cache = CompilerCacheManager.getInstance(myProject).getGenericCompilerCache(compiler); + GenericCompilerPersistentData + data = new GenericCompilerPersistentData(getGenericCompilerCacheDir(myProject, compiler), compiler.getVersion()); if (data.isVersionChanged()) { LOG.info("Clearing cache for " + compiler.getDescription()); cache.wipe(); @@ -109,10 +112,10 @@ public class NewCompilerRunner { } List keys = new ArrayList(); cache.processSources(id, new CommonProcessors.CollectProcessor(keys)); - List> obsoleteSources = new ArrayList>(); + List> obsoleteSources = new ArrayList>(); for (Key key : keys) { - final NewCompilerCache.PersistentStateData state = cache.getState(id, key); - obsoleteSources.add(new NewCompilerItemState(key, state.mySourceState, state.myOutputState)); + final GenericCompilerCache.PersistentStateData state = cache.getState(id, key); + obsoleteSources.add(new GenericCompilerItemState(key, state.mySourceState, state.myOutputState)); } instance.processObsoleteTarget(target, obsoleteSources); if (myContext.getMessageCount(CompilerMessageCategory.ERROR) > 0) { @@ -134,20 +137,20 @@ public class NewCompilerRunner { return didSomething; } - public static File getNewCompilerCacheDir(Project project, NewCompiler compiler) { + public static File getGenericCompilerCacheDir(Project project, GenericCompiler compiler) { return new File(CompilerPaths.getCacheStoreDirectory(project), compiler.getId()); } private , Key, SourceState, OutputState> - boolean processTarget(T target, final int targetId, final NewCompiler compiler, final CompilerInstance instance, - final NewCompilerCache cache) throws IOException, CompileDriver.ExitException { + boolean processTarget(T target, final int targetId, final GenericCompiler compiler, final GenericCompilerInstance instance, + final GenericCompilerCache cache) throws IOException, CompileDriver.ExitException { if (LOG.isDebugEnabled()) { LOG.debug("Processing target '" + target + "' (id=" + targetId + ")"); } final List items = instance.getItems(target); if (myContext.getMessageCount(CompilerMessageCategory.ERROR) > 0) return true; - final List> toProcess = new ArrayList>(); + final List> toProcess = new ArrayList>(); final THashSet keySet = new THashSet(new SourceItemHashingStrategy(compiler)); final Ref exception = Ref.create(null); DumbService.getInstance(myProject).waitForSmartMode(); @@ -159,13 +162,13 @@ public class NewCompilerRunner { for (Item item : items) { final Key key = item.getKey(); keySet.add(key); - final NewCompilerCache.PersistentStateData data = cache.getState(targetId, key); + final GenericCompilerCache.PersistentStateData data = cache.getState(targetId, key); SourceState sourceState = data != null ? data.mySourceState : null; final OutputState outputState = data != null ? data.myOutputState : null; if (myForceCompile || sourceState == null || !item.isSourceUpToDate(sourceState) || outputState == null || !item.isOutputUpToDate(outputState)) { sourceStates.put(item, item.computeSourceState()); - toProcess.add(new NewCompilerItemState(item, sourceState, outputState)); + toProcess.add(new GenericCompilerItemState(item, sourceState, outputState)); } } } @@ -201,15 +204,15 @@ public class NewCompilerRunner { throw new CompileDriver.ExitException(CompileDriver.ExitStatus.CANCELLED); } - List> obsoleteItems = new ArrayList>(); + List> obsoleteItems = new ArrayList>(); for (Key key : toRemove) { - final NewCompilerCache.PersistentStateData data = cache.getState(targetId, key); - obsoleteItems.add(new NewCompilerItemState(key, data.mySourceState, data.myOutputState)); + final GenericCompilerCache.PersistentStateData data = cache.getState(targetId, key); + obsoleteItems.add(new GenericCompilerItemState(key, data.mySourceState, data.myOutputState)); } final List processedItems = new ArrayList(); final List toRefresh = new ArrayList(); - instance.processItems(target, toProcess, obsoleteItems, new CompilerInstance.OutputConsumer() { + instance.processItems(target, toProcess, obsoleteItems, new GenericCompilerInstance.OutputConsumer() { @Override public void addFileToRefresh(@NotNull File file) { toRefresh.add(file); @@ -248,7 +251,7 @@ public class NewCompilerRunner { private class SourceItemHashingStrategy implements TObjectHashingStrategy { private KeyDescriptor myKeyDescriptor; - public SourceItemHashingStrategy(NewCompiler compiler) { + public SourceItemHashingStrategy(GenericCompiler compiler) { myKeyDescriptor = compiler.getItemKeyDescriptor(); } diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompilerCache.java b/java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerCache.java similarity index 91% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompilerCache.java rename to java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerCache.java index 6982e084a52b..10152880e5f1 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompilerCache.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerCache.java @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.compiler.impl.generic; +import com.intellij.openapi.compiler.generic.GenericCompiler; import com.intellij.openapi.diagnostic.Logger; import com.intellij.util.Processor; import com.intellij.util.io.DataExternalizer; @@ -29,13 +30,13 @@ import java.io.IOException; /** * @author nik */ -public class NewCompilerCache { - private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.impl.newApi.NewCompilerCache"); +public class GenericCompilerCache { + private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.impl.generic.GenericCompilerCache"); private PersistentHashMap, PersistentStateData> myPersistentMap; private File myCacheFile; - private final NewCompiler myCompiler; + private final GenericCompiler myCompiler; - public NewCompilerCache(NewCompiler compiler, final File compilerCacheDir) throws IOException { + public GenericCompilerCache(GenericCompiler compiler, final File compilerCacheDir) throws IOException { myCompiler = compiler; myCacheFile = new File(compilerCacheDir, "timestamps"); createMap(); @@ -147,7 +148,7 @@ public class NewCompilerCache { private DataExternalizer mySourceStateExternalizer; private DataExternalizer myOutputStateExternalizer; - public PersistentStateDataExternalizer(NewCompiler compiler) { + public PersistentStateDataExternalizer(GenericCompiler compiler) { mySourceStateExternalizer = compiler.getSourceStateExternalizer(); myOutputStateExternalizer = compiler.getOutputStateExternalizer(); } diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompilerPersistentData.java b/java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerPersistentData.java similarity index 92% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompilerPersistentData.java rename to java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerPersistentData.java index 703a206c7d1f..a9b12d2b3a7b 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompilerPersistentData.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerPersistentData.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.compiler.impl.generic; import com.intellij.openapi.diagnostic.Logger; import com.intellij.util.io.IOUtil; @@ -28,8 +28,8 @@ import java.util.Set; /** * @author nik */ -public class NewCompilerPersistentData { - private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.impl.newApi.NewCompilerPersistentData"); +public class GenericCompilerPersistentData { + private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.impl.generic.GenericCompilerPersistentData"); private static final int VERSION = 1; private File myFile; private Map myTarget2Id = new HashMap(); @@ -37,7 +37,7 @@ public class NewCompilerPersistentData { private boolean myVersionChanged; private final int myCompilerVersion; - public NewCompilerPersistentData(File cacheStoreDirectory, int compilerVersion) throws IOException { + public GenericCompilerPersistentData(File cacheStoreDirectory, int compilerVersion) throws IOException { myCompilerVersion = compilerVersion; myFile = new File(cacheStoreDirectory, "info"); if (!myFile.exists()) { diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFileStateExternalizer.java b/java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFileStateExternalizer.java deleted file mode 100644 index 08c9176c99f4..000000000000 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFileStateExternalizer.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2000-2010 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intellij.compiler.impl.newApi; - -import com.intellij.util.io.DataExternalizer; - -import java.io.DataInput; -import java.io.DataOutput; -import java.io.IOException; - -/** -* @author nik -*/ -public class VirtualFileStateExternalizer implements DataExternalizer { - public static VirtualFileStateExternalizer INSTANCE = new VirtualFileStateExternalizer(); - - @Override - public void save(DataOutput out, VirtualFilePersistentState value) throws IOException { - out.writeLong(value.getSourceTimestamp()); - } - - @Override - public VirtualFilePersistentState read(DataInput in) throws IOException { - return new VirtualFilePersistentState(in.readLong()); - } - -} diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/BuildTarget.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/BuildTarget.java similarity index 95% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/BuildTarget.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/BuildTarget.java index a53ffc1ff9c0..27f16ad9f523 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/BuildTarget.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/BuildTarget.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; import org.jetbrains.annotations.NotNull; diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/CompileItem.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/CompileItem.java similarity index 95% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/CompileItem.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/CompileItem.java index df5eb2fbfc14..3e5f19883a5e 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/CompileItem.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/CompileItem.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; import org.jetbrains.annotations.NotNull; diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/DummyPersistentState.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/DummyPersistentState.java similarity index 96% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/DummyPersistentState.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/DummyPersistentState.java index 40e9bed0a074..b3d66ce575fb 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/DummyPersistentState.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/DummyPersistentState.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; import com.intellij.util.io.DataExternalizer; diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompiler.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/GenericCompiler.java similarity index 79% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompiler.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/GenericCompiler.java index 11c770a62461..daaabec6f48c 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompiler.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/GenericCompiler.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; import com.intellij.openapi.compiler.CompileContext; import com.intellij.openapi.compiler.Compiler; @@ -24,12 +24,12 @@ import org.jetbrains.annotations.NotNull; /** * @author nik */ -public abstract class NewCompiler implements Compiler { +public abstract class GenericCompiler implements Compiler { private final String myId; private final int myVersion; private final CompileOrderPlace myOrderPlace; - protected NewCompiler(@NotNull String id, int version, @NotNull CompileOrderPlace orderPlace) { + protected GenericCompiler(@NotNull String id, int version, @NotNull CompileOrderPlace orderPlace) { myId = id; myVersion = version; myOrderPlace = orderPlace; @@ -43,7 +43,7 @@ public abstract class NewCompiler implements Comp public abstract DataExternalizer getOutputStateExternalizer(); @NotNull - public abstract CompilerInstance, Key, SourceState, OutputState> createInstance(@NotNull CompileContext context); + public abstract GenericCompilerInstance, Key, SourceState, OutputState> createInstance(@NotNull CompileContext context); public final String getId() { return myId; diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/CompilerInstance.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/GenericCompilerInstance.java similarity index 74% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/CompilerInstance.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/GenericCompilerInstance.java index f5a9df2d41f0..c13da612ac8e 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/CompilerInstance.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/GenericCompilerInstance.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; import com.intellij.openapi.compiler.CompileContext; import com.intellij.openapi.project.Project; @@ -25,10 +25,10 @@ import java.util.List; /** * @author nik */ -public abstract class CompilerInstance, Key, SourceState, OutputState> { +public abstract class GenericCompilerInstance, Key, SourceState, OutputState> { protected final CompileContext myContext; - protected CompilerInstance(CompileContext context) { + protected GenericCompilerInstance(CompileContext context) { myContext = context; } @@ -42,13 +42,13 @@ public abstract class CompilerInstance getSelectedTargets(); - public abstract void processObsoleteTarget(@NotNull String targetId, @NotNull List> obsoleteItems); + public abstract void processObsoleteTarget(@NotNull String targetId, @NotNull List> obsoleteItems); @NotNull public abstract List getItems(@NotNull T target); - public abstract void processItems(@NotNull T target, @NotNull List> changedItems, @NotNull List> obsoleteItems, + public abstract void processItems(@NotNull T target, @NotNull List> changedItems, @NotNull List> obsoleteItems, @NotNull OutputConsumer consumer); public interface OutputConsumer> { diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompilerItemState.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/GenericCompilerItemState.java similarity index 82% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompilerItemState.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/GenericCompilerItemState.java index 4dd7084fec76..6166117fb79d 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/NewCompilerItemState.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/GenericCompilerItemState.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; /** * @author nik */ -public class NewCompilerItemState { +public class GenericCompilerItemState { private final Item myItem; private final SourceState mySourceState; private final OutputState myOutputState; - public NewCompilerItemState(Item item, SourceState sourceState, OutputState outputState) { + public GenericCompilerItemState(Item item, SourceState sourceState, OutputState outputState) { myItem = item; mySourceState = sourceState; myOutputState = outputState; diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/SingleTargetCompilerInstance.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/SingleTargetCompilerInstance.java similarity index 81% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/SingleTargetCompilerInstance.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/SingleTargetCompilerInstance.java index 4e5b5fb51dd6..247291157498 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/SingleTargetCompilerInstance.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/SingleTargetCompilerInstance.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; import com.intellij.openapi.compiler.CompileContext; import org.jetbrains.annotations.NotNull; @@ -24,7 +24,8 @@ import java.util.List; /** * @author nik */ -public abstract class SingleTargetCompilerInstance, K,S, O> extends CompilerInstance { +public abstract class SingleTargetCompilerInstance, K,S, O> extends + GenericCompilerInstance { protected SingleTargetCompilerInstance(CompileContext context) { super(context); } @@ -42,6 +43,6 @@ public abstract class SingleTargetCompilerInstance> obsoleteItems) { + public void processObsoleteTarget(@NotNull String targetId, @NotNull List> obsoleteItems) { } } diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFileCompileItem.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/VirtualFileCompileItem.java similarity index 97% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFileCompileItem.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/VirtualFileCompileItem.java index 9131318960e6..89f6986d60f2 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFileCompileItem.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/VirtualFileCompileItem.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.io.EnumeratorStringDescriptor; diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFilePersistentState.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/VirtualFilePersistentState.java similarity index 55% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFilePersistentState.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/VirtualFilePersistentState.java index 9f30a9182e99..e9ea9700af42 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFilePersistentState.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/VirtualFilePersistentState.java @@ -13,12 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; + +import com.intellij.util.io.DataExternalizer; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; /** * @author nik */ public class VirtualFilePersistentState { + public static DataExternalizer EXTERNALIZER = new VirtualFileStateExternalizer(); private final long mySourceTimestamp; public VirtualFilePersistentState(long sourceTimestamp) { @@ -28,4 +35,17 @@ public class VirtualFilePersistentState { public final long getSourceTimestamp() { return mySourceTimestamp; } + + private static class VirtualFileStateExternalizer implements DataExternalizer { + @Override + public void save(DataOutput out, VirtualFilePersistentState value) throws IOException { + out.writeLong(value.getSourceTimestamp()); + } + + @Override + public VirtualFilePersistentState read(DataInput in) throws IOException { + return new VirtualFilePersistentState(in.readLong()); + } + + } } diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFileWithDependenciesState.java b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/VirtualFileWithDependenciesState.java similarity index 98% rename from java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFileWithDependenciesState.java rename to java/compiler/impl/src/com/intellij/openapi/compiler/generic/VirtualFileWithDependenciesState.java index e34c476bc599..9f4a815304de 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/newApi/VirtualFileWithDependenciesState.java +++ b/java/compiler/impl/src/com/intellij/openapi/compiler/generic/VirtualFileWithDependenciesState.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.compiler.impl.newApi; +package com.intellij.openapi.compiler.generic; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactBuildTarget.java b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactBuildTarget.java index 41aeba8c8516..4a29afc1dad4 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactBuildTarget.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactBuildTarget.java @@ -15,7 +15,7 @@ */ package com.intellij.packaging.impl.compiler; -import com.intellij.compiler.impl.newApi.BuildTarget; +import com.intellij.openapi.compiler.generic.BuildTarget; import com.intellij.packaging.artifacts.Artifact; import org.jetbrains.annotations.NotNull; diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactCompilerCompileItem.java b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactCompilerCompileItem.java index 05113499af2a..b4e1865f46ff 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactCompilerCompileItem.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactCompilerCompileItem.java @@ -15,7 +15,7 @@ */ package com.intellij.packaging.impl.compiler; -import com.intellij.compiler.impl.newApi.VirtualFileCompileItem; +import com.intellij.openapi.compiler.generic.VirtualFileCompileItem; import com.intellij.compiler.impl.packagingCompiler.DestinationInfo; import com.intellij.openapi.util.Pair; import com.intellij.openapi.vfs.VirtualFile; diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactsCompiler.java b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactsCompiler.java index b8cdb63fdb6b..293bc3c4a47c 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactsCompiler.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactsCompiler.java @@ -15,7 +15,7 @@ */ package com.intellij.packaging.impl.compiler; -import com.intellij.compiler.impl.newApi.*; +import com.intellij.openapi.compiler.generic.*; import com.intellij.openapi.compiler.CompileContext; import com.intellij.openapi.compiler.CompileScope; import com.intellij.openapi.compiler.CompilerManager; @@ -32,12 +32,12 @@ import java.util.Set; /** * @author nik */ -public class ArtifactsCompiler extends NewCompiler { +public class ArtifactsCompiler extends GenericCompiler { static final Key> WRITTEN_PATHS_KEY = Key.create("artifacts_written_paths"); static final Key> AFFECTED_ARTIFACTS = Key.create("affected_artifacts"); public ArtifactsCompiler() { - super("artifacts_compiler", 0, NewCompiler.CompileOrderPlace.PACKAGING); + super("artifacts_compiler", 0, GenericCompiler.CompileOrderPlace.PACKAGING); } @Nullable @@ -55,7 +55,7 @@ public class ArtifactsCompiler extends NewCompiler getSourceStateExternalizer() { - return VirtualFileStateExternalizer.INSTANCE; + return VirtualFilePersistentState.EXTERNALIZER; } @NotNull @@ -66,7 +66,7 @@ public class ArtifactsCompiler extends NewCompiler, String, VirtualFilePersistentState, ArtifactPackagingItemOutputState> createInstance( + public GenericCompilerInstance, String, VirtualFilePersistentState, ArtifactPackagingItemOutputState> createInstance( @NotNull CompileContext context) { return new ArtifactsCompilerInstance(context); } diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactsCompilerInstance.java b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactsCompilerInstance.java index 5f995f90048b..777e0ead9582 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactsCompilerInstance.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/ArtifactsCompilerInstance.java @@ -17,9 +17,9 @@ package com.intellij.packaging.impl.compiler; import com.intellij.compiler.CompilerManagerImpl; import com.intellij.compiler.impl.CompilerUtil; -import com.intellij.compiler.impl.newApi.CompilerInstance; -import com.intellij.compiler.impl.newApi.NewCompilerItemState; -import com.intellij.compiler.impl.newApi.VirtualFilePersistentState; +import com.intellij.openapi.compiler.generic.GenericCompilerInstance; +import com.intellij.openapi.compiler.generic.GenericCompilerItemState; +import com.intellij.openapi.compiler.generic.VirtualFilePersistentState; import com.intellij.compiler.impl.packagingCompiler.*; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ReadAction; @@ -61,7 +61,7 @@ import java.util.*; /** * @author nik */ -public class ArtifactsCompilerInstance extends CompilerInstance { private static final Logger LOG = Logger.getInstance("#com.intellij.packaging.impl.compiler.ArtifactsCompilerInstance"); private ArtifactsProcessingItemsBuilderContext myBuilderContext; @@ -120,8 +120,8 @@ public class ArtifactsCompilerInstance extends CompilerInstance> obsoleteItems) { - deleteFiles(obsoleteItems, Collections.>emptyList()); + @NotNull List> obsoleteItems) { + deleteFiles(obsoleteItems, Collections.>emptyList()); } @NotNull @@ -163,7 +163,7 @@ public class ArtifactsCompilerInstance extends CompilerInstance> changedItems, + private boolean doBuild(final List> changedItems, final Set processedItems, final @NotNull Set writtenPaths, final Set deletedJars) { final boolean testMode = ApplicationManager.getApplication().isUnitTestMode(); @@ -182,7 +182,7 @@ public class ArtifactsCompilerInstance extends CompilerInstance item : changedItems) { + for (final GenericCompilerItemState item : changedItems) { final ArtifactCompilerCompileItem sourceItem = item.getItem(); myContext.getProgressIndicator().checkCanceled(); @@ -308,8 +308,8 @@ public class ArtifactsCompilerInstance extends CompilerInstance> changedItems, - @NotNull List> obsoleteItems, + @NotNull final List> changedItems, + @NotNull List> obsoleteItems, @NotNull OutputConsumer consumer) { final THashSet deletedJars = deleteFiles(obsoleteItems, changedItems); @@ -337,8 +337,8 @@ public class ArtifactsCompilerInstance extends CompilerInstance deleteFiles(List> obsoleteItems, - List> changedItems) { + private THashSet deleteFiles(List> obsoleteItems, + List> changedItems) { myContext.getProgressIndicator().setText(CompilerBundle.message("packaging.compiler.message.deleting.outdated.files")); final boolean testMode = ApplicationManager.getApplication().isUnitTestMode(); @@ -349,7 +349,7 @@ public class ArtifactsCompilerInstance extends CompilerInstance pathToDelete = new THashSet(); - for (NewCompilerItemState item : changedItems) { + for (GenericCompilerItemState item : changedItems) { final ArtifactPackagingItemOutputState cached = item.getOutputState(); if (cached != null) { for (Pair destination : cached.myDestinations) { @@ -357,12 +357,12 @@ public class ArtifactsCompilerInstance extends CompilerInstance item : changedItems) { + for (GenericCompilerItemState item : changedItems) { for (DestinationInfo destination : item.getItem().getDestinations()) { pathToDelete.remove(destination.getOutputPath()); } } - for (NewCompilerItemState item : obsoleteItems) { + for (GenericCompilerItemState item : obsoleteItems) { for (Pair destination : item.getOutputState().myDestinations) { pathToDelete.add(destination.getFirst()); }