common/SCMAbstractFileoutLikeTask.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 21 Jan 2015 07:47:44 +0100
changeset 516 dad7345b8c70
parent 515 d460ef249979
child 524 7807a83a45f5
permissions -rw-r--r--
Fix for issue #42: Create initial .hgignore if it does not exist The .hgignore is created only in repository root (even if the repository root is virtual package) and only if it does not exist. Closes #42.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     1
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     2
stx:libscm - a new source code management library for Smalltalk/X
509
f92210d4585b Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 454
diff changeset
     3
Copyright (C) 2012-2015 Jan Vrany
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     4
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     5
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
     7
License as published by the Free Software Foundation; either
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
     8
version 2.1 of the License.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     9
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    10
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    13
Lesser General Public License for more details.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    14
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    16
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    18
"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    19
"{ Package: 'stx:libscm/common' }"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    20
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    21
"{ NameSpace: Smalltalk }"
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    22
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    23
SCMAbstractTask subclass:#SCMAbstractFileoutLikeTask
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    24
	instanceVariableNames:'suppressClasses suppressExtensions suppresBuildSupportFiles
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    25
		packageClassesChanged packageExtensionsChanged extensionMethods
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    26
		fileout2codeMap'
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    27
	classVariableNames:''
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    28
	poolDictionaries:''
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
	category:'SCM-Common-StX-Tasks'
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    30
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    31
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    32
!SCMAbstractFileoutLikeTask class methodsFor:'documentation'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    33
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    34
copyright
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    35
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    36
stx:libscm - a new source code management library for Smalltalk/X
509
f92210d4585b Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 454
diff changeset
    37
Copyright (C) 2012-2015 Jan Vrany
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    38
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    39
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    40
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    41
License as published by the Free Software Foundation; either
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
    42
version 2.1 of the License.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    43
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    44
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    45
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    46
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    47
Lesser General Public License for more details.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    48
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    49
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    50
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 302
diff changeset
    51
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    52
"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    53
! !
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    54
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    55
!SCMAbstractFileoutLikeTask methodsFor:'accessing'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    56
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    57
extensionMethods
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    58
    ^ extensionMethods
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    59
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    60
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    61
extensionMethods:aCollection"of Methods"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    62
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    63
    extensionMethods := aCollection.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    64
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    65
    "Modified: / 14-05-2009 / 13:38:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    66
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    67
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    68
filesToGenerate
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
    69
    self error: 'Should not be sent'.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    70
    ^ self packageDefinition fileNamesToGenerate keys
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    71
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    72
    "
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
    73
	SVN::CommitTask new
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
    74
	    package: #stx:libsvn;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
    75
	    buildSupportFiles"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    76
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    77
    "Created: / 27-11-2009 / 11:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
    78
    "Modified: / 22-02-2014 / 22:31:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
    79
!
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
    80
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
    81
