IGNITE-141 - Fixed classnames.properties generation

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/2ebb2705
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/2ebb2705
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/2ebb2705

Branch: refs/heads/ignite-141
Commit: 2ebb27052e8d48ae453b540e73d804192fce5ea9
Parents: b8c3d07
Author: Valentin Kulichenko <vkuliche...@gridgain.com>
Authored: Thu Mar 5 15:52:43 2015 -0800
Committer: Valentin Kulichenko <vkuliche...@gridgain.com>
Committed: Thu Mar 5 15:52:43 2015 -0800

----------------------------------------------------------------------
 modules/core/pom.xml                            |  39 ++-
 .../ignite/internal/ClassesGenerator.java       |  25 +-
 .../internal/MarshallerContextAdapter.java      |  21 +-
 .../ignite/internal/classnames-jdk.properties   | 325 +++++++++++++++++++
 .../ignite/internal/classnames.properties       | 308 ------------------
 .../optimized/OptimizedClassNamesGenerator.java | 325 -------------------
 6 files changed, 360 insertions(+), 683 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ebb2705/modules/core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index b5c3de0..c047018 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -170,26 +170,25 @@
                 </configuration>
             </plugin>
 
-            <!--<plugin>-->
-                <!--<groupId>org.codehaus.mojo</groupId>-->
-                <!--<artifactId>exec-maven-plugin</artifactId>-->
-                <!--<version>1.3.2</version>-->
-                <!--<executions>-->
-                    <!--<execution>-->
-                        <!--<phase>process-classes</phase>-->
-                        <!--<goals>-->
-                            <!--<goal>java</goal>-->
-                        <!--</goals>-->
-                        <!--<configuration>-->
-                            
<!--<mainClass>org.apache.ignite.internal.ClassesGenerator</mainClass>-->
-                            <!--<arguments>-->
-                                
<!--<argument>${project.basedir}/target/classes</argument>-->
-                            <!--</arguments>-->
-                            <!--<classpathScope>compile</classpathScope>-->
-                        <!--</configuration>-->
-                    <!--</execution>-->
-                <!--</executions>-->
-            <!--</plugin>-->
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>1.3.2</version>
+                <executions>
+                    <execution>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>java</goal>
+                        </goals>
+                        <configuration>
+                            
<mainClass>org.apache.ignite.internal.ClassesGenerator</mainClass>
+                            <arguments>
+                                
<argument>${project.basedir}/target/classes</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ebb2705/modules/core/src/main/java/org/apache/ignite/internal/ClassesGenerator.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/ClassesGenerator.java 
b/modules/core/src/main/java/org/apache/ignite/internal/ClassesGenerator.java
index 641a10f..4d06dea 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/ClassesGenerator.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/ClassesGenerator.java
@@ -59,10 +59,7 @@ public class ClassesGenerator {
         "org.apache.ignite",
         "org.jdk8.backport",
         "org.pcollections",
-        "com.romix.scala",
-        "java.lang",
-        "java.util",
-        "java.net"
+        "com.romix.scala"
     };
 
     /**
@@ -114,14 +111,8 @@ public class ClassesGenerator {
     private Collection<Class> generate() throws Exception {
         System.out.println("Generating classnames.properties...");
 
-        URLClassLoader ldr0 = ldr;
-
-        while (ldr0 != null) {
-            for (URL url : ldr0.getURLs())
-                processUrl(url);
-
-            ldr0 = (URLClassLoader)ldr0.getParent();
-        }
+        for (URL url : ldr.getURLs())
+            processUrl(url);
 
         if (!errs.isEmpty()) {
             StringBuilder sb = new StringBuilder("Failed to generate 
classnames.properties due to errors:\n");
@@ -132,16 +123,6 @@ public class ClassesGenerator {
             throw new Exception(sb.toString().trim());
         }
 
-        classes.add(byte[].class);
-        classes.add(short[].class);
-        classes.add(int[].class);
-        classes.add(long[].class);
-        classes.add(float[].class);
-        classes.add(double[].class);
-        classes.add(char[].class);
-        classes.add(boolean[].class);
-        classes.add(Object[].class);
-
         return classes;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ebb2705/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java
index cb4847b..1fc6c5a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextAdapter.java
@@ -28,7 +28,10 @@ import java.util.concurrent.*;
  */
 public abstract class MarshallerContextAdapter implements MarshallerContext {
     /** */
-    private static final String CLS_NAMES_FILE = 
"org/apache/ignite/internal/classnames.properties";
+    private static final String[] CLS_NAMES_FILES = {
+        "org/apache/ignite/internal/classnames.properties",
+        "org/apache/ignite/internal/classnames-jdk.properties"
+    };
 
     /** */
     protected final ConcurrentMap<Integer, String> clsNameById = new 
ConcurrentHashMap8<>();
@@ -40,17 +43,19 @@ public abstract class MarshallerContextAdapter implements 
MarshallerContext {
         try {
             ClassLoader ldr = getClass().getClassLoader();
 
-            BufferedReader rdr = new BufferedReader(new 
InputStreamReader(ldr.getResourceAsStream(CLS_NAMES_FILE)));
+            for (String file : CLS_NAMES_FILES) {
+                BufferedReader rdr = new BufferedReader(new 
InputStreamReader(ldr.getResourceAsStream(file)));
 
-            String line;
+                String line;
 
-            while ((line = rdr.readLine()) != null) {
-                if (line.isEmpty() || line.startsWith("#"))
-                    continue;
+                while ((line = rdr.readLine()) != null) {
+                    if (line.isEmpty() || line.startsWith("#"))
+                        continue;
 
-                String clsName = line.trim();
+                    String clsName = line.trim();
 
-                clsNameById.put(clsName.hashCode(), clsName);
+                    clsNameById.put(clsName.hashCode(), clsName);
+                }
             }
         }
         catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ebb2705/modules/core/src/main/java/org/apache/ignite/internal/classnames-jdk.properties
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/classnames-jdk.properties
 
b/modules/core/src/main/java/org/apache/ignite/internal/classnames-jdk.properties
new file mode 100644
index 0000000..0cae0f7
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/classnames-jdk.properties
@@ -0,0 +1,325 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+[B
+[C
+[D
+[F
+[I
+[J
+[S
+[Z
+[Ljava.lang.Object;
+java.lang.AbstractMethodError
+java.lang.ArithmeticException
+java.lang.ArrayIndexOutOfBoundsException
+java.lang.ArrayStoreException
+java.lang.AssertionError
+java.lang.Boolean
+java.lang.BootstrapMethodError
+java.lang.Byte
+java.lang.Character
+java.lang.Character$UnicodeScript
+java.lang.Class
+java.lang.ClassCastException
+java.lang.ClassCircularityError
+java.lang.ClassFormatError
+java.lang.ClassNotFoundException
+java.lang.CloneNotSupportedException
+java.lang.Double
+java.lang.EnumConstantNotPresentException
+java.lang.Error
+java.lang.Exception
+java.lang.ExceptionInInitializerError
+java.lang.Float
+java.lang.IllegalAccessError
+java.lang.IllegalAccessException
+java.lang.IllegalArgumentException
+java.lang.IllegalMonitorStateException
+java.lang.IllegalStateException
+java.lang.IllegalThreadStateException
+java.lang.IncompatibleClassChangeError
+java.lang.IndexOutOfBoundsException
+java.lang.InstantiationError
+java.lang.InstantiationException
+java.lang.Integer
+java.lang.InternalError
+java.lang.InterruptedException
+java.lang.LinkageError
+java.lang.Long
+java.lang.NegativeArraySizeException
+java.lang.NoClassDefFoundError
+java.lang.NoSuchFieldError
+java.lang.NoSuchFieldException
+java.lang.NoSuchMethodError
+java.lang.NoSuchMethodException
+java.lang.NullPointerException
+java.lang.NumberFormatException
+java.lang.OutOfMemoryError
+java.lang.ProcessBuilder$Redirect$Type
+java.lang.ReflectiveOperationException
+java.lang.RuntimeException
+java.lang.RuntimePermission
+java.lang.SecurityException
+java.lang.Short
+java.lang.StackOverflowError
+java.lang.StackTraceElement
+java.lang.String
+java.lang.String$CaseInsensitiveComparator
+java.lang.StringBuffer
+java.lang.StringBuilder
+java.lang.StringIndexOutOfBoundsException
+java.lang.Thread$State
+java.lang.ThreadDeath
+java.lang.Throwable
+java.lang.TypeNotPresentException
+java.lang.UNIXProcess$LaunchMechanism
+java.lang.UnknownError
+java.lang.UnsatisfiedLinkError
+java.lang.UnsupportedClassVersionError
+java.lang.UnsupportedOperationException
+java.lang.VerifyError
+java.lang.annotation.AnnotationFormatError
+java.lang.annotation.AnnotationTypeMismatchException
+java.lang.annotation.ElementType
+java.lang.annotation.IncompleteAnnotationException
+java.lang.annotation.RetentionPolicy
+java.lang.instrument.IllegalClassFormatException
+java.lang.instrument.UnmodifiableClassException
+java.lang.invoke.MethodType
+java.lang.invoke.WrongMethodTypeException
+java.lang.management.ManagementPermission
+java.lang.management.MemoryType
+java.lang.management.PlatformComponent
+java.lang.reflect.GenericSignatureFormatError
+java.lang.reflect.InvocationTargetException
+java.lang.reflect.MalformedParameterizedTypeException
+java.lang.reflect.Proxy
+java.lang.reflect.ReflectPermission
+java.lang.reflect.UndeclaredThrowableException
+java.net.Authenticator$RequestorType
+java.net.BindException
+java.net.ConnectException
+java.net.HttpRetryException
+java.net.Inet4Address
+java.net.Inet6Address
+java.net.InetAddress
+java.net.InetAddress$Cache$Type
+java.net.InetSocketAddress
+java.net.MalformedURLException
+java.net.NetPermission
+java.net.NoRouteToHostException
+java.net.PortUnreachableException
+java.net.ProtocolException
+java.net.Proxy$Type
+java.net.SocketException
+java.net.SocketPermission
+java.net.SocketPermissionCollection
+java.net.SocketTimeoutException
+java.net.StandardProtocolFamily
+java.net.URI
+java.net.URISyntaxException
+java.net.URL
+java.net.UnknownHostException
+java.net.UnknownServiceException
+java.util.AbstractMap$SimpleEntry
+java.util.AbstractMap$SimpleImmutableEntry
+java.util.ArrayDeque
+java.util.ArrayList
+java.util.Arrays$ArrayList
+java.util.BitSet
+java.util.Collections$AsLIFOQueue
+java.util.Collections$CheckedCollection
+java.util.Collections$CheckedList
+java.util.Collections$CheckedMap
+java.util.Collections$CheckedRandomAccessList
+java.util.Collections$CheckedSet
+java.util.Collections$CheckedSortedMap
+java.util.Collections$CheckedSortedSet
+java.util.Collections$CopiesList
+java.util.Collections$EmptyList
+java.util.Collections$EmptyMap
+java.util.Collections$EmptySet
+java.util.Collections$ReverseComparator
+java.util.Collections$ReverseComparator2
+java.util.Collections$SetFromMap
+java.util.Collections$SingletonList
+java.util.Collections$SingletonMap
+java.util.Collections$SingletonSet
+java.util.Collections$SynchronizedCollection
+java.util.Collections$SynchronizedList
+java.util.Collections$SynchronizedMap
+java.util.Collections$SynchronizedRandomAccessList
+java.util.Collections$SynchronizedSet
+java.util.Collections$SynchronizedSortedMap
+java.util.Collections$SynchronizedSortedSet
+java.util.Collections$UnmodifiableCollection
+java.util.Collections$UnmodifiableList
+java.util.Collections$UnmodifiableMap
+java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet
+java.util.Collections$UnmodifiableRandomAccessList
+java.util.Collections$UnmodifiableSet
+java.util.Collections$UnmodifiableSortedMap
+java.util.Collections$UnmodifiableSortedSet
+java.util.ConcurrentModificationException
+java.util.Currency
+java.util.Date
+java.util.DuplicateFormatFlagsException
+java.util.EmptyStackException
+java.util.EnumMap
+java.util.EnumSet$SerializationProxy
+java.util.EventObject
+java.util.FormatFlagsConversionMismatchException
+java.util.Formatter$BigDecimalLayoutForm
+java.util.FormatterClosedException
+java.util.GregorianCalendar
+java.util.HashMap
+java.util.HashSet
+java.util.Hashtable
+java.util.IdentityHashMap
+java.util.IllegalFormatCodePointException
+java.util.IllegalFormatConversionException
+java.util.IllegalFormatException
+java.util.IllegalFormatFlagsException
+java.util.IllegalFormatPrecisionException
+java.util.IllegalFormatWidthException
+java.util.IllformedLocaleException
+java.util.InputMismatchException
+java.util.InvalidPropertiesFormatException
+java.util.JapaneseImperialCalendar
+java.util.JumboEnumSet
+java.util.LinkedHashMap
+java.util.LinkedHashSet
+java.util.LinkedList
+java.util.Locale
+java.util.Locale$Category
+java.util.MissingFormatArgumentException
+java.util.MissingFormatWidthException
+java.util.MissingResourceException
+java.util.NoSuchElementException
+java.util.PriorityQueue
+java.util.Properties
+java.util.PropertyPermission
+java.util.PropertyPermissionCollection
+java.util.Random
+java.util.RegularEnumSet
+java.util.ServiceConfigurationError
+java.util.SimpleTimeZone
+java.util.Stack
+java.util.TooManyListenersException
+java.util.TreeMap
+java.util.TreeMap$AscendingSubMap
+java.util.TreeMap$DescendingSubMap
+java.util.TreeMap$SubMap
+java.util.TreeSet
+java.util.UUID
+java.util.UnknownFormatConversionException
+java.util.UnknownFormatFlagsException
+java.util.Vector
+java.util.concurrent.ArrayBlockingQueue
+java.util.concurrent.BrokenBarrierException
+java.util.concurrent.CancellationException
+java.util.concurrent.ConcurrentHashMap
+java.util.concurrent.ConcurrentHashMap$Segment
+java.util.concurrent.ConcurrentHashMap$WriteThroughEntry
+java.util.concurrent.ConcurrentLinkedDeque
+java.util.concurrent.ConcurrentLinkedQueue
+java.util.concurrent.ConcurrentSkipListMap
+java.util.concurrent.ConcurrentSkipListMap$SubMap
+java.util.concurrent.ConcurrentSkipListSet
+java.util.concurrent.CopyOnWriteArrayList
+java.util.concurrent.CopyOnWriteArraySet
+java.util.concurrent.CountDownLatch$Sync
+java.util.concurrent.Exchanger$Node
+java.util.concurrent.Exchanger$Slot
+java.util.concurrent.ExecutionException
+java.util.concurrent.ForkJoinPool$InvokeAll
+java.util.concurrent.ForkJoinTask$AdaptedCallable
+java.util.concurrent.ForkJoinTask$AdaptedRunnable
+java.util.concurrent.LinkedBlockingDeque
+java.util.concurrent.LinkedBlockingQueue
+java.util.concurrent.LinkedTransferQueue
+java.util.concurrent.PriorityBlockingQueue
+java.util.concurrent.RejectedExecutionException
+java.util.concurrent.Semaphore
+java.util.concurrent.Semaphore$FairSync
+java.util.concurrent.Semaphore$NonfairSync
+java.util.concurrent.SynchronousQueue
+java.util.concurrent.SynchronousQueue$FifoWaitQueue
+java.util.concurrent.SynchronousQueue$LifoWaitQueue
+java.util.concurrent.SynchronousQueue$WaitQueue
+java.util.concurrent.ThreadLocalRandom
+java.util.concurrent.ThreadPoolExecutor$Worker
+java.util.concurrent.TimeUnit$1
+java.util.concurrent.TimeUnit$2
+java.util.concurrent.TimeUnit$3
+java.util.concurrent.TimeUnit$4
+java.util.concurrent.TimeUnit$5
+java.util.concurrent.TimeUnit$6
+java.util.concurrent.TimeUnit$7
+java.util.concurrent.TimeoutException
+java.util.concurrent.atomic.AtomicBoolean
+java.util.concurrent.atomic.AtomicInteger
+java.util.concurrent.atomic.AtomicIntegerArray
+java.util.concurrent.atomic.AtomicLong
+java.util.concurrent.atomic.AtomicLongArray
+java.util.concurrent.atomic.AtomicReference
+java.util.concurrent.atomic.AtomicReferenceArray
+java.util.concurrent.locks.AbstractQueuedLongSynchronizer$ConditionObject
+java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
+java.util.concurrent.locks.ReentrantLock
+java.util.concurrent.locks.ReentrantLock$FairSync
+java.util.concurrent.locks.ReentrantLock$NonfairSync
+java.util.concurrent.locks.ReentrantReadWriteLock
+java.util.concurrent.locks.ReentrantReadWriteLock$FairSync
+java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync
+java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock
+java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock
+java.util.jar.JarException
+java.util.jar.JarVerifier$VerifierCodeSource
+java.util.logging.Level
+java.util.logging.LogRecord
+java.util.logging.LoggingPermission
+java.util.prefs.AbstractPreferences$NodeAddedEvent
+java.util.prefs.AbstractPreferences$NodeRemovedEvent
+java.util.prefs.BackingStoreException
+java.util.prefs.InvalidPreferencesFormatException
+java.util.prefs.NodeChangeEvent
+java.util.prefs.PreferenceChangeEvent
+java.util.regex.Pattern
+java.util.regex.PatternSyntaxException
+java.util.regex.UnicodeProp$1
+java.util.regex.UnicodeProp$10
+java.util.regex.UnicodeProp$11
+java.util.regex.UnicodeProp$12
+java.util.regex.UnicodeProp$13
+java.util.regex.UnicodeProp$14
+java.util.regex.UnicodeProp$15
+java.util.regex.UnicodeProp$16
+java.util.regex.UnicodeProp$17
+java.util.regex.UnicodeProp$18
+java.util.regex.UnicodeProp$2
+java.util.regex.UnicodeProp$3
+java.util.regex.UnicodeProp$4
+java.util.regex.UnicodeProp$5
+java.util.regex.UnicodeProp$6
+java.util.regex.UnicodeProp$7
+java.util.regex.UnicodeProp$8
+java.util.regex.UnicodeProp$9
+java.util.zip.DataFormatException
+java.util.zip.ZipError
+java.util.zip.ZipException

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ebb2705/modules/core/src/main/java/org/apache/ignite/internal/classnames.properties
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/classnames.properties 
b/modules/core/src/main/java/org/apache/ignite/internal/classnames.properties
index 64b93ad..92b5d4d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/classnames.properties
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/classnames.properties
@@ -15,314 +15,6 @@
 # limitations under the License.
 #
 
-[B
-[C
-[D
-[F
-[I
-[J
-[Ljava.lang.Object;
-[S
-[Z
-java.lang.AbstractMethodError
-java.lang.ArithmeticException
-java.lang.ArrayIndexOutOfBoundsException
-java.lang.ArrayStoreException
-java.lang.AssertionError
-java.lang.Boolean
-java.lang.BootstrapMethodError
-java.lang.Byte
-java.lang.Character
-java.lang.Character$UnicodeScript
-java.lang.Class
-java.lang.ClassCastException
-java.lang.ClassCircularityError
-java.lang.ClassFormatError
-java.lang.ClassNotFoundException
-java.lang.CloneNotSupportedException
-java.lang.Double
-java.lang.EnumConstantNotPresentException
-java.lang.Error
-java.lang.Exception
-java.lang.ExceptionInInitializerError
-java.lang.Float
-java.lang.IllegalAccessError
-java.lang.IllegalAccessException
-java.lang.IllegalArgumentException
-java.lang.IllegalMonitorStateException
-java.lang.IllegalStateException
-java.lang.IllegalThreadStateException
-java.lang.IncompatibleClassChangeError
-java.lang.IndexOutOfBoundsException
-java.lang.InstantiationError
-java.lang.InstantiationException
-java.lang.Integer
-java.lang.InternalError
-java.lang.InterruptedException
-java.lang.LinkageError
-java.lang.Long
-java.lang.NegativeArraySizeException
-java.lang.NoClassDefFoundError
-java.lang.NoSuchFieldError
-java.lang.NoSuchFieldException
-java.lang.NoSuchMethodError
-java.lang.NoSuchMethodException
-java.lang.NullPointerException
-java.lang.NumberFormatException
-java.lang.OutOfMemoryError
-java.lang.ProcessBuilder$Redirect$Type
-java.lang.ReflectiveOperationException
-java.lang.RuntimeException
-java.lang.RuntimePermission
-java.lang.SecurityException
-java.lang.Short
-java.lang.StackOverflowError
-java.lang.StackTraceElement
-java.lang.String
-java.lang.String$CaseInsensitiveComparator
-java.lang.StringBuffer
-java.lang.StringBuilder
-java.lang.StringIndexOutOfBoundsException
-java.lang.Thread$State
-java.lang.ThreadDeath
-java.lang.Throwable
-java.lang.TypeNotPresentException
-java.lang.UNIXProcess$LaunchMechanism
-java.lang.UnknownError
-java.lang.UnsatisfiedLinkError
-java.lang.UnsupportedClassVersionError
-java.lang.UnsupportedOperationException
-java.lang.VerifyError
-java.lang.annotation.AnnotationFormatError
-java.lang.annotation.AnnotationTypeMismatchException
-java.lang.annotation.ElementType
-java.lang.annotation.IncompleteAnnotationException
-java.lang.annotation.RetentionPolicy
-java.lang.instrument.IllegalClassFormatException
-java.lang.instrument.UnmodifiableClassException
-java.lang.invoke.MethodType
-java.lang.invoke.WrongMethodTypeException
-java.lang.management.ManagementPermission
-java.lang.management.MemoryType
-java.lang.management.PlatformComponent
-java.lang.reflect.GenericSignatureFormatError
-java.lang.reflect.InvocationTargetException
-java.lang.reflect.MalformedParameterizedTypeException
-java.lang.reflect.Proxy
-java.lang.reflect.ReflectPermission
-java.lang.reflect.UndeclaredThrowableException
-java.net.Authenticator$RequestorType
-java.net.BindException
-java.net.ConnectException
-java.net.HttpRetryException
-java.net.Inet4Address
-java.net.Inet6Address
-java.net.InetAddress
-java.net.InetAddress$Cache$Type
-java.net.InetSocketAddress
-java.net.MalformedURLException
-java.net.NetPermission
-java.net.NoRouteToHostException
-java.net.PortUnreachableException
-java.net.ProtocolException
-java.net.Proxy$Type
-java.net.SocketException
-java.net.SocketPermission
-java.net.SocketPermissionCollection
-java.net.SocketTimeoutException
-java.net.StandardProtocolFamily
-java.net.URI
-java.net.URISyntaxException
-java.net.URL
-java.net.UnknownHostException
-java.net.UnknownServiceException
-java.util.AbstractMap$SimpleEntry
-java.util.AbstractMap$SimpleImmutableEntry
-java.util.ArrayDeque
-java.util.ArrayList
-java.util.Arrays$ArrayList
-java.util.BitSet
-java.util.Collections$AsLIFOQueue
-java.util.Collections$CheckedCollection
-java.util.Collections$CheckedList
-java.util.Collections$CheckedMap
-java.util.Collections$CheckedRandomAccessList
-java.util.Collections$CheckedSet
-java.util.Collections$CheckedSortedMap
-java.util.Collections$CheckedSortedSet
-java.util.Collections$CopiesList
-java.util.Collections$EmptyList
-java.util.Collections$EmptyMap
-java.util.Collections$EmptySet
-java.util.Collections$ReverseComparator
-java.util.Collections$ReverseComparator2
-java.util.Collections$SetFromMap
-java.util.Collections$SingletonList
-java.util.Collections$SingletonMap
-java.util.Collections$SingletonSet
-java.util.Collections$SynchronizedCollection
-java.util.Collections$SynchronizedList
-java.util.Collections$SynchronizedMap
-java.util.Collections$SynchronizedRandomAccessList
-java.util.Collections$SynchronizedSet
-java.util.Collections$SynchronizedSortedMap
-java.util.Collections$SynchronizedSortedSet
-java.util.Collections$UnmodifiableCollection
-java.util.Collections$UnmodifiableList
-java.util.Collections$UnmodifiableMap
-java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet
-java.util.Collections$UnmodifiableRandomAccessList
-java.util.Collections$UnmodifiableSet
-java.util.Collections$UnmodifiableSortedMap
-java.util.Collections$UnmodifiableSortedSet
-java.util.ConcurrentModificationException
-java.util.Currency
-java.util.Date
-java.util.DuplicateFormatFlagsException
-java.util.EmptyStackException
-java.util.EnumMap
-java.util.EnumSet$SerializationProxy
-java.util.EventObject
-java.util.FormatFlagsConversionMismatchException
-java.util.Formatter$BigDecimalLayoutForm
-java.util.FormatterClosedException
-java.util.GregorianCalendar
-java.util.HashMap
-java.util.HashSet
-java.util.Hashtable
-java.util.IdentityHashMap
-java.util.IllegalFormatCodePointException
-java.util.IllegalFormatConversionException
-java.util.IllegalFormatException
-java.util.IllegalFormatFlagsException
-java.util.IllegalFormatPrecisionException
-java.util.IllegalFormatWidthException
-java.util.IllformedLocaleException
-java.util.InputMismatchException
-java.util.InvalidPropertiesFormatException
-java.util.JapaneseImperialCalendar
-java.util.JumboEnumSet
-java.util.LinkedHashMap
-java.util.LinkedHashSet
-java.util.LinkedList
-java.util.Locale
-java.util.Locale$Category
-java.util.MissingFormatArgumentException
-java.util.MissingFormatWidthException
-java.util.MissingResourceException
-java.util.NoSuchElementException
-java.util.PriorityQueue
-java.util.Properties
-java.util.PropertyPermission
-java.util.PropertyPermissionCollection
-java.util.Random
-java.util.RegularEnumSet
-java.util.ServiceConfigurationError
-java.util.SimpleTimeZone
-java.util.Stack
-java.util.TooManyListenersException
-java.util.TreeMap
-java.util.TreeMap$AscendingSubMap
-java.util.TreeMap$DescendingSubMap
-java.util.TreeMap$SubMap
-java.util.TreeSet
-java.util.UUID
-java.util.UnknownFormatConversionException
-java.util.UnknownFormatFlagsException
-java.util.Vector
-java.util.concurrent.ArrayBlockingQueue
-java.util.concurrent.BrokenBarrierException
-java.util.concurrent.CancellationException
-java.util.concurrent.ConcurrentHashMap
-java.util.concurrent.ConcurrentHashMap$Segment
-java.util.concurrent.ConcurrentHashMap$WriteThroughEntry
-java.util.concurrent.ConcurrentLinkedDeque
-java.util.concurrent.ConcurrentLinkedQueue
-java.util.concurrent.ConcurrentSkipListMap
-java.util.concurrent.ConcurrentSkipListMap$SubMap
-java.util.concurrent.ConcurrentSkipListSet
-java.util.concurrent.CopyOnWriteArrayList
-java.util.concurrent.CopyOnWriteArraySet
-java.util.concurrent.CountDownLatch$Sync
-java.util.concurrent.Exchanger$Node
-java.util.concurrent.Exchanger$Slot
-java.util.concurrent.ExecutionException
-java.util.concurrent.ForkJoinPool$InvokeAll
-java.util.concurrent.ForkJoinTask$AdaptedCallable
-java.util.concurrent.ForkJoinTask$AdaptedRunnable
-java.util.concurrent.LinkedBlockingDeque
-java.util.concurrent.LinkedBlockingQueue
-java.util.concurrent.LinkedTransferQueue
-java.util.concurrent.PriorityBlockingQueue
-java.util.concurrent.RejectedExecutionException
-java.util.concurrent.Semaphore
-java.util.concurrent.Semaphore$FairSync
-java.util.concurrent.Semaphore$NonfairSync
-java.util.concurrent.SynchronousQueue
-java.util.concurrent.SynchronousQueue$FifoWaitQueue
-java.util.concurrent.SynchronousQueue$LifoWaitQueue
-java.util.concurrent.SynchronousQueue$WaitQueue
-java.util.concurrent.ThreadLocalRandom
-java.util.concurrent.ThreadPoolExecutor$Worker
-java.util.concurrent.TimeUnit$1
-java.util.concurrent.TimeUnit$2
-java.util.concurrent.TimeUnit$3
-java.util.concurrent.TimeUnit$4
-java.util.concurrent.TimeUnit$5
-java.util.concurrent.TimeUnit$6
-java.util.concurrent.TimeUnit$7
-java.util.concurrent.TimeoutException
-java.util.concurrent.atomic.AtomicBoolean
-java.util.concurrent.atomic.AtomicInteger
-java.util.concurrent.atomic.AtomicIntegerArray
-java.util.concurrent.atomic.AtomicLong
-java.util.concurrent.atomic.AtomicLongArray
-java.util.concurrent.atomic.AtomicReference
-java.util.concurrent.atomic.AtomicReferenceArray
-java.util.concurrent.locks.AbstractQueuedLongSynchronizer$ConditionObject
-java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
-java.util.concurrent.locks.ReentrantLock
-java.util.concurrent.locks.ReentrantLock$FairSync
-java.util.concurrent.locks.ReentrantLock$NonfairSync
-java.util.concurrent.locks.ReentrantReadWriteLock
-java.util.concurrent.locks.ReentrantReadWriteLock$FairSync
-java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync
-java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock
-java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock
-java.util.jar.JarException
-java.util.jar.JarVerifier$VerifierCodeSource
-java.util.logging.Level
-java.util.logging.LogRecord
-java.util.logging.LoggingPermission
-java.util.prefs.AbstractPreferences$NodeAddedEvent
-java.util.prefs.AbstractPreferences$NodeRemovedEvent
-java.util.prefs.BackingStoreException
-java.util.prefs.InvalidPreferencesFormatException
-java.util.prefs.NodeChangeEvent
-java.util.prefs.PreferenceChangeEvent
-java.util.regex.Pattern
-java.util.regex.PatternSyntaxException
-java.util.regex.UnicodeProp$1
-java.util.regex.UnicodeProp$10
-java.util.regex.UnicodeProp$11
-java.util.regex.UnicodeProp$12
-java.util.regex.UnicodeProp$13
-java.util.regex.UnicodeProp$14
-java.util.regex.UnicodeProp$15
-java.util.regex.UnicodeProp$16
-java.util.regex.UnicodeProp$17
-java.util.regex.UnicodeProp$18
-java.util.regex.UnicodeProp$2
-java.util.regex.UnicodeProp$3
-java.util.regex.UnicodeProp$4
-java.util.regex.UnicodeProp$5
-java.util.regex.UnicodeProp$6
-java.util.regex.UnicodeProp$7
-java.util.regex.UnicodeProp$8
-java.util.regex.UnicodeProp$9
-java.util.zip.DataFormatException
-java.util.zip.ZipError
-java.util.zip.ZipException
 org.apache.ignite.IgniteAuthenticationException
 org.apache.ignite.IgniteCheckedException
 org.apache.ignite.IgniteDeploymentException

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ebb2705/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java
----------------------------------------------------------------------
diff --git 
a/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java
 
b/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java
deleted file mode 100644
index 31c1b0c..0000000
--- 
a/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.ignite.tools.marshaller.optimized;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-import java.util.*;
-import java.util.jar.*;
-
-/**
- * Generates a file with preregistered class names.
- * <p>
- * This class should have the following modules with corresponding lib 
dependencies in its classpath:
- * <ul>
- * <li>src</li>
- * <li>scalar</li>
- * <li>visor</li>
- * </ul>
- * It {@code should NOT} have any {@code 'test'} modules in the class path.
- */
-public class OptimizedClassNamesGenerator {
-    /** Defines Ignite installation folder. */
-    public static final String IGNITE_HOME_SYS_PROP = "IGNITE_HOME";
-
-    /** Defines Ignite installation folder.  */
-    public static final String IGNITE_HOME_ENV_VAR = "IGNITE_HOME";
-
-    /** File name to generate. */
-    public static final String FILE_NAME = "optimized-classnames.properties";
-
-    /** Previous version file name. */
-    public static final String PREV_FILE_NAME = 
"optimized-classnames.previous.properties";
-
-    /** */
-    private Collection<String> clsNames;
-
-    /** Collection of classes without serialVersionUID. */
-    private Collection<Class> clsWithoutSerialVersionUID;
-
-    /** */
-    private int urlPrefixLen;
-
-    /**
-     * @param file Output file.
-     * @param prev Previous version file.
-     * @throws URISyntaxException If this URL is not formatted strictly 
according to
-     * to RFC2396 and cannot be converted to a URI.
-     * @throws IOException If an I/O error occurs while writing stream header.
-     */
-    public void writeClassNames(File file, File prev) throws IOException, 
URISyntaxException {
-        assert file != null;
-        assert prev != null;
-
-        clsNames = new HashSet<>();
-
-        clsWithoutSerialVersionUID = new ArrayList<>();
-
-        URL[] urls = 
((URLClassLoader)OptimizedClassNamesGenerator.class.getClassLoader()).getURLs();
-
-        System.out.println("Printing class loader URLs: ");
-
-        for (URL url : urls)
-            System.out.println("  " + url);
-
-        for (URL url : urls) {
-            File f = new File(url.toURI());
-
-            if (!f.exists())
-                System.err.println("Unrecognized URL: " + url);
-            else {
-                urlPrefixLen = f.getPath().length() + 1;
-
-                processFile(f);
-            }
-        }
-
-        if (clsWithoutSerialVersionUID.size() > 0) {
-            StringBuilder sb = new StringBuilder("No serialVersionUID field in 
class(es): ");
-
-            for (Class cls : clsWithoutSerialVersionUID)
-                sb.append(cls.getName()).append(", ");
-
-            sb.setLength(sb.length() - ", ".length());
-
-            throw new RuntimeException(sb.toString());
-        }
-
-        Collection<String> prevCls = previousVersionClasses(prev);
-
-        try (BufferedWriter writer = new BufferedWriter(new 
OutputStreamWriter(new FileOutputStream(file), "UTF-8"))) {
-            for (String clsName : prevCls) {
-                writer.write(clsName);
-                writer.newLine();
-
-                clsNames.remove(clsName);
-            }
-
-            List<String> sorted = new ArrayList<>(clsNames);
-
-            Collections.sort(sorted);
-
-            for (String clsName : sorted) {
-                writer.write(clsName);
-                writer.newLine();
-            }
-        }
-    }
-
-    /**
-     * @param file Previous version file.
-     * @return Class names.
-     * @throws IOException In case of error.
-     */
-    private Collection<String> previousVersionClasses(File file) throws 
IOException {
-        assert file != null && file.exists();
-
-        BufferedReader rdr = new BufferedReader(new FileReader(file));
-
-        Collection<String> names = new ArrayList<>(30000);
-
-        String name;
-
-        while ((name = rdr.readLine()) != null)
-            names.add(name);
-
-        return names;
-    }
-
-    /**
-     * @param file File to process.
-     * @throws IOException If an I/O error occurs while writing stream header.
-     */
-    private void processFile(File file) throws IOException {
-        if (file.isDirectory())
-            for (File childFile : file.listFiles())
-                processFile(childFile);
-        else if (file.getName().toLowerCase().endsWith(".jar"))
-            processJar(file);
-        else if (file.getName().toLowerCase().endsWith(".class"))
-            processClass(trimClassExtension(
-                
file.getPath().substring(urlPrefixLen).replace(File.separatorChar, '.')
-            ));
-    }
-
-    /**
-     * @param jarFile File to process.
-     * @throws IOException If an I/O error occurs while writing stream header.
-     */
-    private void processJar(File jarFile) throws IOException {
-        JarInputStream jin = new JarInputStream(new BufferedInputStream(new 
FileInputStream(jarFile)));
-
-        try {
-            JarEntry jarEntry;
-
-            while ((jarEntry = jin.getNextJarEntry()) != null) {
-                if (jarEntry.isDirectory() || 
!jarEntry.getName().toLowerCase().endsWith(".class"))
-                    continue;
-
-                
processClass(trimClassExtension(jarEntry.getName().replace('/', '.')));
-            }
-        }
-        finally {
-            close(jin);
-        }
-    }
-
-    /**
-     * @param name Class name to process.
-     */
-    @SuppressWarnings( {"ErrorNotRethrown"})
-    private void processClass(String name) {
-        try {
-            Class cls = Class.forName(name, false, 
OptimizedClassNamesGenerator.class.getClassLoader());
-
-            if (isAccepted(cls)) {
-                checkSerialVersionUid(cls);
-
-                clsNames.add(name);
-            }
-        }
-        catch (SecurityException | LinkageError ignored) {
-            // No-op.
-        }
-        catch (ClassNotFoundException e) {
-            throw new AssertionError(e);
-        }
-    }
-
-    /**
-     * Checks serialVersionUID field in provided class.
-     *
-     * @param cls Class.
-     */
-    private void checkSerialVersionUid(Class cls) {
-        // Check only Ignite classes.
-        if (cls.isEnum() || cls.getSimpleName().isEmpty() || 
(!cls.getName().startsWith("org.gridgain.grid") &&
-            !cls.getName().startsWith("org.gridgain.client") && 
!cls.getName().startsWith("org.apache.ignite")))
-            return;
-
-        try {
-            Field field = cls.getDeclaredField("serialVersionUID");
-
-            if (!field.getType().equals(long.class))
-                throw new RuntimeException("serialVersionUID field is not long 
in class: " + cls.getName());
-
-            int mod = field.getModifiers();
-
-            if (!Modifier.isStatic(mod))
-                throw new RuntimeException("serialVersionUID field is not 
static in class: " + cls.getName());
-
-            if (!Modifier.isFinal(mod))
-                throw new RuntimeException("serialVersionUID field is not 
final in class: " + cls.getName());
-        }
-        catch (NoSuchFieldException ignored) {
-            clsWithoutSerialVersionUID.add(cls);
-        }
-    }
-
-    /**
-     * @param cls A class to examine.
-     * @return Whether to add the class.
-     */
-    private static boolean isAccepted(Class cls) {
-        return !(cls.isInterface() || (cls.getModifiers() & Modifier.ABSTRACT) 
!= 0 || isTest(cls)) &&
-            (cls.isEnum() || Serializable.class.isAssignableFrom(cls));
-    }
-
-    /**
-     * Checks if class is a test case.
-     *
-     * @param cls Class.
-     * @return {@code True} if test case.
-     */
-    private static boolean isTest(Class cls) {
-        for (Class c = cls; c != Object.class; c = c.getSuperclass())
-            if (c.getName().startsWith("junit.framework") || // JUnit3
-                c.getName().startsWith("org.junit") || // JUnit4
-                c.getName().startsWith("org.testing")) // TestNG
-                return true;
-
-        return false;
-    }
-
-    /**
-     * @param path Path.
-     * @return Trimmed path.
-     */
-    private static String trimClassExtension(String path) {
-        return path.substring(0, path.length() - 6);
-    }
-
-    /**
-     * @param closeable An object to close.
-     */
-    private static void close(Closeable closeable) {
-        try {
-            closeable.close();
-        }
-        catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * @param args Command line arguments, none expected.
-     * @throws Exception If generation failed.
-     */
-    public static void main(String[] args) throws Exception {
-        File dir;
-
-        if (args.length > 0 && args[0] != null && !args[0].isEmpty())
-            dir = new File(args[0], "/org/apache/ignite/marshaller/optimized");
-        else {
-            String home = home();
-
-            if (home == null)
-                throw new Exception("Failed to find Ignite home.");
-
-            dir = new File(home, 
"modules/core/src/main/java/org/apache/ignite/marshaller/optimized");
-        }
-
-        if (!dir.exists())
-            throw new Exception("Optimized marshaller path does not exist: " + 
dir);
-
-        if (!dir.isDirectory())
-            throw new Exception("Destination path is not a directory: " + dir);
-
-        new OptimizedClassNamesGenerator().writeClassNames(new File(dir, 
FILE_NAME), new File(dir, PREV_FILE_NAME));
-    }
-
-    /**
-     * Retrieves {@code IGNITE_HOME} property. The property is retrieved from 
system
-     * properties or from environment in that order.
-     *
-     * @return {@code IGNITE_HOME} property.
-     */
-    private static String home() {
-        String home = System.getProperty(IGNITE_HOME_SYS_PROP);
-
-        if (home == null || home.isEmpty()) {
-            home = System.getenv(IGNITE_HOME_ENV_VAR);
-
-            if (home == null || home.isEmpty())
-                return null;
-        }
-
-        return home;
-    }
-}

Reply via email to