MCStXPackageInfo.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 29 May 2013 13:47:24 +0200
changeset 846 e6a552e98448
parent 735 b7d63bf3b328
child 931 7378792d173b
permissions -rw-r--r--
More support Squeak/Pharo interoperability - part 1: - added ProjectDefinition>>monticelloName - added MCStXSnapshotTransformation to allow for transforming snapshot before/after snapshot is written/read. This is required to transparently hide nasty differences between Smalltalk/X and Squeak/Pharo package models. The support is not yet finished, more to come
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
PackageInfo subclass:#MCStXPackageInfo
735
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
     4
	instanceVariableNames:'projectDefinition classes'
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
686
24cbb3e4461c category change
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
     7
	category:'SCM-Monticello-St/X support'
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!MCStXPackageInfo methodsFor:'accessing'!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
classes
735
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    14
    classes isNil ifTrue:[
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    15
        classes := self projectDefinition classes.
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    16
        "/ cg: not true; the projectDefinition is part of the package; at least for st/x packages.
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    17
        "/ classes remove: self projectDefinition ifAbsent:[].
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
735
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    19
        (classes includes:nil) ifTrue:[
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    20
            "/ some classes are not present - usually, these are architecture spcific classes
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    21
            "/ which are not present in this image (such as XWorkstation vs. WinWorkstation).
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    22
            "/ should do a query signal here, to get this info, instead of doing UI here..
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    23
            (Dialog confirm:'Not all classes as defined in the package are present in your image.\Typically, these are architecture or OS specific classes.\If you proceed, those classes will be missing in the enerated package file.\\Proceed?' withCRs)
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    24
            ifFalse:[
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    25
                AbortSignal raise
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    26
            ].
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    27
            classes := classes select:[:cls | cls notNil].
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    28
        ].
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    29
    ].
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    ^classes
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    "Created: / 23-08-2011 / 11:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
534
9686e77eee0e changed: #classes
Claus Gittinger <cg@exept.de>
parents: 439
diff changeset
    33
    "Modified: / 02-12-2011 / 15:56:35 / cg"
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
extensionMethods
572
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    37
    self assert:(self projectDefinition hasAllExtensionsLoaded).
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    ^self projectDefinition extensionMethods
572
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    40
        collect:[:mthd|
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    41
            self assert:mthd notNil.
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    42
            self
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    43
                referenceForMethod: mthd selector
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    44
                ofClass:mthd mclass
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    45
        ]
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "Created: / 23-08-2011 / 11:58:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
572
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    48
    "Modified: / 27-08-2012 / 12:12:55 / cg"
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
projectDefinition
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    projectDefinition isNil ifTrue:[
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
        projectDefinition := 
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
            (LibraryDefinition
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
                definitionClassForPackage: name
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
                createIfAbsent: true 
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
                projectType: nil)
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    ].
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    ^projectDefinition
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    "Created: / 23-08-2011 / 13:37:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
systemCategories
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    | cats |
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    cats := Set new.
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    self classes do:[:cls|cats add: cls category].
846
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    70
    cats remove: #'* Projects & Packages *'.
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    ^cats
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    "Created: / 23-08-2011 / 13:45:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
846
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    74
    "Modified: / 29-05-2013 / 12:32:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    75
! !
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    76
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    77
!MCStXPackageInfo methodsFor:'testing'!
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    78
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    79
isMCStXPackageInfo
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    80
    ^ true
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    81
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    82
    "Created: / 29-05-2013 / 01:08:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
! !
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
!MCStXPackageInfo class methodsFor:'documentation'!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
version
846
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    88
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXPackageInfo.st,v 1.7 2013-05-29 11:47:24 vrany Exp $'
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
version_CVS
846
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    92
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXPackageInfo.st,v 1.7 2013-05-29 11:47:24 vrany Exp $'
572
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    93
!
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    94
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    95
version_MC
846
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    96
    ^ '$stx:goodies/monticello-cg.3 4e70fe70-f030-11e1-ac62-001f3bda2d09 2012-08-27T12:16:46 cg$'
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
! !
735
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    98