filesToGenerateFor: package
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    82
    | files definition |
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    83
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
    84
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
    85
    package isVirtual ifTrue:[ 
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
    86
        ^ OrderedCollection new 
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
    87
    ].
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
    88
    (self isSelectiveFileoutTask and:[packageClassesChanged not and:[(classes includes: package definition) not]]) ifTrue:[
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
    89
        ^ OrderedCollection new
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
    90
    ].  
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    91
    files := OrderedCollection new.
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    92
    definition := package definition.
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    93
    package definition fileNamesToGenerate keysAndValuesDo:[:file :selector |
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    94
        | annotation |
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    95
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    96
        annotation := (definition class lookupMethodFor: selector) annotationAt: #file:overwrite:.
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    97
        (annotation isNil or:[ (annotation argumentAt: 2) or:[ (package temporaryWorkingCopyRoot / file) exists not] ]) ifTrue:[ 
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    98
            files add: file
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    99
        ].
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   100
    ].
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   101
    ^ files
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   102
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   103
    "
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   104
        SVN::CommitTask new
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   105
            package: #stx:libsvn;
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   106
            buildSupportFiles"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   107
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   108
    "Created: / 22-02-2014 / 22:31:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   109
    "Modified: / 21-01-2015 / 07:44:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   110
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   111
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   112
packageDefinition
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   113
    self error: 'Should not be sent'.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   114
    ^self package definition
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   115
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   116
    "Created: / 27-11-2009 / 11:27:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   117
    "Modified: / 21-02-2014 / 22:53:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   118
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   119
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   120
suppresBuildSupportFiles
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   121
    ^ suppresBuildSupportFiles
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   122
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   123
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   124
suppresBuildSupportFiles:something
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   125
    suppresBuildSupportFiles := something.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   126
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   127
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   128
suppressClasses
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   129
    ^ suppressClasses
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   130
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   131
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   132
suppressClasses:aBoolean
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   133
    suppressClasses := aBoolean.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   134
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   135
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   136
suppressExtensions
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   137
    ^ suppressExtensions
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   138
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   139
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   140
suppressExtensions:aBoolean
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   141
    suppressExtensions := aBoolean.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   142
! !
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   143
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   144
!SCMAbstractFileoutLikeTask methodsFor:'executing - private'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   145
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   146
doAddNewContainers
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   147
    packages do:[:each | each isVirtual ifFalse: [ self doAddNewContainersFor: each ] ]
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   148
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   149
    "Created: / 11-04-2008 / 10:58:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   150
    "Modified: / 19-08-2009 / 14:00:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   151
    "Modified: / 27-02-2014 / 22:55:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   152
