stx_libjava.st
author Claus Gittinger <cg@exept.de>
Fri, 16 Mar 2012 09:46:54 +0100
changeset 2343 f4ed6ca66521
parent 2338 7e9cc947ded8
child 2344 5eb32c8721b0
permissions -rw-r--r--
*** empty log message ***

"
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
			    SWING Research Group, Czech Technical University in Prague

 Parts of the code written by Claus Gittinger are under following
 license:

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.

 Parts of the code written at SWING Reasearch Group [1] are MIT licensed:

 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
 files (the 'Software'), to deal in the Software without
 restriction, including without limitation the rights to use,
 copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the
 Software is furnished to do so, subject to the following
 conditions:

 The above copyright notice and this permission notice shall be
 included in all copies or substantial portions of the Software.

 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.

 [1] Code written at SWING Research Group contain a signature
     of one of the above copright owners.
"
"{ Package: 'stx:libjava' }"

LibraryDefinition subclass:#stx_libjava
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects & Packages *'
!

!stx_libjava class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
			    SWING Research Group, Czech Technical University in Prague

 Parts of the code written by Claus Gittinger are under following
 license:

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.

 Parts of the code written at SWING Reasearch Group [1] are MIT licensed:

 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
 files (the 'Software'), to deal in the Software without
 restriction, including without limitation the rights to use,
 copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the
 Software is furnished to do so, subject to the following
 conditions:

 The above copyright notice and this permission notice shall be
 included in all copies or substantial portions of the Software.

 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.

 [1] Code written at SWING Research Group contain a signature
     of one of the above copright owners.

"
! !

!stx_libjava class methodsFor:'accessing'!

svnRepositoryUrl

    ^'https://jv@swing.fit.cvut.cz/svn/stx/libjava/branches/jk_new_structure/src'

!

svnRepositoryUrlBase

    | url |
    url := stx_libjava svnRepositoryUrl.
    url ifNil:[url := 'https://swing.fit.cvut.cz/svn/stx/libjava/trunk/src'].
    (url endsWith: 'src') ifTrue:[url := url copyTo: url size - 4].
    ^url

    "Created: / 08-04-2011 / 16:57:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!stx_libjava class methodsFor:'accessing - tests'!

excludedFromTestSuite
    "List of testcases and/or tests excluded from testsuite.
     Entries maybe ClassName or #(ClassName testName)
    "
    ^ #(
	LookupTests
    )

    "Created: / 03-06-2011 / 17:04:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

testSuite

    | suite javaTestCases stTests |
    suite := super testSuite.
	stTests := suite tests.
    suite := TestSuite new.
    suite name: self package.
    JavaTestsLoader load.

    javaTestCases := OrderedCollection new.

    Java allClassesDo:
	[:jclass|
	(jclass ~~ (Java at:'stx.libjava.tests.JUnit3Tests')
	    and:[jclass ~~ (Java at:'stx.libjava.tests.JUnit4Tests')
		and:[jclass isTestCaseLike]])
		    ifTrue:
			[ | tc |
			tc := jclass asTestCase.
						(tc askFor:#isTestlet) ifTrue:[
							tc shouldFork: true.
						].
			tc isAbstract ifFalse:[javaTestCases add:tc ]]].

    javaTestCases do:
		[:each |
		suite addTests:each buildSuite tests ].


    suite tests addAll: stTests.

    suite tests withIndexDo:
	[:t :i|
	Stdout nextPutAll: i printString; space; nextPutAll: t printString; cr].

    ^suite

    "
	stx_libjava testSuite

    "

    "Created: / 07-05-2011 / 19:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 07-05-2011 / 22:26:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 04-06-2011 / 17:23:05 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
!

testSuiteWithoutJavaTests

    ^super testSuite.

    "Created: / 21-06-2011 / 17:33:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!stx_libjava class methodsFor:'description'!

