MCGOODSRepository.st
author Claus Gittinger <cg@exept.de>
Sat, 01 Sep 2018 17:32:13 +0200
changeset 1086 efc5221435a5
parent 905 40c57a0b93f8
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
112
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCRepository subclass:#MCGOODSRepository
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'hostname port connection'
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
631
8fa437e40572 category change
Claus Gittinger <cg@exept.de>
parents: 322
diff changeset
     7
	category:'SCM-Monticello-Repositories'
112
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
905
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    11
!MCGOODSRepository class methodsFor:'instance creation'!
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    12
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    13
host: hostname port: portNumber
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    14
	^ self new
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    15
		host: hostname;
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    16
		port: portNumber
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    17
! !
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    18
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    19
!MCGOODSRepository class methodsFor:'queries'!
112
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
creationTemplate
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	^
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
'MCGOODSRepository
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	host: ''localhost''
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	port: 6100'
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
description
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	^ 'GOODS'
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
! !
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
905
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    32
!MCGOODSRepository methodsFor:'accessing'!
112
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
description
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	^ 'goods://', hostname asString, ':', port asString
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
host: aString
215
d7ad7e0646c6 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    39
	hostname := aString
112
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
packages
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	^ (self root collect: [:ea | ea package]) asSet asSortedCollection
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
port: aNumber
215
d7ad7e0646c6 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    47
	port := aNumber
905
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    48
! !
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    49
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    50
!MCGOODSRepository methodsFor:'as yet unclassified'!
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    51
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    52
db
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    53
	(connection isNil or: [connection isConnected not]) ifTrue: [
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    54
		connection := Smalltalk at: #KKDatabase ifPresent: [:cl | 
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    55
			cl  onHost:hostname port: port
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    56
		]
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    57
	].
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    58
	^ connection
112
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
!
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
root
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	self db root ifNil: [self db root: Dictionary new].
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	^ self db root
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
versionWithInfo: aVersionInfo ifAbsent: errorBlock
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
	^ self root at: aVersionInfo ifAbsent: errorBlock
905
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    68
! !
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    69
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    70
!MCGOODSRepository methodsFor:'printing & storing'!
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    71
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    72
basicStoreVersion: aVersion
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    73
	self root at: aVersion info put: aVersion.
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    74
	self db commit.
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    75
! !
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    76
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    77
!MCGOODSRepository methodsFor:'queries'!
112
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
versionsAvailableForPackage: aPackage
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
	^ self root asArray select: [:ea | ea package = aPackage] thenCollect: [:ea | ea info]
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
! !
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!MCGOODSRepository class methodsFor:'documentation'!
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
version
905
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    86
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCGOODSRepository.st,v 1.5 2014-02-12 14:53:36 cg Exp $'
215
d7ad7e0646c6 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    87
!
d7ad7e0646c6 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    88
d7ad7e0646c6 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    89
version_CVS
905
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    90
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCGOODSRepository.st,v 1.5 2014-02-12 14:53:36 cg Exp $'
215
d7ad7e0646c6 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    91
!
d7ad7e0646c6 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    92
d7ad7e0646c6 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    93
version_SVN
905
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    94
    ^ '$Id: MCGOODSRepository.st,v 1.5 2014-02-12 14:53:36 cg Exp $'
112
1978a5c86334 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
! !
905
40c57a0b93f8 categories
Claus Gittinger <cg@exept.de>
parents: 631
diff changeset
    96