!
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   153
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   154
doAddNewContainersFor: package
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   155
    | wcroot containers |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   156
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   157
    ActivityNotification notify:'Adding new containers'.
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   158
    containers :=
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   159
	self isSelectiveFileoutTask
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   160
	    ifTrue:[#()]
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   161
	    ifFalse:[self containersToFileOutFor: package].
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   162
    wcroot := package temporaryWorkingCopyRoot.
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   163
    containers do:[:nm|
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   164
	| entry |
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   165
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   166
	entry := wcroot / nm.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   167
	entry track.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   168
    ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   169
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   170
    "Created: / 22-02-2014 / 22:49:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   171
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   172
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   173
doCompileCopyrightMethods
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   174
    packages do:[:each | each isVirtual ifFalse: [ self doCompileCopyrightMethodsFor: each ] ]
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   175
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   176
    "Modified: / 16-08-2009 / 12:59:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   177
    "Created: / 08-04-2010 / 14:31:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   178
    "Modified: / 27-02-2014 / 22:55:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   179
!
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   180
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   181
doCompileCopyrightMethodsFor: package
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   182
    | klasses source |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   183
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   184
    (package definition class includesSelector: #copyright) ifFalse:[^self].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   185
    ActivityNotification notify:'Compiling #copyright methods...'.
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   186
    klasses := (self classesToFileOutFor: package) asArray.
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   187
    source := (package definition class compiledMethodAt: #copyright) source.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   188
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   189
    klasses
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   190
	withIndexDo:[:cls :index |
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   191
	    |metaCls|
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   192
	    metaCls := cls theMetaclass.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   193
	    (((metaCls includesSelector:#copyright) not) and:[metaCls programmingLanguage isSmalltalk])
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   194
		ifTrue:[
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   195
		    metaCls compile:source classified:'documentation'.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   196
		    (metaCls compiledMethodAt:#copyright)
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   197
			setPackage:package name asSymbol
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   198
		    ].
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   199
	    ProgressNotification newException
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   200
		messageText: ('Compiling %1 (%2)' bindWith:#copyright
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   201
						      with:cls nameWithoutPrefix);
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   202
		parameter: (100 / klasses size) * index;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   203
		raiseRequest.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   204
	]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   205
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   206
    "Created: / 21-02-2014 / 22:59:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   207
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   208
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   209
doCompileVersionMethods
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   210
    packages do:[:each |
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   211
	each isVirtual ifFalse: [
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   212
	    | klasses |
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   213
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   214
	    klasses := self classesToFileOutFor: each.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   215
	    self doCompileVersionMethodsFor: each in: klasses asArray.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   216
	]
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   217
    ].
353
456532e0478c Added more support for HG mirrors of CVS repos.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   218
456532e0478c Added more support for HG mirrors of CVS repos.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   219
    "Created: / 09-10-2013 / 11:57:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   220
    "Modified: / 27-02-2014 / 22:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
353
456532e0478c Added more support for HG mirrors of CVS repos.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   221
!
456532e0478c Added more support for HG mirrors of CVS repos.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   222
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   223
doCompileVersionMethodsFor: package in: klasses
353
456532e0478c Added more support for HG mirrors of CVS repos.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   224
    | versionMethodName|
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   225
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   226
    versionMethodName := package manager nameOfVersionMethodInClasses.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   227
    ActivityNotification notify:'Compiling #version methods...'.
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   228
    klasses
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   229
        withIndexDo:[:cls :index |
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   230
            |metaCls|
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   231
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   232
            cls isJavaClass ifFalse:[
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   233
                metaCls := cls theMetaclass.
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   234
                ((metaCls includesSelector:versionMethodName) not
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   235
                    "JV@2012-11-14: libsvn did this check, however, it is not valid for
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   236
                     SCMs that does not expand keywords. I disable it, but kept as comment
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   237
                     as I do not remember why it was good for..."
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   238
                    "or:[ ((cls perform:versionMethodName asSymbol) startsWith:'$Id') not ]")
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   239
                        ifTrue:[
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   240
                            metaCls compile:(metaCls
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   241
                                        versionMethodTemplateForSourceCodeManager:package manager)
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   242
                                classified:'documentation'.
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   243
                            (metaCls compiledMethodAt:versionMethodName)
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   244
                                setPackage:package name asSymbol
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   245
                        ].
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   246
                package manager utilities ensureCorrectVersionMethodsInClass: cls usingManager: package manager.
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   247
            ].
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   248
            ^ ProgressNotification newException
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   249
                messageText: ('Compiling %1 (%2)' bindWith:versionMethodName
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   250
                                                      with:cls nameWithoutPrefix);
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   251
                parameter: (100 / klasses size) * index;
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   252
                raiseRequest
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   253
        ].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   254
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   255
    (self extensionMethodsToFileOutFor: package) notEmpty ifTrue:[
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   256
        | def |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   257
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   258
        "TODO: Not programming language aware..."
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   259
        ((def := package definition) class includesSelector: package manager nameOfVersionMethodForExtensions) ifFalse:[
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   260
            def class
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   261
                compile:
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   262
                    (package manager versionMethodTemplateForSmalltalkFor:package manager nameOfVersionMethodForExtensions)
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   263
                classified: #documentation.
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   264
            (def class compiledMethodAt:package manager nameOfVersionMethodForExtensions)
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   265
                setPackage:package name asSymbol
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   266
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   267
        ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   268
    ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   269
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   270
    "Created: / 21-02-2014 / 23:01:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   271
    "Modified: / 31-07-2014 / 09:04:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   272
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   273
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   274
doFileOut
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   275
    "Fileouts everything to the working copy"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   276
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   277
    self
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   278
	doUpdateBuildSupportFiles;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   279
	doRenameContainers;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   280
	doFileOutPackageClasses;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   281
	doFileOutPackageExtensions;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   282
	doAddNewContainers;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   283
	doRemoveOldContainers.
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   284
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   285
    "Created: / 10-05-2012 / 17:05:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   286
    "Modified: / 21-11-2012 / 00:43:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   287
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   288
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   289
doFileOutAll
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   290
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   291
    self
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   292
	doUpdateCode;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   293
	doFileOut.
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   294
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   295
    "Created: / 17-08-2009 / 18:28:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   296
    "Modified: / 10-05-2012 / 17:06:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   297
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   298
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   299
doFileOutPackageClasses
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   300
    packages do:[:each | each isVirtual ifFalse: [ self doFileOutPackageClassesFor: each ] ].
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   301
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   302
    "Created: / 11-04-2008 / 10:58:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   303
    "Modified: / 19-08-2009 / 13:44:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   304
    "Modified: / 27-02-2014 / 22:55:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   305
!
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   306
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   307
doFileOutPackageClassesFor: package
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   308
    |klasses|
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   309
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   310
    suppressClasses == true ifTrue:[^self].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   311
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   312
    ActivityNotification notify:'Filing out package classes'.
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   313
    klasses := (self classesToFileOutFor: package) asArray.
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   314
    klasses
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   315
	withIndexDo:[:cls :index |
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   316
	    |clsStream|
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   317
	    ProgressNotification newException
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   318
		messageText: 'Filing out ' , cls nameWithoutPrefix;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   319
		parameter: (100 / klasses size) * index;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   320
		raiseRequest.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   321
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   322
	    (self shouldFileOutClass:cls) ifTrue:[package fileOutClass: cls]
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   323
	].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   324
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   325
    "Created: / 21-02-2014 / 23:09:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   326
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   327
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   328
doFileOutPackageExtensions
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   329
    packages do:[:each | each isVirtual ifFalse: [ self doFileOutPackageExtensionsFor: each ] ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   330
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   331
    "Modified: / 07-04-2008 / 08:37:25 / janfrog"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   332
    "Created: / 11-04-2008 / 10:58:36 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   333
    "Modified: / 14-05-2009 / 13:37:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   334
    "Modified: / 27-02-2014 / 22:55:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   335
!
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   336
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   337
doFileOutPackageExtensionsFor: package
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   338
    | extensions |
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   339
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   340
    suppressExtensions == true ifTrue:[^self].
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   341
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   342
    extensions := self extensionMethodsToFileOutFor: package.
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   343
    extensions notEmpty ifTrue:[
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   344
	package fileOutExtensions: extensions.
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   345
    ]
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   346
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   347
    "Created: / 21-02-2014 / 23:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   348
    "Modified: / 22-02-2014 / 23:04:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   349
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   350
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   351
doInitStateVariables
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   352
    packageClassesChanged := packages contains:[:each| each isVirtual ifFalse: [ each classesHasChanged ] ] .
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   353
    packageExtensionsChanged := packages contains:[:each|  each isVirtual ifFalse: [ each extensionsHasChanged ] ].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   354
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   355
    "Created: / 17-06-2009 / 10:17:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   356
    "Modified: / 13-08-2009 / 10:18:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   357
    "Modified: / 28-02-2014 / 09:52:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   358
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   359
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   360
doRemoveOldContainers
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   361
    packages do:[:each | each isVirtual ifFalse: [ self doRemoveOldContainersFor: each ] ]
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   362
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   363
    "Created: / 11-04-2008 / 11:00:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   364
    "Modified: / 19-08-2009 / 15:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   365
    "Modified: / 27-02-2014 / 22:55:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   366
!
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   367
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   368
doRemoveOldContainersFor: package
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   369
    | wcroot containers containersToKeep containersToDelete |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   370
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   371
    self isSelectiveFileoutTask ifTrue:[
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   372
	^ self
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   373
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   374
    ActivityNotification notify:'Removing old containers'.
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   375
    wcroot := package temporaryWorkingCopyRoot.
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   376
    containers := package containers.
362
a2b08403cfa8 Fix for issue #26: Java extension files are removed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 353
diff changeset
   377
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   378
    containersToKeep := package containersToKeep.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   379
    containersToDelete := containers \ containersToKeep.
362
a2b08403cfa8 Fix for issue #26: Java extension files are removed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 353
diff changeset
   380
    "/ Fix for issue #26: Java extension files are removed.
a2b08403cfa8 Fix for issue #26: Java extension files are removed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 353
diff changeset
   381
    "/ Filter out all Java extension containers which are for classes which
a2b08403cfa8 Fix for issue #26: Java extension files are removed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 353
diff changeset
   382
    "/ are currently not loaded.
a2b08403cfa8 Fix for issue #26: Java extension files are removed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 353
diff changeset
   383
    containersToDelete := containersToDelete reject:[:each |
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   384
	(each startsWith: 'java/extensions/')
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   385
	    and:[
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   386
		| nm |
362
a2b08403cfa8 Fix for issue #26: Java extension files are removed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 353
diff changeset
   387
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   388
		nm := each copyFrom:17 to: (each lastIndexOf: $.) - 1.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   389
		(JavaVM registry classes contains: [:cls | cls binaryName = nm]) not.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   390
	    ].
362
a2b08403cfa8 Fix for issue #26: Java extension files are removed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 353
diff changeset
   391
    ].
a2b08403cfa8 Fix for issue #26: Java extension files are removed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 353
diff changeset
   392
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   393
    containersToDelete do:[:nm|
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   394
	| entry |
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   395
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   396
	entry := wcroot / nm.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   397
	entry remove
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   398
    ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   399
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   400
    "Created: / 21-02-2014 / 23:12:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   401
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   402
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   403
doRenameContainerForClassNamed: new for: package using: renames language: lang
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   404
391
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   405
    | wcroot assoc old circular oldC oldE newC newE  |
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   406
    assoc := renames detectLast:[:each | each key == new ] ifNone:[ ^ self ].
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   407
    old := assoc value.
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   408
    renames remove: assoc.
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   409
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   410
    "/ Call recursively to process sequence of renames but not if
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   411
    "/ its a circular rename...
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   412
    circular := (renames contains:[:each | each value == new ]).
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   413
    circular ifTrue:[ ^ self ].
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   414
    self doRenameContainerForClassNamed: old for: package using: renames language: lang.
391
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   415
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   416
    wcroot := package temporaryWorkingCopyRoot.
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   417
    oldC := package containerNameForClassNamed: old language: lang .
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   418
    newC := package containerNameForClassNamed: new language: lang .
89
874f18be0cbd Fixed renaming of class containers.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 81
diff changeset
   419
    (oldE := wcroot / oldC) exists ifTrue:[
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   420
	packageClassesChanged := true.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   421
	newE := wcroot / newC.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   422
	oldE moveTo: newE.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   423
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   424
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   425
    "Created: / 11-04-2008 / 11:00:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   426
    "Modified: / 19-08-2009 / 15:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   427
    "Created: / 06-08-2011 / 21:33:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
391
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   428
    "Modified: / 05-03-2014 / 00:13:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   429
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   430
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   431
doRenameContainers
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   432
391
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   433
    | renames names |
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   434
    renames := OrderedCollection new.
f05648d15add Fix for issue #18 - circular class renames.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   435
    names := OrderedCollection new.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   436
    ChangeSet current do:
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   437
		[:chg|
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   438
		chg isClassRenameChange ifTrue:[
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   439
		    renames add: chg className -> chg oldName.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   440
		    names add: chg fullClassName.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   441
		]].
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   442
    packages do:[:each |
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   443
	each isVirtual ifFalse: [
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   444
	    (self classesToFileOutFor: each) do:[:cls|
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   445
		(names includes: cls name) ifTrue:[
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   446
		    self doRenameContainerForClassNamed: cls name for: each using: renames language: cls programmingLanguage.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   447
		]
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   448
	    ]
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   449
	]
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   450
    ].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   451
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   452
    "Created: / 11-04-2008 / 11:00:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   453
    "Modified: / 19-08-2009 / 15:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   454
    "Created: / 06-08-2011 / 21:13:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   455
    "Modified: / 27-02-2014 / 22:55:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   456
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   457
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   458
doUpdateBuildSupportFiles
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   459
    packages do:[:each | self doUpdateBuildSupportFilesFor: each ]
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   460
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   461
    "Created: / 20-06-2009 / 16:01:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   462
    "Modified: / 21-06-2009 / 15:18:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   463
    "Modified: / 21-01-2015 / 07:20:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   464
!
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   465
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   466
doUpdateBuildSupportFilesFor: package
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   467
    | actuallyGeneratedFiles |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   468
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   469
    suppresBuildSupportFiles == true ifTrue:[
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   470
        ^self.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   471
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   472
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   473
    actuallyGeneratedFiles := OrderedCollection new.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   474
    ActivityNotification notify:'Updating build files'.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   475
    "First, generate files into a temporary files - so originals
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   476
     are not destroyed when something goes wrong."
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   477
    (self filesToGenerateFor: package) do:[:supportFileName |
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   478
        | supportFile supportFileContents |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   479
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   480
        supportFile := package temporaryWorkingCopyRoot / (supportFileName , '.tmp').
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   481
        (packageClassesChanged or:[ supportFile exists not ]) ifTrue:[
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   482
            ActivityNotification notify:'Updating ' , supportFileName.
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   483
            supportFileContents := self generateFile:supportFileName for: package. 
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   484
            supportFileContents notNil ifTrue:[  
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   485
                supportFile directory exists ifFalse: [supportFile directory makeDirectory].
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   486
                supportFile writingFileDo:[:s|
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   487
                    s nextPutAll:supportFileContents
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   488
                ].
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   489
                actuallyGeneratedFiles add: supportFileName.
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   490
            ]
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   491
        ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   492
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   493
    "Now, copy them over the old files"
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   494
    actuallyGeneratedFiles do:[:supportFileName |
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   495
        | supportFile supportFileTmp |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   496
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   497
        supportFile := package temporaryWorkingCopyRoot / supportFileName.
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   498
        supportFileTmp := package temporaryWorkingCopyRoot / (supportFileName , '.tmp').
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   499
515
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   500
        supportFileTmp moveTo: supportFile.
d460ef249979 Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   501
        supportFile track.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   502
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   503
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   504
    "Created: / 21-02-2014 / 23:16:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   505
    "Modified: / 21-01-2015 / 07:44:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   506
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   507
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   508
doUpdateCode
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   509
    "Updates project definitions and compiles version/copyright methods"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   510
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   511
    self
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   512
	doInitStateVariables;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   513
	doCompileVersionMethods;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   514
	doCompileCopyrightMethods;
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   515
	doUpdateProjectDefinition.
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   516
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   517
    "Created: / 10-05-2012 / 17:04:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   518
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   519
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   520
doUpdateProjectDefinition
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   521
    packages do:[:each | each isVirtual ifFalse: [ self doUpdateProjectDefinitionFor: each ] ]
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   522
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   523
    "Created: / 11-04-2008 / 11:01:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   524
    "Modified: / 13-08-2009 / 09:13:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
387
ebec1ef28839 Added notion if 'virtual' package
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 381
diff changeset
   525
    "Modified: / 27-02-2014 / 22:56:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   526
!
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   527
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   528
doUpdateProjectDefinitionFor: package
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   529
    | prjClass classesSpec classNamesAndAttributesMap |
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   530
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   531
    (packageClassesChanged | packageExtensionsChanged) ifFalse:[
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   532
        ^ self
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   533
    ].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   534
    ActivityNotification notify:'Updating project definition'.
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   535
    prjClass := ProjectDefinition definitionClassForPackage: package name createIfAbsent:true.
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   536
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   537
    "/Update classlist beforehand - to care about order and removals...
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   538
    classNamesAndAttributesMap := Dictionary new.
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   539
    prjClass classNamesAndAttributes do:[:nameOrPair |
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   540
        nameOrPair isArray
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   541
            ifTrue:[classNamesAndAttributesMap at: nameOrPair first put: nameOrPair]
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   542
            ifFalse:[classNamesAndAttributesMap at: nameOrPair put: (Array with: nameOrPair)]
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   543
    ].
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   544
    classesSpec := prjClass searchForClasses reject:[:cls | cls isJavaClass ] thenCollect:[:cls|
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   545
        classNamesAndAttributesMap at: cls name ifAbsent:[Array with: cls name]
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   546
    ].
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   547
    prjClass classNamesAndAttributes:classesSpec usingCompiler:nil.
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   548
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   549
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   550
    "/Now do standard update
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   551
    Class packageQuerySignal answer:prjClass package do:[
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   552
        prjClass theNonMetaclass
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   553
            forEachContentsMethodsCodeToCompileDo:[:code :category |
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   554
                (code startsWith: 'excludedFromPreRequisites')
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   555
                    ifFalse:[prjClass theMetaclass compile:code classified:category]
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   556
            ]
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   557
            "/ignoreOldEntries: false
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   558
            ignoreOldDefinition: false
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 268
diff changeset
   559
    ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   560
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   561
    "Created: / 21-02-2014 / 23:17:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   562
    "Modified: / 30-07-2014 / 20:42:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   563
! !
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   564
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   565
!SCMAbstractFileoutLikeTask methodsFor:'private'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   566
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   567
classesToFileOutFor: package
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   568
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   569
    suppressClasses == true ifTrue:[^#()].
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   570
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   571
    ^ package classesFiltered:
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   572
	    [:class |
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   573
	    class isLoaded and: [ classes isNil or: [ classes includes: class ] ] ]
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   574
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   575
    "Created: / 21-02-2014 / 22:59:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   576
    "Modified: / 22-02-2014 / 22:19:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   577
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   578
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   579
containersToFileOut
426
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   580
    ^ OrderedCollection streamContents: [ :s |
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   581
        packages do:[:each | 
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   582
            each isVirtual ifFalse: [ 
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   583
                | containers |
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   584
                containers := (self containersToFileOutFor: each) collect:[ :container | each repositoryRoot , Filename separator , container ].
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   585
                s nextPutAll: containers.
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   586
            ] 
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   587
        ]             
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   588
    ].
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   589
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   590
    "Created: / 14-05-2009 / 11:35:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
426
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   591
    "Modified: / 01-05-2014 / 10:07:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   592
!
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   593
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   594
containersToFileOutFor: package
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   595
    | containers extensions |
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   596
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   597
    containers := (self classesToFileOutFor: package)
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   598
		collect: [:class | package containerNameForClass: class ].
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   599
    (extensions := (self extensionMethodsToFileOutFor: package)) notEmpty ifTrue:[
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   600
	| languages extensionsNonJava extensionsJava |
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   601
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   602
	extensionsNonJava := extensions reject:[:m | m mclass programmingLanguage isJava].
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   603
	extensionsJava := extensions select:[:m | m mclass programmingLanguage isJava].
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   604
	languages :=  (extensionsNonJava collect:[:each|each programmingLanguage]) asSet.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   605
	languages do: [:lang| containers add: (package containerNameForExtensions: lang)].
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   606
	extensionsJava do:[:m |
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   607
	    | container |
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   608
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   609
	    container := package containerNameForExtensions: m programmingLanguage javaClass: m mclass.
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   610
	    (containers includes: container) ifFalse:[
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   611
		 containers add: container
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   612
	    ].
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   613
	].
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   614
    ].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   615
    ^ containers
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   616
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   617
    "Created: / 22-02-2014 / 22:49:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   618
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   619
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   620
extensionMethodsToFileOut
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   621
   self error: 'Should no longer be sent'.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   622
    ^ self package extensionsFiltered:
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   623
	    [:mth |
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   624
	    extensionMethods isNil or: [ extensionMethods includes: mth ] ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   625
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   626
    "Created: / 14-05-2009 / 11:32:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   627
    "Modified: / 22-02-2014 / 22:19:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   628
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   629
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   630
extensionMethodsToFileOutFor: package
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   631
    ^package extensionsFiltered:
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   632
	    [:mth |
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   633
	    extensionMethods isNil or: [ extensionMethods includes: mth ] ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   634
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   635
    "Created: / 21-02-2014 / 23:03:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   636
    "Modified: / 22-02-2014 / 22:20:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   637
!
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   638
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   639
generateFile: file for: package 
381
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   640
    | def contents savedClassFilenames |
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   641
3dde2b867931 SCMAbstractFileoutLikeTask refactored to support multiple packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 362
diff changeset
   642
    def := package definition.
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   643
    file ~= 'abbrev.stc' ifTrue:[^def generateFile: file].
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   644
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   645
    "Yet another kludge to trick Smalltalk>>fileNameForClass:, sigh"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   646
    savedClassFilenames := Dictionary new.
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   647
    (def searchForClasses reject:[:e|e owningClass notNil or:[ e isJavaClass ] ] ) do:
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   648
        [:cls|
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   649
        savedClassFilenames
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   650
            at: cls
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   651
            put: cls getClassFilename.
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   652
        cls setClassFilename: (package containerNameForClass: cls)].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   653
    contents := def generateFile: file.
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   654
    savedClassFilenames keysAndValuesDo:
454
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   655
        [:cls :classFileName|
d17370e0936e Support for Java classes (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 426
diff changeset
   656
        cls setClassFilename: classFileName].
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   657
    ^contents
81
eeb86ad71bc3 Fixed all references to libsvn classes. Added SCMCompatModeQuery.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   658
516
dad7345b8c70 Fix for issue #42: Create initial .hgignore if it does not exist
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 515
diff changeset
   659
    "Created: / 20-01-2015 / 08:11:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   660
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   661
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   662
shouldFileOutClass: class
389
1e2e6ce45878 Added new warning to commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 387
diff changeset
   663
    ^ packages anySatisfy:
394
1f009c523329 Merged cf4d7072fdf2 and 69f0a4078682
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 391 389
diff changeset
   664
	[:p | p name = class package and:[ p hasChangesInClass: class ] ]
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   665
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   666
    "Created: / 24-06-2009 / 19:04:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   667
    "Modified: / 19-08-2009 / 13:54:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
389
1e2e6ce45878 Added new warning to commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 387
diff changeset
   668
    "Modified: / 03-03-2014 / 09:18:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
426
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   669
! !
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   670
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   671
!SCMAbstractFileoutLikeTask methodsFor:'queries'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   672
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   673
isSelectiveFileoutTask
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   674
    ^ classes notNil or: [ extensionMethods notNil ]
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   675
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   676
    "Created: / 14-05-2009 / 13:24:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   677
! !
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   678
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   679
!SCMAbstractFileoutLikeTask class methodsFor:'documentation'!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   680
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   681
version_GIT
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   682
    "Never, ever change this method. Ask JV or CG why"
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   683
    ^thisContext method mclass theNonMetaclass instVarNamed: #revision
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   684
!
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   685
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   686
version_HG
114
8b27cb46af9a version_HG changed to return String.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 89
diff changeset
   687
8b27cb46af9a version_HG changed to return String.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 89
diff changeset
   688
    ^ '$Changeset: <not expanded> $'
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   689
!
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   690
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   691
version_SVN
70
3faeae24a513 fix in SCMAbstractFileoutLikeTask>>doCompileVersionMethods
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   692
    ^ '§Id::                                                                                                                        §'
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   693
! !
426
1933163ba3bb Fixed regression for selective class commit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 394
diff changeset
   694