excludedFromPreRequisites
    "list all packages which should be ignored in the automatic
     preRequisites scan. See #preRequisites for more."

    ^ #(
    )
!

preRequisites
    "list all required packages.
     This list can be maintained manually or (better) generated and
     updated by scanning the superclass hierarchies and looking for
     global variable accesses. (the browser has a menu function for that)
     Howevery, often too much is found, and you may want to explicitely
     exclude individual packages in the #excludedFromPrerequisites method."

    ^ #(
	"/ #'squeak:petitparser'    "PPParser - superclass of JavaParser::BlockParser "
	#'stx:goodies/sunit'    "TestSuite - referenced by stx_libjava class>>testSuite "
	#'stx:libbasic'    "Object - superclass of JavaMethodWithHandler "
	#'stx:libbasic2'    "ZipArchive - referenced by Java class>>classSource:package:in: "
	#'stx:libbasic3'    "MessageTracer - referenced by JavaMethod>>setBreakPoint "
	#'stx:libcomp'    "ObjectFileLoader - referenced by JavaVM class>>_Runtime_loadFileInternalI: "
	#'stx:libhtml'    "URL - referenced by JavaEmbeddedFrameView>>setupAppletFrameIn:initializeJava: "
	#'stx:libtool'    "DebugView - referenced by Java class>>flushClasses "
	#'stx:libview'    "DisplaySurface - superclass of JavaView "
	#'stx:libview2'    "Plug - referenced by JavaSourceCodeCache>>findMethodLine:inMethods: "
	#'stx:libwidg'    "Label - referenced by JavaVM class>>processEvent: "
	#'stx:libwidg2'    "MenuPanel - referenced by JavaVM class>>processEvent: "
    )
! !

!stx_libjava class methodsFor:'description - contents'!

classNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
	"<className> or (<className> attributes...) in load order"
	(AbstractJavaTestCase autoload)
	JavaByte
	(JUnitTestCaseProxy autoload)
	Java
	JavaAnnotation
	JavaAnnotationContainer
	JavaAnnotationDefault
	JavaAnnotationDictionary
	JavaAnnotationValue
	(JavaAntProjectResource autoload)
	JavaArray
	JavaBehavior
	(JavaByteCodeDisassemblerTests autoload)
	(JavaByteCodeInterpreterTests autoload)
	JavaByteCodeProcessor
	(JavaByteCodeProcessorTests autoload)
	JavaClassReader
	(JavaClassReader2Tests autoload)
	(JavaClassReaderTests autoload)
	(JavaClassRefTests autoload)
	JavaConstantPool
	JavaContext
	JavaDecompiler
	JavaDescriptor
	JavaError
	JavaExceptionTableEntry
	(JavaExceptionThrowerMock autoload)
	JavaField
	(JavaFieldRefTests autoload)
	JavaInflater
	(JavaInitializedResource autoload)
	(JavaInterfaceMethodRefTests autoload)
	(JavaJUnitTests autoload)
	JavaJavadocNode
	JavaLanguage
	JavaLibraries
	(JavaLibrariesResource autoload)
	JavaLocalVariableTable
	JavaLocalVariableTableEntry
	JavaLookup
	(JavaLookupTestsResource autoload)
	JavaMethod
	(JavaMethodRefTests autoload)
	JavaNameAndType2
	JavaNativeMemory
	JavaNode
	JavaObject
	JavaObjectDictionary
	JavaPackage
	JavaParseResult
	(JavaParserNavigationTests autoload)
	(JavaParserTestCase autoload)
	(JavaParserTests autoload)
	JavaPopUpView
	JavaProcess
	JavaRef2
	(JavaRefMock autoload)
	(JavaRefTests autoload)
	JavaRelease
	JavaResolver
	(JavaRuntimeConstantPoolTests autoload)
	JavaSlotIndexCache
	JavaSourceCodeCache
	JavaSourceFileWriter
	JavaStartup
	(JavaTestCaseProxy autoload)
	JavaTestsLoader
	(JavaTestsResource autoload)
	JavaTopView
	(JavaUTF8Tests autoload)
	JavaUnresolvedConstant
	JavaVM
	JavaView
	(LookupTests autoload)
	PPJavaNode
	JavaShort
	SmalltalkAppletContext
	SmalltalkAppletStub
	(TestletTestCaseProxy autoload)
	#'stx_libjava'
	JavaAnnotationArrayValue
	JavaAnnotationClassValue
	JavaAnnotationEnumValue
	JavaAnnotationNestedAnnotationValue
	JavaAnnotationPrimitiveValue
	JavaByteCodeDisassembler
	JavaByteCodeEnumerator
	JavaByteCodeInterpreter
	JavaClass
	JavaClassAnnotationContainer
	JavaClassContentRef2
	JavaClassRef2
	JavaEmbeddedFrameView
	JavaFieldAnnotationContainer
	JavaFieldDescriptor
	JavaFormalParameterNode
	JavaInvalidRefError
	JavaMethodAnnotationContainer
	JavaMethodDeclarationNode
	JavaMethodDeclaratorNode
	JavaMethodDescriptor
	JavaMethodNode
	JavaMethodWithException
	JavaParser
	JavaStringRef2
	JavaTypeNode
	JavaUnhandledExceptionError
	JavaUnresolvedClassConstant
	JavaUnresolvedStringConstant
	JavadocDeclarationNode
	JavaArrayTypeNode
	JavaBooleanTypeNode
	JavaBothOldAndNewClassRef
	JavaByteCodeSteppableInterpreter
	JavaCharTypeNode
	JavaClassOrInterfaceTypeNode
	JavaDoubleTypeNode
	JavaFieldRef2
	JavaFloatTypeNode
	JavaIntTypeNode
	JavaLongTypeNode
	JavaMethodRef2
	JavaMethodWithHandler
	JavaVoidTypeNode
	JavaInterfaceMethodRef2
	JavaNativeMethod
	JavaEvaluator
    )

    "Modified: / 24-11-2011 / 13:01:12 / cg"
