Skip to content

Commit 44d6134

Browse files
authored
Merge pull request #154 from fioan89/advertise-pro-version
Advertise Sourcesync Pro
2 parents 8220062 + 4b28c01 commit 44d6134

10 files changed

Lines changed: 172 additions & 20 deletions

File tree

CHANGELOG.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@
44

55
## [Unreleased]
66

7+
## [3.0.2] - 2023-07-20
8+
9+
### Added
10+
11+
- [**Sourcesync Pro**](https://plugins.jetbrains.com/plugin/22318-source-synchronizer-pro) announcement
12+
13+
### Changed
14+
15+
- the plugin no longer relies on private/internal IntelliJ API's (ported from **Sourcesync Pro**)
16+
17+
### Fixed
18+
- NPE when notification group is not yet available
19+
720
## [3.0.1] - 2023-06-30
821

922
### Fixed
@@ -13,14 +26,17 @@
1326

1427
### Added
1528
- passwords and passphrases are now stored in the much safer IntelliJ Credential Store.
29+
1630
- improved SCP upload fail messages
1731

1832
### Changed
1933
- redesigned Sync Connection Configurations editor with an improved look and feel similar to Run Configurations editor
34+
2035
- simplified the user experience when it comes to configuring remote connections, especially the authentication form
2136

2237
### Removed
2338
- support for FTP&FTPS protocols
39+
2440
- the ability to configure concurrent sync jobs
2541

2642
## [2.0.4] - 2023-04-30
@@ -41,19 +57,23 @@
4157

4258
### Fixed
4359
- path location issues when uploading files with scp from Windows to Unix
60+
4461
- sync menus are now disabled when no remote target is selected
4562

4663
## [2.0.2] - 2022-12-07
4764

4865
### Added
4966
- support for latest OpenSSH private key format
67+
5068
- support for latest IntelliJ 2022.3
5169

5270
## [2.0.1]
5371

5472
### Fixed
5573
- upload issues when using SFTP from local Windows to remote Linux
74+
5675
- behavior for SSH keys component, now they properly enable or disable if users want to authenticate with SSH keys
76+
5777
- plugin icon shown in marketplace
5878

5979
### Changed
@@ -64,48 +84,65 @@
6484

6585
### Added
6686
- support for semver
87+
6788
- build with Kotlin&Gradle
89+
6890
- support for Java 11
91+
6992
- new menu icons
7093

7194
### Changed
7295
- migrated UI layout from JGoodie's `FormLayout` to java.awt + IntelliJ layouts
96+
7397
- migrated most of the dialogs and panels to programmatic code. Reduces the UI Designer footprint
98+
7499
- connection configuration and selection dialogs can now be done from a single place, a combo
75100
box placed in the toolbar. Similar to run/edit configurations.
76101

77102
### Removed
78103
- support for builds before IntelliJ IDEA 2021.1
104+
79105
- removed usages of scheduled to be removed API
106+
80107
- support for builds with Java 1.6
108+
81109
- context menus to create and select connection configurations
82110

83111
### Fixed
84112
- fixed issues with resource location due to trailing "/"
113+
85114
- remove all project associations when there is no Sourcesync connection available
86115

87116
## [1.9.0]
88117

89118
### Added
90119
- support for OS X 10.11
120+
91121
- support for passphrase keys for sftp connections
122+
92123
- support for passwordless ssh for scp connections
93124

94125
### Changed
95126
- the configuration window, the add target and module selection to centered dialogs
127+
96128
- `All previous configurations will be lost`
97129

98130
### Fixed
99131
- support for passwordless ssh for sftp connections
132+
100133
- issues with known_hosts file on Windows machines
134+
101135
- issue with hidden files and directories not showing through private key file chooser
136+
102137
- issue with private key file chooser forcing you to select the public key instead of the private one
138+
103139
- issues with configuration and target window not getting on top of the IDE
104140

105141
## [1.8.0]
106142

107143
### Added
108144
- support for IntelliJ IDEA 15.x
145+
109146
- support for PyCharm 5.x
110147

111148
### Changed
@@ -121,6 +158,7 @@
121158

122159
### Fixed
123160
- NPE when no default file was selected.
161+
124162
- exception due to context switching when using shortcuts.
125163

126164
## [1.4.0]
@@ -141,27 +179,73 @@
141179

142180
### Fixed
143181
- force OK button to save connection preferences
182+
144183
- a few visual bugs (the `Allow ... number of connections` was not visible until resize)
145184

146185
## [1.2.0]
147186

148187
### Added
188+
149189
- option to limit the number of upload threads
150190

151191
### Fixed
192+
152193
- support for `PyCharm`
153194

154195
[Unreleased]: https://github.com/fioan89/sourcesync/compare/v3.0.1...HEAD
196+
197+
[3.0.1]: https://github.com/fioan89/sourcesync/compare/v3.0.0...v3.0.1
198+
199+
[3.0.0]: https://github.com/fioan89/sourcesync/compare/v2.0.4...v3.0.0
200+
201+
[2.0.4]: https://github.com/fioan89/sourcesync/compare/v2.0.3...v2.0.4
202+
203+
[2.0.3]: https://github.com/fioan89/sourcesync/compare/v2.0.2...v2.0.3
204+
205+
[2.0.2]: https://github.com/fioan89/sourcesync/compare/v2.0.1...v2.0.2
206+
207+
[2.0.1]: https://github.com/fioan89/sourcesync/compare/v2.0.0...v2.0.1
208+
209+
[2.0.0]: https://github.com/fioan89/sourcesync/compare/v1.9.0...v2.0.0
210+
211+
[1.9.0]: https://github.com/fioan89/sourcesync/compare/v1.8.0...v1.9.0
212+
213+
[1.8.0]: https://github.com/fioan89/sourcesync/compare/v1.5.0...v1.8.0
214+
215+
[1.5.0]: https://github.com/fioan89/sourcesync/compare/v1.4.0...v1.5.0
216+
217+
[1.4.0]: https://github.com/fioan89/sourcesync/compare/v1.3.0...v1.4.0
218+
219+
[1.3.0]: https://github.com/fioan89/sourcesync/compare/v1.2.0...v1.3.0
220+
221+
[1.2.0]: https://github.com/fioan89/sourcesync/commits/v1.2.0
222+
223+
[Unreleased]: https://github.com/fioan89/sourcesync/compare/v3.0.2...HEAD
224+
225+
[3.0.2]: https://github.com/fioan89/sourcesync/compare/v3.0.1...v3.0.2
226+
155227
[3.0.1]: https://github.com/fioan89/sourcesync/compare/v3.0.0...v3.0.1
228+
156229
[3.0.0]: https://github.com/fioan89/sourcesync/compare/v2.0.4...v3.0.0
230+
157231
[2.0.4]: https://github.com/fioan89/sourcesync/compare/v2.0.3...v2.0.4
232+
158233
[2.0.3]: https://github.com/fioan89/sourcesync/compare/v2.0.2...v2.0.3
234+
159235
[2.0.2]: https://github.com/fioan89/sourcesync/compare/v2.0.1...v2.0.2
236+
160237
[2.0.1]: https://github.com/fioan89/sourcesync/compare/v2.0.0...v2.0.1
238+
161239
[2.0.0]: https://github.com/fioan89/sourcesync/compare/v1.9.0...v2.0.0
240+
162241
[1.9.0]: https://github.com/fioan89/sourcesync/compare/v1.8.0...v1.9.0
242+
163243
[1.8.0]: https://github.com/fioan89/sourcesync/compare/v1.5.0...v1.8.0
244+
164245
[1.5.0]: https://github.com/fioan89/sourcesync/compare/v1.4.0...v1.5.0
246+
165247
[1.4.0]: https://github.com/fioan89/sourcesync/compare/v1.3.0...v1.4.0
248+
166249
[1.3.0]: https://github.com/fioan89/sourcesync/compare/v1.2.0...v1.3.0
250+
167251
[1.2.0]: https://github.com/fioan89/sourcesync/commits/v1.2.0

README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,28 @@ Other notable features include:
1717
* user-friendly UI with support for IntelliJ's **New UI** feature
1818
* synchronization of single or multi-selection files as well as VCS changes
1919

20+
Upgrade to **Sourcesync Pro** for more features and a more streamlined way of transferring code.
21+
22+
| Features | Sourcesync | Sourcesync Pro |
23+
|:---------------------------------------------------------------:|:-------------------------:|:----------------------------------------:|
24+
| License | **Free** & **opensource** | Starts at **$5.99 USD per user/month** |
25+
| SCP File Upload | Yes | Yes |
26+
| SCP Folder Upload | **No** | Yes - Recursive Upload |
27+
| SSH/SFTP File Upload | Yes | Yes |
28+
| SSH/SFTP Folder Upload | **No** | Yes - Recursive Upload |
29+
| Auto Transfer On File Save | **No** | Yes |
30+
| Support For Comparing Local vs Remote Files | **No** | Yes |
31+
| SCP/SSH Password Authentication | Yes | Yes |
32+
| SCP/SSH Key-Pair Authentication With & Without Passphrase | Yes | Yes |
33+
| SCP/SSH timestamp preserving | Modification Time | Permissions, Access & Modification times |
34+
| File Filtering | Yes | Yes |
35+
| User-friendly UI with support for IntelliJ's **New UI** feature | Yes | Yes |
36+
| Customizable keyboard shortcuts | Yes | Yes |
37+
| VCS Changes Upload | Yes | Yes |
38+
| Multi-selection File Upload | Yes | Yes |
39+
| Multi-selection Folder Upload | **No** | Yes |
40+
| Editor File Upload | Yes | Yes |
41+
2042
<!-- Plugin description end -->
2143

2244
## How to install

build.gradle.kts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
import com.jetbrains.plugin.structure.base.utils.simpleName
2+
import com.jetbrains.plugin.structure.intellij.utils.JDOMUtil
3+
import java.nio.file.Files
14
import org.jetbrains.changelog.Changelog
25
import org.jetbrains.changelog.markdownToHTML
6+
import org.jetbrains.intellij.transformXml
37

48
fun properties(key: String) = providers.gradleProperty(key)
59
fun environment(key: String) = providers.environmentVariable(key)
@@ -105,6 +109,35 @@ tasks {
105109
)
106110
}
107111
}
112+
113+
doLast {
114+
pluginXmlFiles.get()
115+
.map(File::toPath)
116+
.forEach { xmlPath ->
117+
val xmlPathOnDestinationDir = destinationDir.get().asFile.toPath().resolve(xmlPath.simpleName)
118+
Files.newInputStream(xmlPathOnDestinationDir).use { inputStream ->
119+
val document = JDOMUtil.loadDocument(inputStream)
120+
val pluginXml = document.rootElement.takeIf { it.name == "idea-plugin" }
121+
pluginXml?.let {
122+
val descriptionTag = pluginXml.getChild("description")
123+
124+
descriptionTag?.apply {
125+
setText(
126+
"<style>\n" +
127+
"table, tr, th, td {\n" +
128+
" border: 1px solid;\n" +
129+
" border-spacing: 0px;\n" +
130+
" border-collapse: collapse;\n" +
131+
"}\n" +
132+
"</style>\n\n$text"
133+
)
134+
}
135+
}
136+
137+
transformXml(document, xmlPathOnDestinationDir)
138+
}
139+
}
140+
}
108141
}
109142