!

extensionMethodNames
    "lists the extension methods which are to be included in the project.
     Entries are 2-element array literals, consisting of class-name and selector."

    ^ #(
	BooleanArray isInterface
	Object isJavaArray
	Object isJavaNameAndType
	Object isJavaPackage
	Object isJavaRef
	String asArrayOfSubstringsSeparatedBy:
	UserPreferences javaTestsDirectory
	UserPreferences javaTestsDirectory:
	ZipArchive nextBytes:of:startingAt:into:startingAt:
	'Boolean class' isJavaPrimitiveType
	'Boolean class' javaArrayClass
	'Boolean class' javaName
	'BooleanArray class' isInterface
	'BooleanArray class' isJavaArrayClass
	'BooleanArray class' isJavaReferenceType
	'BooleanArray class' javaComponentClass
	'BooleanArray class' javaName
	'ByteArray class' isInterface
	'ByteArray class' isJavaArrayClass
	'ByteArray class' isJavaReferenceType
	'ByteArray class' javaArrayClass
	'ByteArray class' javaComponentClass
	'ByteArray class' javaName
	'Character class' isJavaPrimitiveType
	'Character class' javaArrayClass
	'Character class' javaName
	'CharacterArray class' decodeFromJavaUTF8:
	'CharacterArray class' fromJavaUTF8Bytes:
	'CharacterArray class' isJavaArrayClass
	'CharacterArray class' javaArrayClass
	'CharacterArray class' javaComponentClass
	'DoubleArray class' isInterface
	'DoubleArray class' isJavaArrayClass
	'DoubleArray class' isJavaReferenceType
	'DoubleArray class' javaComponentClass
	'DoubleArray class' javaName
	'Float class' isJavaPrimitiveType
	'Float class' javaArrayClass
	'Float class' javaName
	'FloatArray class' isInterface
	'FloatArray class' isJavaArrayClass
	'FloatArray class' isJavaReferenceType
	'FloatArray class' javaComponentClass
	'FloatArray class' javaName
	'GenericToolbarIconLibrary class' javaClassBrowserIcon
	'Integer class' isJavaPrimitiveType
	'Integer class' javaArrayClass
	'Integer class' javaName
	'LargeInteger class' isJavaPrimitiveType
	'LargeInteger class' javaArrayClass
	'LargeInteger class' javaName
	'Object class' isJavaArrayClass
	'Object class' isJavaClassType
	'Object class' isJavaPrimitiveType
	'Object class' isJavaReferenceType
	'Object class' isJavaType
	'ShortFloat class' isJavaPrimitiveType
	'ShortFloat class' javaArrayClass
	'ShortFloat class' javaName
	'SignedIntegerArray class' isInterface
	'SignedIntegerArray class' isJavaArrayClass
	'SignedIntegerArray class' javaArrayClass
	'SignedIntegerArray class' javaComponentClass
	'SignedIntegerArray class' javaName
	'SignedLongIntegerArray class' isInterface
	'SignedLongIntegerArray class' isJavaArrayClass
	'SignedLongIntegerArray class' isJavaReferenceType
	'SignedLongIntegerArray class' javaComponentClass
	'SignedLongIntegerArray class' javaName
	'UndefinedObject class' isJavaPrimitiveType
	'UndefinedObject class' javaName
	'WordArray class' isInterface
	'WordArray class' isJavaArrayClass
	'WordArray class' isJavaReferenceType
	'WordArray class' javaArrayClass
	'WordArray class' javaComponentClass
	'WordArray class' javaName
    )
! !

!stx_libjava class methodsFor:'description - project information'!

applicationIconFileName
    "Return the name (without suffix) of an icon-file (the app's icon); will be included in the rc-resource file"

    ^ nil
    "/ ^ self applicationName
!

companyName
    "Return a companyname which will appear in <lib>.rc"

    ^ 'eXept Software AG'
!

description
    "Return a description string which will appear in vc.def / bc.def"

    ^ 'Smalltalk/X Class library'
!

legalCopyright
    "Return a copyright string which will appear in <lib>.rc"

    ^ 'Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\nCopyright Jan Vrany, Jan Kurs and Marcel Hlopko\b          SWING Research Group, Czech Technical University In Prague'

    "Modified: / 26-07-2011 / 17:13:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

productName
    "Return a product name which will appear in <lib>.rc"

    ^ 'Smalltalk/X'
! !

!stx_libjava class methodsFor:'description - svn'!

svnRepositoryUrlString
    "Return a SVN repository URL of myself.
     (Generated since 2011-04-08)
    "

    ^ '$URL: https://swing.fit.cvut.cz/svn/stx/libjava/branches/jk_new_structure/src/stx_libjava.st $'
!

svnRevisionNr
    "Return a SVN revision number of myself.
     This number is updated after a commit"

    ^ "$SVN-Revision:"'1260'"$"
! !

!stx_libjava class methodsFor:'file generation'!

basicFileNamesToGenerate
    "answer a dictionary (filename -> generator method) with all the files, that have to be generated for this
     package"

    |dict|

    dict := super basicFileNamesToGenerate.

    dict
	at:'builder/package.deps.rake' put: #'generate_package_dot_deps_dot_rake'.

    ^ dict.

    "Created: / 11-03-2011 / 09:32:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!stx_libjava class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libjava/stx_libjava.st,v 1.4 2012-03-16 08:46:54 cg Exp $'
!

version_CVS
    ^ '$Header: /cvs/stx/stx/libjava/stx_libjava.st,v 1.4 2012-03-16 08:46:54 cg Exp $'
!

version_SVN
    ^ '§Id: stx_libjava.st,v 1.1 2011/08/18 19:06:53 vrany Exp §'
! !