110143
// Configure UI tests plugin

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
pluginGroup=org.wavescale.sourcesync
22
pluginName=sourcesync
33
# SemVer format -> https://semver.org
4-
pluginVersion=3.0.1
4+
pluginVersion=3.0.2
55
pluginRepositoryUrl=https://github.com/fioan89/sourcesync
66
# See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
77
# for insight into build numbers and IntelliJ Platform versions.
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
package org.wavescale.sourcesync
22

33
import com.intellij.openapi.util.IconLoader
4-
import com.intellij.ui.BadgeIcon
4+
import com.intellij.ui.IconManager
55
import com.intellij.util.ui.JBUI
66

77
class SourceSyncIcons {
88
companion object {
99
val SOURCESYNC = IconLoader.getIcon("sourcesync.svg", javaClass)
10-
val SOURCESYNC_RUNNING = BadgeIcon(SOURCESYNC, JBUI.CurrentTheme.RunWidget.RUNNING_BACKGROUND)
10+
val SOURCESYNC_RUNNING = IconManager.getInstance().withIconBadge(SOURCESYNC, JBUI.CurrentTheme.IconBadge.SUCCESS)
1111
}
1212

1313
class ExpUI {
1414
companion object {
1515
val SOURCESYNC = IconLoader.getIcon("expui/sourcesync.svg", javaClass)
16-
val SOURCESYNC_RUNNING = BadgeIcon(SOURCESYNC, JBUI.CurrentTheme.RunWidget.RUNNING_BACKGROUND)
17-
16+
val SOURCESYNC_RUNNING = IconManager.getInstance().withIconBadge(SOURCESYNC, JBUI.CurrentTheme.IconBadge.SUCCESS)
1817
}
1918
}
2019
}

src/main/kotlin/org/wavescale/sourcesync/action/ActionChangedFilesToRemote.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ import com.intellij.openapi.vcs.changes.ChangeListManager
1212
import com.intellij.openapi.vcs.changes.LocalChangeList
1313
import com.intellij.openapi.vfs.VirtualFile
1414
import com.intellij.project.stateStore
15-
import com.intellij.ui.ExperimentalUI
15+
import com.intellij.ui.NewUI
16+
import java.io.File
1617
import org.wavescale.sourcesync.SourceSyncIcons
1718
import org.wavescale.sourcesync.SourcesyncBundle
1819
import org.wavescale.sourcesync.api.Utils
@@ -24,7 +25,6 @@ import org.wavescale.sourcesync.services.SyncRemoteConfigurationsService
2425
import org.wavescale.sourcesync.synchronizer.SCPFileSynchronizer
2526
import org.wavescale.sourcesync.synchronizer.SFTPFileSynchronizer
2627
import org.wavescale.sourcesync.synchronizer.Synchronizer
27-
import java.io.File
2828

2929
class ActionChangedFilesToRemote : AnAction() {
3030
private val syncConfigurationsService = ProjectManager.getInstance().openProjects[0].getService(SyncRemoteConfigurationsService::class.java)
@@ -109,7 +109,7 @@ class ActionChangedFilesToRemote : AnAction() {
109109

110110
override fun update(e: AnActionEvent) {
111111
super.update(e)
112-
if (ExperimentalUI.isNewUI()) {
112+
if (NewUI.isEnabled()) {
113113
e.presentation.icon = SourceSyncIcons.ExpUI.SOURCESYNC
114114
}
115115

src/main/kotlin/org/wavescale/sourcesync/action/ActionLocalFileToRemote.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import com.intellij.openapi.progress.ProgressManager
1010
import com.intellij.openapi.progress.Task
1111
import com.intellij.openapi.project.ProjectManager
1212
import com.intellij.project.stateStore
13-
import com.intellij.ui.ExperimentalUI
13+
import com.intellij.ui.NewUI
1414
import org.wavescale.sourcesync.SourceSyncIcons
1515
import org.wavescale.sourcesync.SourcesyncBundle
1616
import org.wavescale.sourcesync.api.Utils
@@ -83,7 +83,7 @@ class ActionLocalFileToRemote : AnAction() {
8383

8484
override fun update(e: AnActionEvent) {
8585
super.update(e)
86-
if (ExperimentalUI.isNewUI()) {
86+
if (NewUI.isEnabled()) {
8787
e.presentation.icon = SourceSyncIcons.ExpUI.SOURCESYNC
8888
}
8989

src/main/kotlin/org/wavescale/sourcesync/action/ActionSelectedFilesToRemote.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import com.intellij.openapi.progress.ProgressManager
1010
import com.intellij.openapi.progress.Task
1111
import com.intellij.openapi.project.ProjectManager
1212
import com.intellij.project.stateStore
13-
import com.intellij.ui.ExperimentalUI
13+
import com.intellij.ui.NewUI
14+
import java.io.File
1415
import org.wavescale.sourcesync.SourceSyncIcons
1516
import org.wavescale.sourcesync.SourcesyncBundle
1617
import org.wavescale.sourcesync.api.Utils
@@ -22,7 +23,6 @@ import org.wavescale.sourcesync.services.SyncRemoteConfigurationsService
2223
import org.wavescale.sourcesync.synchronizer.SCPFileSynchronizer
2324
import org.wavescale.sourcesync.synchronizer.SFTPFileSynchronizer
2425
import org.wavescale.sourcesync.synchronizer.Synchronizer
25-
import java.io.File
2626

2727
class ActionSelectedFilesToRemote : AnAction() {
2828
private val syncConfigurationsService = ProjectManager.getInstance().openProjects[0].getService(SyncRemoteConfigurationsService::class.java)
@@ -86,7 +86,7 @@ class ActionSelectedFilesToRemote : AnAction() {
8686

8787
override fun update(e: AnActionEvent) {
8888
super.update(e)
89-
if (ExperimentalUI.isNewUI()) {
89+
if (NewUI.isEnabled()) {
9090
e.presentation.icon = SourceSyncIcons.ExpUI.SOURCESYNC
9191
}
9292

0 commit comments

Comments
 (0)