diff --git a/00TestTXHY/.keep b/00TestTXHY/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git "a/00TestTXHY/00 \346\265\213\350\257\225\344\270\212\350\257\276\350\247\206\351\242\221\347\216\257\345\242\203.md" "b/00TestTXHY/00 \346\265\213\350\257\225\344\270\212\350\257\276\350\247\206\351\242\221\347\216\257\345\242\203.md"
new file mode 100644
index 0000000000000000000000000000000000000000..87a584f859f260528592b603a1c3e0153d0357a6
--- /dev/null
+++ "b/00TestTXHY/00 \346\265\213\350\257\225\344\270\212\350\257\276\350\247\206\351\242\221\347\216\257\345\242\203.md"
@@ -0,0 +1,9 @@
+#### 00 测试上课视频环境
+
+###### 1.开课准备
+
+
+
+###### 2.课前调查
+
+
\ No newline at end of file
diff --git a/00TestTXHY/assets/image-20220911204842575.png b/00TestTXHY/assets/image-20220911204842575.png
new file mode 100644
index 0000000000000000000000000000000000000000..7cee35d76ef79e46bc3b7a5f6368229a0db18907
Binary files /dev/null and b/00TestTXHY/assets/image-20220911204842575.png differ
diff --git a/00TestTXHY/assets/image-20220911205118121.png b/00TestTXHY/assets/image-20220911205118121.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3197764d6795823e1a4b1ed81b95d6e6dca5283
Binary files /dev/null and b/00TestTXHY/assets/image-20220911205118121.png differ
diff --git a/01Summary/.keep b/01Summary/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git "a/01Summary/01 \351\205\215\347\275\256\347\256\241\347\220\206\344\270\216\351\241\271\347\233\256\351\203\250\347\275\262\346\246\202\350\277\260.md" "b/01Summary/01 \351\205\215\347\275\256\347\256\241\347\220\206\344\270\216\351\241\271\347\233\256\351\203\250\347\275\262\346\246\202\350\277\260.md"
new file mode 100644
index 0000000000000000000000000000000000000000..587c766baa0dca8536abc112caba0d8b7afacbde
--- /dev/null
+++ "b/01Summary/01 \351\205\215\347\275\256\347\256\241\347\220\206\344\270\216\351\241\271\347\233\256\351\203\250\347\275\262\346\246\202\350\277\260.md"
@@ -0,0 +1,97 @@
+## 01 配置管理与项目部署概述
+
+#### 1.配置管理CM
+
+**配置管理( CM:Configuration Management ) 是一个系统工程过程,用于在产品的整个生命周期内建立和维护产品的性能、功能和物理属性与其要求、设计和操作信息的一致性。**
+
+**1. 配置识别(Configuration Identification)** id--唯一性编码:JAVA_HOME URL URI
+
+**2. 配置控制(Configuration Control)** 变更 JDK8、JDK11、**JDK17** LTS(Java模块化、云原生)
+
+**3. 配置状态统计(Configuration status accounting)** 次数、时间、作者...贡献率
+
+**4. 配置审核(Configuration audits)**组员、组长审核。Calculator:+-*/%!^...
+
+**在文档化的基础上,配置管理两个核心,就是需求管理和****变更管理****。**
+
+**需求管理**,就是挖掘明示的和潜在的客户需求,分模块分层树状管理。成果就是基线(Baseline),产品必须和基线一致。
+
+**变更管理**,就是在需要变更的时候怎么管好变更。变更的目的分两种,一种是纠正错误,一种是实施改进。孰能无过,但是如果需求管理做得好,变更执行到位,那错误就会少,企业那点钱,要么省下来变成工资和利润,要么投入到真正的改进。另外,少犯错误,大家心里也痛快点。
+
+**20世纪60年代末70年代初,******一千四百万****次修改,Change and Configuration Control变更与配置控制CCC:最早的配置管理工具之一。
+
+21世纪初提供**工作空间管理、并行开发支持、过程管理、权限控制、变更管理等**一系列全面的管理能力,已经形成了一个完整的理论体系。
+
+**版本控制系统(version control system):版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。**
+
+**Git最热门的版本控制系统,也是本课程学习重点之一。**
+
+**SCM三剑客:CVS最初主流、SVN(企业级)、Git(开源开放)**
+
+工作空间(本机目录)
+
+
+
+克隆码云远程库cmpd_gitops
+
+git clone https://gitee.com/osgisOne/cmpd_gitopsc.git
+
+
+
+git status
+
+
+
+添加文件git add .
+
+
+
+提交git commit -m "修改项目管理的内容" message
+
+git push #本地仓库推送到码云远程仓库
+
+
+
+#### 2.项目部署PD
+
+**软件部署(Software Deployment)是为将一个软件系统投入使用而进行的所有活动,包括硬件配置、软件的安装、环境变量设置等。在一些机器上批量安装某一程序也称为软件部署,分为指派与发布两种类型。**
+
+**蓝绿部署是指在部署过程中同时运行两个版本的程序**。新旧版本。
+
+**滚动发布是指在升级过程中,逐台逐台的替换旧版本服务器**。
+
+**灰度发布也叫金丝雀发布**。
+
+**持续集成 CI**(Continuous Integration):是一种软件项目管理方法,依据资产库(源码,类库等)的变更自动完成编译、测试、部署和反馈。
+
+
+
+**持续交付CD**(Continuous Delivery):持续交付在持续集成的基础上,**【手工】**将集成后的代码部署到更贴近真实运行环境的「**类生产环境**」(*production-like environments*)中。
+
+开发环境--配置高性能高 测试环境--配置最低 (类)生产环境--平均
+
+
+
+持续部署CD(Continuous Deployment):持续部署则是在持续交付的基础上,把**部署到生产环境的过程自动化**。生产环境就是用户环境。
+
+
+
+**开发运维DevOps**
+
+
+
+#### 小结
+
+配置管理:一致性;需求管理、变更管理;VCS;CVS、SVN、Git
+
+项目部署:指派和发布;CI/CD;DveOps
+
+Git Bash(5个指令):
+
+| 序号 | 名称 | 用法 | 描述 | 示例 |
+| ---- | ------ | ------------------- | ---------------------- | --------------------------------------------------------- |
+| 1 | clone | git clone URL | 克隆,远程库克隆本地库 | git clone URL https://gitee.com/osgisOne/cmpd_gitopsc.git |
+| 2 | status | git status | 库状态 | git status |
+| 3 | add | git add . | 添加当前目录所有文件 | git add . |
+| 4 | commit | git commit -m "***" | 提交暂存区文件入库 | git commit -m "描述提交内容的信息" |
+| 5 | push | git push | 推送本地库至远程库 | git push |
\ No newline at end of file
diff --git a/01Summary/assets/c5c8e6f40c7c133e22402c00bb7e1a25_r.jpg b/01Summary/assets/c5c8e6f40c7c133e22402c00bb7e1a25_r.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9f09c4a0cb45e4124727c89097d11fbd4b3605ec
Binary files /dev/null and b/01Summary/assets/c5c8e6f40c7c133e22402c00bb7e1a25_r.jpg differ
diff --git a/01Summary/assets/db7198e3c39e4656e18efcb4bd1b20b1_r.jpg b/01Summary/assets/db7198e3c39e4656e18efcb4bd1b20b1_r.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5a7f6de6af8c687d22af15a733c4faf2ca06ea0e
Binary files /dev/null and b/01Summary/assets/db7198e3c39e4656e18efcb4bd1b20b1_r.jpg differ
diff --git a/01Summary/assets/devops.jpeg b/01Summary/assets/devops.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..f941da79cb730494d11aa4d8ab8949d5231a8284
Binary files /dev/null and b/01Summary/assets/devops.jpeg differ
diff --git a/01Summary/assets/f96f19e4d567aad5006d841963a86e41_b.png b/01Summary/assets/f96f19e4d567aad5006d841963a86e41_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..0821ff45dce0b1f52eadc94631c01ecf0f9a4693
Binary files /dev/null and b/01Summary/assets/f96f19e4d567aad5006d841963a86e41_b.png differ
diff --git a/01Summary/assets/image-20220912091117539.png b/01Summary/assets/image-20220912091117539.png
new file mode 100644
index 0000000000000000000000000000000000000000..e965a647860cd437d3714354ea137cf444082197
Binary files /dev/null and b/01Summary/assets/image-20220912091117539.png differ
diff --git a/01Summary/assets/image-20220912091433356.png b/01Summary/assets/image-20220912091433356.png
new file mode 100644
index 0000000000000000000000000000000000000000..fff4badf3fb006f0ece68036a3398b2370a6e917
Binary files /dev/null and b/01Summary/assets/image-20220912091433356.png differ
diff --git a/01Summary/assets/image-20220912091805585.png b/01Summary/assets/image-20220912091805585.png
new file mode 100644
index 0000000000000000000000000000000000000000..79fee1df11561f94a103335365214ee896817598
Binary files /dev/null and b/01Summary/assets/image-20220912091805585.png differ
diff --git a/01Summary/assets/image-20220912092331492.png b/01Summary/assets/image-20220912092331492.png
new file mode 100644
index 0000000000000000000000000000000000000000..5256407742c0a05d57eaab57ca8270c8f56dbf05
Binary files /dev/null and b/01Summary/assets/image-20220912092331492.png differ
diff --git a/01Summary/assets/image-20220912092447894.png b/01Summary/assets/image-20220912092447894.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0187d672387110733d696d10442728a397cdadb
Binary files /dev/null and b/01Summary/assets/image-20220912092447894.png differ
diff --git a/01Summary/assets/image-20220912092912028.png b/01Summary/assets/image-20220912092912028.png
new file mode 100644
index 0000000000000000000000000000000000000000..69ceb64923946c8599c89a7283753634d86ad995
Binary files /dev/null and b/01Summary/assets/image-20220912092912028.png differ
diff --git a/02Git Bash/.keep b/02Git Bash/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git "a/02Git Bash/02Git Bash\345\237\272\346\234\254\346\223\215\344\275\2341.md" "b/02Git Bash/02Git Bash\345\237\272\346\234\254\346\223\215\344\275\2341.md"
new file mode 100644
index 0000000000000000000000000000000000000000..f5f62bf014cfa326b6858acd95330a3b2e77d254
--- /dev/null
+++ "b/02Git Bash/02Git Bash\345\237\272\346\234\254\346\223\215\344\275\2341.md"
@@ -0,0 +1,157 @@
+## Git Bash基本操作1
+
+#### 1.Git由来
+
+Linus大神仅用了两周时间,自已用C写了一个分布式版本控制系统。
+
+
+
+林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds,1969年12月28日- ),芬兰赫尔辛基人,著名的电脑程序员,Linux内核的发明人及该计划的合作者 [1] ,毕业于赫尔辛基大学计算机系,1997年至2003年在美国加州硅谷任职于全美达公司(Transmeta Corporation),现受聘于开放源代码开发实验室(OSDL:Open Source Development Labs, Inc),全力开发Linux内核。与妻子托芙(Tove,芬兰前女子空手道冠军)育有三个女孩。著有自传《乐者为王》。
+
+因为成功地开发了操作系统Linux内核,托瓦兹获得了2014年计算机先驱奖(For pioneering development of the Linux kernel using the open-source approach)。他的获奖创造了计算机先驱奖历史上的多个第一:第一次授予一位芬兰人;第一次授予一位“60后”(其实只差3天,就是“70后”);获奖成果是在学生时期取得的。
+
+
+
+#### Git特点
+
+**1.直接记录快照,而非差异比较**
+
+**2. 近乎所有操作都是本地执行**
+
+**3. 时刻保持数据完整性**
+
+**4. 多数操作仅添加数据**
+
+#### 2.Git优缺点
+
+1. 适合分布式开发,强调个体。
+2. 公共服务器压力和数据量都不会太大。
+3. 速度快、灵活。
+4. 任意两个开发者之间可以很容易的解决冲突。
+5. 离线工作。
+
+1. 模式上比SVN更加复杂。
+2. 不符合常规思维。
+3. 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
+
+#### 3.Git原理
+
+Git 三棵“树”组成。**工作目录树**,持有实际文件;缓存区(Index)**目录树**,临时保存改动;blob**对象树**,由HEAD指向最近一次提交后的结果。
+
+
+
+#### 4.Git对象
+
+**commit、tree、blob对象和tag对象**
+
+
+
+
+
+#### 5.Git工作流
+
+Git的工作总共分四层,其中三层是在自己本地也就是说git仓库(通常讲的仓库即指本地仓库),包括了工作目录、暂存区和本地仓库。
+
+工作目录(workspace)就是执行命令git init时所在的地方,也就是执行一切文件操作的地方;暂存区(index)和本地仓库(repository)都是在.git目录下,因为它们只是用来存数据的。
+
+远程仓库(remote)在中心服务器,也就是做好工作之后推送到远程仓库,或者从远程仓库更新下来最新代码到本地。
+
+
+
+**Git文件四种状态**
+
+- Untracked:新增的文件的状态,未受Git管理,记录在工作区
+
+- Modified:受Git管理过的文件的改动状态(包括改动内容、删除文件),记录在工作区
+
+- Staged:将记录在工作区的文件变动状态通知了Git,记录在暂存区
+
+- Unmodified:受Git管理中的文件状态(没有变动),记录在本地仓库/远程仓库
+
+ 
+
+#### 6.Git客户端Git Bash操作
+
+Shell是文本解释器程序的统称,常见的Shell有sh、bash、ksh、rsh、csh等。sh的全名是Bourne Shell。名字中的玻恩就是这个Shell的作者。而bash的全名是Bourne Again Shell。
+
+
+
+#### 7.签出分支dev
+
+方法一:先克隆全库,再签出分支:git clone url git checkout develop
+
+方法二:克隆单分支:git clone -b develop--single-branch https://gitee.com/osgisOne/cmpd_gitopsc.git
+
+#### 8.本地开发JWSCalculator项目
+
+
+
+该案例已经讲解,将是练习、考试案例,希望很好的理解、掌握。
+
+
+
+#### 9.推送项目至远程库
+
+git add .
+
+git commit -m"*** "
+
+git push
+
+#### 10.作业截图
+
+
+
+javac *.java sdk/*.java plugins/*.java
+
+
+
+java gitops.jwscalculator.JwsCalculator
+
+cd 到目录:src\main\java\gitops\jwscalculator,或者大家使用JavaIDE进行操作。
+
+
+
+编译命令改为:
+
+javac *.java sdk/*.java plugins/*.java -d .
+
+原因是有包gitops.jwscalculator,编译时多一个-d参数和后面一个点号. 表示当前目录位置。最后的目录结构与视频中的一样,但是编译时要加参数,以包展开。
+
+然后相同目录下:
+
+java gitops.jwscalculator.JwsCalculator
+
+
+
+**发现Bug:视频中的编译执行操作都是对的,报错是因为插件源码文件夹与命名空间不一致导致的。源码是plugins,命名空间是plugin。加参数-d和指明路径.就可以了。编译时,将各插件class文件放到了plugin文件夹与其命名空间对应。**
+
+
+
+#### 11.作业视频
+
+
+
+#### 小结
+
+ Git特点:分布式、多分支、开源开发
+
+ Git工作流:正向、方向、差异
+
+ Git四层结构:工作区、缓冲区、本地库、远程库
+
+ Git四个对象:Commit、tree、blob、tag
+
+ Git文件四种状态:未跟踪、未修改、已修改、已暂存
+
+ JwsCalculator项目7个版本
+
+| 序号 | 名称 | 用法 | 描述 | 示例 |
+| ---- | -------- | -------------------- | ---------------------- | --------------------------------------------------------- |
+| 1 | clone | git clone URL | 克隆,远程库克隆本地库 | git clone URL https://gitee.com/osgisOne/cmpd_gitopsc.git |
+| 2 | status | git status | 库状态 | git status |
+| 3 | add | git add . | 添加当前目录所有文件 | git add . |
+| 4 | commit | git commit -m "***" | 提交暂存区文件入库 | git commit -m "描述提交内容的信息" |
+| 5 | push | git push | 推送本地库至远程库 | git push |
+| 6 | checkout | git checkout develop | 签出分支 | git checkout develop |
+
diff --git a/02Git Bash/assets/1944911-20201026161437540-1982967373.png b/02Git Bash/assets/1944911-20201026161437540-1982967373.png
new file mode 100644
index 0000000000000000000000000000000000000000..a7963653e4537cf5efce12e72e3bfe791d871228
Binary files /dev/null and b/02Git Bash/assets/1944911-20201026161437540-1982967373.png differ
diff --git a/02Git Bash/assets/426b17635b0c685c051500af6a3c2b72.png b/02Git Bash/assets/426b17635b0c685c051500af6a3c2b72.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc008bf3f4b3d0156dde2833ccc17c30cf6840ce
Binary files /dev/null and b/02Git Bash/assets/426b17635b0c685c051500af6a3c2b72.png differ
diff --git a/02Git Bash/assets/58def5b0c0b323fc827c50860a679ba1.png b/02Git Bash/assets/58def5b0c0b323fc827c50860a679ba1.png
new file mode 100644
index 0000000000000000000000000000000000000000..c908a3424512463b4d6e96deb9e23be307ba34bd
Binary files /dev/null and b/02Git Bash/assets/58def5b0c0b323fc827c50860a679ba1.png differ
diff --git a/02Git Bash/assets/790652e6d83be84e0f501ee0d5f4089d.png b/02Git Bash/assets/790652e6d83be84e0f501ee0d5f4089d.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c6c449aa1ce2c6704069ad5af730b27b1da7125
Binary files /dev/null and b/02Git Bash/assets/790652e6d83be84e0f501ee0d5f4089d.png differ
diff --git a/02Git Bash/assets/9acc16cedc37115cd59c88042feea41d.png b/02Git Bash/assets/9acc16cedc37115cd59c88042feea41d.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f29f2ace54615cc35b34126dca707b65179faf0
Binary files /dev/null and b/02Git Bash/assets/9acc16cedc37115cd59c88042feea41d.png differ
diff --git a/02Git Bash/assets/acf29fa6e676056dbb9184b7092cf095.png b/02Git Bash/assets/acf29fa6e676056dbb9184b7092cf095.png
new file mode 100644
index 0000000000000000000000000000000000000000..4fae7664149d27e3ad27dbac6c11a3b246f6a2a5
Binary files /dev/null and b/02Git Bash/assets/acf29fa6e676056dbb9184b7092cf095.png differ
diff --git a/02Git Bash/assets/b5876cad89b3c71a3ec7a0432609b7d1.png b/02Git Bash/assets/b5876cad89b3c71a3ec7a0432609b7d1.png
new file mode 100644
index 0000000000000000000000000000000000000000..912c2a198c12b9e467bf64a2346d90ff46ffa8f5
Binary files /dev/null and b/02Git Bash/assets/b5876cad89b3c71a3ec7a0432609b7d1.png differ
diff --git a/02Git Bash/assets/d94529f6aa0270473ff2590bcb5c1ffe.png b/02Git Bash/assets/d94529f6aa0270473ff2590bcb5c1ffe.png
new file mode 100644
index 0000000000000000000000000000000000000000..943482158ebb26c36f43adfcebb4ba7c1a417f2e
Binary files /dev/null and b/02Git Bash/assets/d94529f6aa0270473ff2590bcb5c1ffe.png differ
diff --git a/02Git Bash/assets/dc24e60412d7e71300f6349958f4d3e3.png b/02Git Bash/assets/dc24e60412d7e71300f6349958f4d3e3.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ab7bdd97646e87b00800a52d02e47dd691c2bc1
Binary files /dev/null and b/02Git Bash/assets/dc24e60412d7e71300f6349958f4d3e3.png differ
diff --git a/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5-16640200625785.png b/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5-16640200625785.png
new file mode 100644
index 0000000000000000000000000000000000000000..898ad0462803646405291be9baec8fd55763d6b0
Binary files /dev/null and b/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5-16640200625785.png differ
diff --git a/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5.png b/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5.png
new file mode 100644
index 0000000000000000000000000000000000000000..898ad0462803646405291be9baec8fd55763d6b0
Binary files /dev/null and b/02Git Bash/assets/fbe8d9e38985e171098b6915197b6ad5.png differ
diff --git a/02Git Bash/assets/image-20220924193956700-16640200684767.png b/02Git Bash/assets/image-20220924193956700-16640200684767.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb4f38ec1d43a9faaffdc81b126f15b1c26d5bd2
Binary files /dev/null and b/02Git Bash/assets/image-20220924193956700-16640200684767.png differ
diff --git a/02Git Bash/assets/image-20220924193956700.png b/02Git Bash/assets/image-20220924193956700.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb4f38ec1d43a9faaffdc81b126f15b1c26d5bd2
Binary files /dev/null and b/02Git Bash/assets/image-20220924193956700.png differ
diff --git a/02Git Bash/assets/image-20220924201030472.png b/02Git Bash/assets/image-20220924201030472.png
new file mode 100644
index 0000000000000000000000000000000000000000..967a9d3190ee1e64c86b6c7b648f63971cc62918
Binary files /dev/null and b/02Git Bash/assets/image-20220924201030472.png differ
diff --git a/02Git Bash/assets/image-20220924201845661-166402273778832.png b/02Git Bash/assets/image-20220924201845661-166402273778832.png
new file mode 100644
index 0000000000000000000000000000000000000000..397f02a72a4a1989c847432e076bb0a540ada420
Binary files /dev/null and b/02Git Bash/assets/image-20220924201845661-166402273778832.png differ
diff --git a/02Git Bash/assets/image-20220924201845661.png b/02Git Bash/assets/image-20220924201845661.png
new file mode 100644
index 0000000000000000000000000000000000000000..397f02a72a4a1989c847432e076bb0a540ada420
Binary files /dev/null and b/02Git Bash/assets/image-20220924201845661.png differ
diff --git a/02Git Bash/assets/image-20220924202235507.png b/02Git Bash/assets/image-20220924202235507.png
new file mode 100644
index 0000000000000000000000000000000000000000..b23318789885b8e980c143a849b35c74ac9f17b9
Binary files /dev/null and b/02Git Bash/assets/image-20220924202235507.png differ
diff --git a/02Git Bash/assets/trees.png b/02Git Bash/assets/trees.png
new file mode 100644
index 0000000000000000000000000000000000000000..92cbb2b4492f00fc5ccd9eace6ac22ff261393bb
Binary files /dev/null and b/02Git Bash/assets/trees.png differ
diff --git a/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70-166402268099320.png b/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70-166402268099320.png
new file mode 100644
index 0000000000000000000000000000000000000000..4575330b8451734f42f20214dcbb313aafef7d7a
Binary files /dev/null and b/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70-166402268099320.png differ
diff --git a/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70.png b/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70.png
new file mode 100644
index 0000000000000000000000000000000000000000..4575330b8451734f42f20214dcbb313aafef7d7a
Binary files /dev/null and b/02Git Bash/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNjAwMzM=,size_16,color_FFFFFF,t_70.png differ
diff --git a/03Git GUI/.keep b/03Git GUI/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/04Git IDE/.keep b/04Git IDE/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Git Hub/.keep b/05Git Hub/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/06Gitee/.keep b/06Gitee/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/07Git Server/.keep b/07Git Server/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/08Gitea/.keep b/08Gitea/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/09Jenkins/.keep b/09Jenkins/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/10GitOps/.keep b/10GitOps/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/11PipeLine/.keep b/11PipeLine/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/12MockExamination/.keep b/12MockExamination/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/README.md b/README.md
index c1629ba02248901db0f9b4aaab5308dfe4a28ebf..61cfc077bc2fe8bf9f3ea291caf189ac42bf3050 100644
--- a/README.md
+++ b/README.md
@@ -1,37 +1,116 @@
# cmpd_gitops
-#### 介绍
21软件技术专业1、2班《配置管理与项目部署》课程仓库,教学笔记与仓库操作和部署演示。
-#### 软件架构
-软件架构说明
+## 1步:创建笔记库
+
-#### 安装教程
+## 2步:Feature分支创建文件夹
-1. xxxx
-2. xxxx
-3. xxxx
+
-#### 使用说明
+
-1. xxxx
-2. xxxx
-3. xxxx
+## 3步:笔记库地址
-#### 参与贡献
+https://gitee.com/osgisOne/cmpd_gitopsc.git
-1. Fork 本仓库
-2. 新建 Feat_xxx 分支
-3. 提交代码
-4. 新建 Pull Request
+## 4步:克隆笔记库(全克隆)
+
-#### 特技
+
-1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
-2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
-3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
-4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
-5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
-6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
+## 5步:克隆笔记库feature分支(方法1)
+
+git clone -b feature --single-branch https://gitee.com/osgisOne/cmpd_gitopsc.git
+
+
+
+删除本地库,再克隆
+
+
+
+切换目录到cmpd_gitopsc
+
+
+
+
+
+## 6步:本地库创建并切换feature支(方法2)
+
+先全克隆远程库,再映射远程库
+
+git checkout -b feature origin/feature
+
+
+
+
+
+## 7步:Typroa编辑README.md
+
+
+
+## 8步:编辑前后的状态
+
+
+
+git status
+
+## 9步:添加提交本地库
+
+git add .
+
+git commit -m "修改Readme文件"
+
+## 10步:推送至远程库
+
+git push
+
+(输入Gitee的账号、密码)
+
+
+
+## 11步:远程库查看
+
+
+
+## 12步:重复7-11步
+
+
+
+## 13步:第二次访问Pull
+
+
+
+新增“jwscalculator项目”文件夹,所以,总是pull开始每一天的工作。
+
+## 14步:上传jwscalculator项目源码
+
+## 
+
+复制源码到本地库的“cmpd_gitopsc\jwscalculator项目”目录
+**注意:删除原来项目文件夹下的各版本中的.git库**
+
+
+
+## 15步:编辑本文档并重复9-11步
+
+
+
+
+
+
+
+
+
+## 16步:学习笔记撰写流程完毕
+
+
+
+
+
+## 小结
+
+创建Gitee远程库,选择Feature或Develop分支,克隆全库或单分支到本地库,推荐md格式,使用Typora工具,修改学习笔记,增加提交本地库,再推送远程库。后续,先拉后推,期间重复着:编程学习笔记,提交推送。
diff --git a/assets/14515d9ef139a4648eb74a299978ad45.png b/assets/14515d9ef139a4648eb74a299978ad45.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b3b5d2813e2464ac1a6c138e0281d933be52062
Binary files /dev/null and b/assets/14515d9ef139a4648eb74a299978ad45.png differ
diff --git a/assets/1f343ae526e859b83558a478fd11d401.png b/assets/1f343ae526e859b83558a478fd11d401.png
new file mode 100644
index 0000000000000000000000000000000000000000..974f3d627415f6b92d0f53693e0a90be7a4646ff
Binary files /dev/null and b/assets/1f343ae526e859b83558a478fd11d401.png differ
diff --git a/assets/2250a5211f74854920bd5c6c624d9dd8.png b/assets/2250a5211f74854920bd5c6c624d9dd8.png
new file mode 100644
index 0000000000000000000000000000000000000000..02b69e9334b998d67824ef137697704aab51b073
Binary files /dev/null and b/assets/2250a5211f74854920bd5c6c624d9dd8.png differ
diff --git a/assets/36629d39e54c5cc27f416bb5fe8f5b5c.png b/assets/36629d39e54c5cc27f416bb5fe8f5b5c.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6d74cdc0570218f51c7d0f7e6e83852b8b8cb6b
Binary files /dev/null and b/assets/36629d39e54c5cc27f416bb5fe8f5b5c.png differ
diff --git a/assets/3d4c7cbaa397746762c39d0471ba1229.png b/assets/3d4c7cbaa397746762c39d0471ba1229.png
new file mode 100644
index 0000000000000000000000000000000000000000..4866c663d9e223cbfc9414a70cd16b5ee3c4a38b
Binary files /dev/null and b/assets/3d4c7cbaa397746762c39d0471ba1229.png differ
diff --git a/assets/4dd13c9dc21257ed7d63cb819393fea8.png b/assets/4dd13c9dc21257ed7d63cb819393fea8.png
new file mode 100644
index 0000000000000000000000000000000000000000..626b9e3cee10a5c216c63c0f7b556252c6f02d42
Binary files /dev/null and b/assets/4dd13c9dc21257ed7d63cb819393fea8.png differ
diff --git a/assets/7832d7195d177b9a19e82fd1395a652c.png b/assets/7832d7195d177b9a19e82fd1395a652c.png
new file mode 100644
index 0000000000000000000000000000000000000000..9acccc6f19e146c11da60398f4a78761f37eef2a
Binary files /dev/null and b/assets/7832d7195d177b9a19e82fd1395a652c.png differ
diff --git a/assets/7b56d204af79ed211527b248cec5e66f.png b/assets/7b56d204af79ed211527b248cec5e66f.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a4c53658ee448234f8a93c8a09970165ee4970b
Binary files /dev/null and b/assets/7b56d204af79ed211527b248cec5e66f.png differ
diff --git a/assets/8a7fef4266a0e5b5b7d367effe1dd9f8.png b/assets/8a7fef4266a0e5b5b7d367effe1dd9f8.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8c3ef8b7eee8ac721c82ca9ba680f723e787c4c
Binary files /dev/null and b/assets/8a7fef4266a0e5b5b7d367effe1dd9f8.png differ
diff --git a/assets/919f40c3dfa21c611f17f2808275d06b.png b/assets/919f40c3dfa21c611f17f2808275d06b.png
new file mode 100644
index 0000000000000000000000000000000000000000..376830190681a3816857bfe613cfbac0d1147bb7
Binary files /dev/null and b/assets/919f40c3dfa21c611f17f2808275d06b.png differ
diff --git a/assets/ad6cf6e4d068ac46d462569a759a0089.png b/assets/ad6cf6e4d068ac46d462569a759a0089.png
new file mode 100644
index 0000000000000000000000000000000000000000..3eb4ae1e9b9422b174aaf546f3fefc1ecf63aeaa
Binary files /dev/null and b/assets/ad6cf6e4d068ac46d462569a759a0089.png differ
diff --git a/assets/b5e221ac6e3f723370945bb4961bcfac.png b/assets/b5e221ac6e3f723370945bb4961bcfac.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c00f74ad98787fe43b8fe069f60522653d6e2c0
Binary files /dev/null and b/assets/b5e221ac6e3f723370945bb4961bcfac.png differ
diff --git a/assets/image-20220827162157938.png b/assets/image-20220827162157938.png
new file mode 100644
index 0000000000000000000000000000000000000000..77170195c2cb3a8a35376ba45f8c50dcf7337a9a
Binary files /dev/null and b/assets/image-20220827162157938.png differ
diff --git a/assets/image-20220827162910904.png b/assets/image-20220827162910904.png
new file mode 100644
index 0000000000000000000000000000000000000000..c54778deb2f44757856acdefc13152a51ab8ee23
Binary files /dev/null and b/assets/image-20220827162910904.png differ
diff --git a/assets/image-20220827163506237.png b/assets/image-20220827163506237.png
new file mode 100644
index 0000000000000000000000000000000000000000..2598ebb3916e7931b67ab17048053dab41ff3b98
Binary files /dev/null and b/assets/image-20220827163506237.png differ
diff --git a/assets/image-20220827164116168.png b/assets/image-20220827164116168.png
new file mode 100644
index 0000000000000000000000000000000000000000..acefebce8c30ac5379caed76ba3065f86982e628
Binary files /dev/null and b/assets/image-20220827164116168.png differ
diff --git a/assets/image-20220827170652893.png b/assets/image-20220827170652893.png
new file mode 100644
index 0000000000000000000000000000000000000000..bf3ba46a48c4bceb88da4ff133f8dc2353e2c771
Binary files /dev/null and b/assets/image-20220827170652893.png differ
diff --git a/assets/image-20220827171050673.png b/assets/image-20220827171050673.png
new file mode 100644
index 0000000000000000000000000000000000000000..67da15fd72d09c4b5a230fa1babdc8e17cfa1fc8
Binary files /dev/null and b/assets/image-20220827171050673.png differ
diff --git a/assets/image-20220827173525231.png b/assets/image-20220827173525231.png
new file mode 100644
index 0000000000000000000000000000000000000000..e95ea2eb8c693bf4da1885fb818fc079fe3f3f8f
Binary files /dev/null and b/assets/image-20220827173525231.png differ
diff --git a/assets/image-20220827173556105.png b/assets/image-20220827173556105.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b820c0dc535d70e2668007d6a6976874dcc4477
Binary files /dev/null and b/assets/image-20220827173556105.png differ
diff --git a/assets/image-20220827173621991.png b/assets/image-20220827173621991.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c48a536f4665f2aefdb1682ecc812b8b125e47e
Binary files /dev/null and b/assets/image-20220827173621991.png differ
diff --git a/assets/image-20220827173703955.png b/assets/image-20220827173703955.png
new file mode 100644
index 0000000000000000000000000000000000000000..37d0cdc494583cedbbdcb30d8029c86edb8a5ff7
Binary files /dev/null and b/assets/image-20220827173703955.png differ
diff --git a/assets/image-20220827174056604.png b/assets/image-20220827174056604.png
new file mode 100644
index 0000000000000000000000000000000000000000..74710b249a5cade9f65ad23304afb189268ad126
Binary files /dev/null and b/assets/image-20220827174056604.png differ
diff --git a/assets/image-20220827174124332.png b/assets/image-20220827174124332.png
new file mode 100644
index 0000000000000000000000000000000000000000..1eaf1c1b9399cb290e6b80a6f2780cc374791ff5
Binary files /dev/null and b/assets/image-20220827174124332.png differ
diff --git a/assets/image-20220827181701099.png b/assets/image-20220827181701099.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad3f3e7aca9df6a1785bdc32a69693b2484ce47b
Binary files /dev/null and b/assets/image-20220827181701099.png differ
diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/.gitignore" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/.gitignore"
new file mode 100644
index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a
--- /dev/null
+++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/.gitignore"
@@ -0,0 +1,25 @@
+# ---> Java
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/Jenkinsfile" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/Jenkinsfile"
new file mode 100644
index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e
--- /dev/null
+++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/Jenkinsfile"
@@ -0,0 +1,70 @@
+pipeline{
+ agent any
+ stages{
+ stage('编译源码') {
+ steps {
+ bat '''mkdir target
+ cd target
+ mkdir classes
+ cd ..\\src\\main\\java
+ javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes'''
+ }
+ }
+ stage('生成jar ') {
+ steps {
+ bat '''cd target\\classes
+ jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops'''
+ }
+ }
+ stage('生成密钥'){
+ steps{
+ bat '''cd target\\classes
+ keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"'''
+ }
+ }
+ stage('签名jar') {
+ steps {
+ bat '''cd target\\classes
+ jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass
+ move jwscalculator.jar ..\\..\\src\\main\\webapp'''
+ }
+ }
+
+ stage('打包War') {
+ steps {
+ bat '''cd src\\main\\webapp
+ jar cfM jwscalculator.war *'''
+ }
+ }
+ stage('部署tomcat'){
+ steps{
+ deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war'
+ }
+ }
+ stage('本地运行jar'){
+ steps{
+ bat '''cd src\\main\\webapp
+ java -jar jwscalculator.jar'''
+ }
+ }
+ stage('本地运行jnlp'){
+ steps{
+ bat '''cd src\\main\\webapp
+ javaws jwscalculator.jnlp'''
+ }
+ }
+ stage('WebStart'){
+ steps{
+ bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html'
+ }
+ }
+ stage('清除'){
+ steps{
+ bat '''rd /S /Q target
+ cd src\\main\\webapp
+ del jwscalculator.jar
+ del jwscalculator.war'''
+ }
+ }
+ }
+}
diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/README.md" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/README.md"
new file mode 100644
index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858
--- /dev/null
+++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/README.md"
@@ -0,0 +1,2 @@
+# jwscalculator
+
diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/java/gitops/jwscalculator/JwsCalculator.java"
new file mode 100644
index 0000000000000000000000000000000000000000..5c5361c3baa3e3aa53df766c738f8644c10984fc
--- /dev/null
+++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/java/gitops/jwscalculator/JwsCalculator.java"
@@ -0,0 +1,40 @@
+package gitops.jwscalculator;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Font;
+
+import javax.swing.JFrame;
+import javax.swing.JTextField;
+
+public class JwsCalculator {
+
+ public static void main(String[] args) {
+ CalculatorUI ui=new CalculatorUI("JwsCalculator");
+ ui.setVisible(true);
+ ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+}
+
+class CalculatorUI extends JFrame
+{
+ private JTextField textField=new JTextField("ӭμӡùĿ𡷿ԣ");
+
+ public CalculatorUI(String title)
+ {
+ super(title);
+ this.ComponentInit();
+ this.setLocation(300, 200);
+ this.setSize(600, 450);
+ }
+
+ private void ComponentInit()
+ {
+ this.add(textField,BorderLayout.NORTH);
+ textField.setPreferredSize(new Dimension(300,80));
+ textField.setHorizontalAlignment(JTextField.RIGHT);
+ textField.setFont(new Font("",Font.PLAIN,32));
+ textField.setEditable(false);
+ }
+
+}
diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/giteejwscalculator.jnlp" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/giteejwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..cd8a93138c3901a908c0f88897dc6f37b02d1b04
--- /dev/null
+++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/giteejwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/index.html" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/index.html"
new file mode 100644
index 0000000000000000000000000000000000000000..747064ba9c489dc5432b191cd49095385f5280c0
--- /dev/null
+++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/index.html"
@@ -0,0 +1,14 @@
+
+
+
+
+初始项目
+
+
+ 本地网站localhost:8080
+ WebStart启动jwscalculator
+
+ 码云服务osgisOne.gitee.io
+ WebStart启动jwscalculator
+
+
diff --git "a/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/jwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8
--- /dev/null
+++ "b/jwscalculator/v0.1\345\210\235\345\247\213\351\241\271\347\233\256/src/main/webapp/jwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/.gitignore" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/.gitignore"
new file mode 100644
index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a
--- /dev/null
+++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/.gitignore"
@@ -0,0 +1,25 @@
+# ---> Java
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/Jenkinsfile" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/Jenkinsfile"
new file mode 100644
index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e
--- /dev/null
+++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/Jenkinsfile"
@@ -0,0 +1,70 @@
+pipeline{
+ agent any
+ stages{
+ stage('编译源码') {
+ steps {
+ bat '''mkdir target
+ cd target
+ mkdir classes
+ cd ..\\src\\main\\java
+ javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes'''
+ }
+ }
+ stage('生成jar ') {
+ steps {
+ bat '''cd target\\classes
+ jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops'''
+ }
+ }
+ stage('生成密钥'){
+ steps{
+ bat '''cd target\\classes
+ keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"'''
+ }
+ }
+ stage('签名jar') {
+ steps {
+ bat '''cd target\\classes
+ jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass
+ move jwscalculator.jar ..\\..\\src\\main\\webapp'''
+ }
+ }
+
+ stage('打包War') {
+ steps {
+ bat '''cd src\\main\\webapp
+ jar cfM jwscalculator.war *'''
+ }
+ }
+ stage('部署tomcat'){
+ steps{
+ deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war'
+ }
+ }
+ stage('本地运行jar'){
+ steps{
+ bat '''cd src\\main\\webapp
+ java -jar jwscalculator.jar'''
+ }
+ }
+ stage('本地运行jnlp'){
+ steps{
+ bat '''cd src\\main\\webapp
+ javaws jwscalculator.jnlp'''
+ }
+ }
+ stage('WebStart'){
+ steps{
+ bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html'
+ }
+ }
+ stage('清除'){
+ steps{
+ bat '''rd /S /Q target
+ cd src\\main\\webapp
+ del jwscalculator.jar
+ del jwscalculator.war'''
+ }
+ }
+ }
+}
diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/README.md" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/README.md"
new file mode 100644
index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858
--- /dev/null
+++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/README.md"
@@ -0,0 +1,2 @@
+# jwscalculator
+
diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/java/gitops/jwscalculator/JwsCalculator.java"
new file mode 100644
index 0000000000000000000000000000000000000000..afd7114906fc092bc0f1aa05d7aa9c5cf89c3790
--- /dev/null
+++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/java/gitops/jwscalculator/JwsCalculator.java"
@@ -0,0 +1,72 @@
+package gitops.jwscalculator;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridLayout;
+
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+public class JwsCalculator {
+
+ public static void main(String[] args) {
+ CalculatorUI ui=new CalculatorUI("JwsCalculator:");
+ ui.setVisible(true);
+ ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+}
+
+class CalculatorUI extends JFrame
+{
+ private JTextField textField=new JTextField("0");
+
+ private JPanel panel=new JPanel(new GridLayout(4,4));
+ private JButton bt11=new JButton("7");
+ private JButton bt12=new JButton("8");
+ private JButton bt13=new JButton("9");
+ private JButton bt14=new JButton("/");
+ private JButton bt21=new JButton("4");
+ private JButton bt22=new JButton("5");
+ private JButton bt23=new JButton("6");
+ private JButton bt24=new JButton("*");
+ private JButton bt31=new JButton("1");
+ private JButton bt32=new JButton("2");
+ private JButton bt33=new JButton("3");
+ private JButton bt34=new JButton("-");
+ private JButton bt41=new JButton("0");
+ private JButton bt42=new JButton(".");
+ private JButton bt43=new JButton("=");
+ private JButton bt44=new JButton("+");
+ JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24,
+ bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44};
+
+ public CalculatorUI(String title)
+ {
+ super(title);
+ this.ComponentInit();
+ this.setLocation(300, 200);
+ this.setSize(600, 450);
+ }
+
+ private void ComponentInit()
+ {
+ this.add(textField,BorderLayout.NORTH);
+ textField.setPreferredSize(new Dimension(300,80));
+ textField.setHorizontalAlignment(JTextField.RIGHT);
+ textField.setFont(new Font("",Font.PLAIN,32));
+ textField.setEditable(false);
+
+ this.add(panel,BorderLayout.CENTER);
+ panel.setPreferredSize(new Dimension(300,350));
+ for(int i=0;i<16;i++){
+ jb[i].setFont(new Font("",Font.BOLD,32));
+ panel.add(jb[i]);
+ }
+
+ }
+
+}
diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/giteejwscalculator.jnlp" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/giteejwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..cd8a93138c3901a908c0f88897dc6f37b02d1b04
--- /dev/null
+++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/giteejwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/index.html" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/index.html"
new file mode 100644
index 0000000000000000000000000000000000000000..5d390fe33a76db9fd0cb1290820fe135de65f145
--- /dev/null
+++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/index.html"
@@ -0,0 +1,14 @@
+
+
+
+
+主界面
+
+
+ 本地网站localhost:8080
+ WebStart启动jwscalculator
+
+ 码云服务osgisOne.gitee.io
+ WebStart启动jwscalculator
+
+
diff --git "a/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/jwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8
--- /dev/null
+++ "b/jwscalculator/v0.2\344\270\273\347\225\214\351\235\242/src/main/webapp/jwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/.gitignore" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/.gitignore"
new file mode 100644
index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a
--- /dev/null
+++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/.gitignore"
@@ -0,0 +1,25 @@
+# ---> Java
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/Jenkinsfile" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/Jenkinsfile"
new file mode 100644
index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e
--- /dev/null
+++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/Jenkinsfile"
@@ -0,0 +1,70 @@
+pipeline{
+ agent any
+ stages{
+ stage('编译源码') {
+ steps {
+ bat '''mkdir target
+ cd target
+ mkdir classes
+ cd ..\\src\\main\\java
+ javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes'''
+ }
+ }
+ stage('生成jar ') {
+ steps {
+ bat '''cd target\\classes
+ jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops'''
+ }
+ }
+ stage('生成密钥'){
+ steps{
+ bat '''cd target\\classes
+ keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"'''
+ }
+ }
+ stage('签名jar') {
+ steps {
+ bat '''cd target\\classes
+ jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass
+ move jwscalculator.jar ..\\..\\src\\main\\webapp'''
+ }
+ }
+
+ stage('打包War') {
+ steps {
+ bat '''cd src\\main\\webapp
+ jar cfM jwscalculator.war *'''
+ }
+ }
+ stage('部署tomcat'){
+ steps{
+ deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war'
+ }
+ }
+ stage('本地运行jar'){
+ steps{
+ bat '''cd src\\main\\webapp
+ java -jar jwscalculator.jar'''
+ }
+ }
+ stage('本地运行jnlp'){
+ steps{
+ bat '''cd src\\main\\webapp
+ javaws jwscalculator.jnlp'''
+ }
+ }
+ stage('WebStart'){
+ steps{
+ bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html'
+ }
+ }
+ stage('清除'){
+ steps{
+ bat '''rd /S /Q target
+ cd src\\main\\webapp
+ del jwscalculator.jar
+ del jwscalculator.war'''
+ }
+ }
+ }
+}
diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/README.md" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/README.md"
new file mode 100644
index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858
--- /dev/null
+++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/README.md"
@@ -0,0 +1,2 @@
+# jwscalculator
+
diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/java/gitops/jwscalculator/JwsCalculator.java"
new file mode 100644
index 0000000000000000000000000000000000000000..bbe06ce92b6e028c75934430fa73c88a59dc42d5
--- /dev/null
+++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/java/gitops/jwscalculator/JwsCalculator.java"
@@ -0,0 +1,113 @@
+package gitops.jwscalculator;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+public class JwsCalculator {
+
+ public static void main(String[] args) {
+ CalculatorUI ui=new CalculatorUI("JwsCalculator:+ť¼Ӧ");
+ ui.setVisible(true);
+ ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+}
+
+class CalculatorUI extends JFrame
+{
+ private JTextField textField=new JTextField("0");
+
+ private JPanel panel=new JPanel(new GridLayout(4,4));
+ private JButton bt11=new JButton("7");
+ private JButton bt12=new JButton("8");
+ private JButton bt13=new JButton("9");
+ private JButton bt14=new JButton("/");
+ private JButton bt21=new JButton("4");
+ private JButton bt22=new JButton("5");
+ private JButton bt23=new JButton("6");
+ private JButton bt24=new JButton("*");
+ private JButton bt31=new JButton("1");
+ private JButton bt32=new JButton("2");
+ private JButton bt33=new JButton("3");
+ private JButton bt34=new JButton("-");
+ private JButton bt41=new JButton("0");
+ private JButton bt42=new JButton(".");
+ private JButton bt43=new JButton("=");
+ private JButton bt44=new JButton("+");
+ JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24,
+ bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44};
+
+ class MyHandler implements ActionListener
+ {
+ String str="";
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ JButton source=(JButton) e.getSource();
+
+ if(source==bt43)
+ {
+ str=str+"";
+ textField.setText(str);
+
+ int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION);
+ if(res==JOptionPane.YES_OPTION)
+ {
+ str="";
+ textField.setText("0");
+ }
+ else
+ System.exit(0);
+
+ }
+ else
+ {
+ str=str+source.getText();
+ textField.setText(str);
+ }
+ }
+ }
+ public CalculatorUI(String title)
+ {
+ super(title);
+ this.ComponentInit();
+ MyHandler myHandler=new MyHandler();
+ this.ListenerAdd(myHandler);
+ this.setLocation(300, 200);
+ this.setSize(600, 450);
+ }
+
+ private void ComponentInit()
+ {
+ this.add(textField,BorderLayout.NORTH);
+ textField.setPreferredSize(new Dimension(300,80));
+ textField.setHorizontalAlignment(JTextField.RIGHT);
+ textField.setFont(new Font("",Font.PLAIN,32));
+ textField.setEditable(false);
+
+ this.add(panel,BorderLayout.CENTER);
+ panel.setPreferredSize(new Dimension(300,350));
+ for(int i=0;i<16;i++){
+ jb[i].setFont(new Font("",Font.BOLD,32));
+ panel.add(jb[i]);
+ }
+
+ }
+
+ private void ListenerAdd(MyHandler myHandler)
+ {
+ for(int i=0;i<16;i++){
+ jb[i].addActionListener(myHandler);
+ }
+ }
+
+}
\ No newline at end of file
diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/giteejwscalculator.jnlp" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/giteejwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..cd8a93138c3901a908c0f88897dc6f37b02d1b04
--- /dev/null
+++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/giteejwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/index.html" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/index.html"
new file mode 100644
index 0000000000000000000000000000000000000000..0a0eb17ab5afd1d68d1a52bce3f8101e79440663
--- /dev/null
+++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/index.html"
@@ -0,0 +1,14 @@
+
+
+
+
+按钮事件响应
+
+
+ 本地网站localhost:8080
+ WebStart启动jwscalculator
+
+ 码云服务osgisOne.gitee.io
+ WebStart启动jwscalculator
+
+
diff --git "a/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/jwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8
--- /dev/null
+++ "b/jwscalculator/v0.3\346\214\211\351\222\256\344\272\213\344\273\266\345\223\215\345\272\224/src/main/webapp/jwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/.gitignore" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/.gitignore"
new file mode 100644
index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a
--- /dev/null
+++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/.gitignore"
@@ -0,0 +1,25 @@
+# ---> Java
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/Jenkinsfile" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/Jenkinsfile"
new file mode 100644
index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e
--- /dev/null
+++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/Jenkinsfile"
@@ -0,0 +1,70 @@
+pipeline{
+ agent any
+ stages{
+ stage('编译源码') {
+ steps {
+ bat '''mkdir target
+ cd target
+ mkdir classes
+ cd ..\\src\\main\\java
+ javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes'''
+ }
+ }
+ stage('生成jar ') {
+ steps {
+ bat '''cd target\\classes
+ jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops'''
+ }
+ }
+ stage('生成密钥'){
+ steps{
+ bat '''cd target\\classes
+ keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"'''
+ }
+ }
+ stage('签名jar') {
+ steps {
+ bat '''cd target\\classes
+ jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass
+ move jwscalculator.jar ..\\..\\src\\main\\webapp'''
+ }
+ }
+
+ stage('打包War') {
+ steps {
+ bat '''cd src\\main\\webapp
+ jar cfM jwscalculator.war *'''
+ }
+ }
+ stage('部署tomcat'){
+ steps{
+ deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war'
+ }
+ }
+ stage('本地运行jar'){
+ steps{
+ bat '''cd src\\main\\webapp
+ java -jar jwscalculator.jar'''
+ }
+ }
+ stage('本地运行jnlp'){
+ steps{
+ bat '''cd src\\main\\webapp
+ javaws jwscalculator.jnlp'''
+ }
+ }
+ stage('WebStart'){
+ steps{
+ bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html'
+ }
+ }
+ stage('清除'){
+ steps{
+ bat '''rd /S /Q target
+ cd src\\main\\webapp
+ del jwscalculator.jar
+ del jwscalculator.war'''
+ }
+ }
+ }
+}
diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/README.md" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/README.md"
new file mode 100644
index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858
--- /dev/null
+++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/README.md"
@@ -0,0 +1,2 @@
+# jwscalculator
+
diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/java/gitops/jwscalculator/JwsCalculator.java"
new file mode 100644
index 0000000000000000000000000000000000000000..0489543790e2f2f6336091381127256a0e306a0f
--- /dev/null
+++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/java/gitops/jwscalculator/JwsCalculator.java"
@@ -0,0 +1,155 @@
+package gitops.jwscalculator;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+public class JwsCalculator {
+
+ public static void main(String[] args) {
+ CalculatorUI ui=new CalculatorUI("JwsCalculator:主界面+按钮事件响应+解析字符串");
+ ui.setVisible(true);
+ ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+}
+
+class CalculatorUI extends JFrame
+{
+ private JTextField textField=new JTextField("0");
+
+ private JPanel panel=new JPanel(new GridLayout(4,4));
+ private JButton bt11=new JButton("7");
+ private JButton bt12=new JButton("8");
+ private JButton bt13=new JButton("9");
+ private JButton bt14=new JButton("/");
+ private JButton bt21=new JButton("4");
+ private JButton bt22=new JButton("5");
+ private JButton bt23=new JButton("6");
+ private JButton bt24=new JButton("*");
+ private JButton bt31=new JButton("1");
+ private JButton bt32=new JButton("2");
+ private JButton bt33=new JButton("3");
+ private JButton bt34=new JButton("-");
+ private JButton bt41=new JButton("0");
+ private JButton bt42=new JButton(".");
+ private JButton bt43=new JButton("=");
+ private JButton bt44=new JButton("+");
+ JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24,
+ bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44};
+
+ class MyHandler implements ActionListener
+ {
+ String str="";
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ JButton source=(JButton) e.getSource();
+
+ if(source==bt43)
+ {
+ str=str+"= "+CalcString.getRes(str);
+ textField.setText(str);
+
+ int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION);
+ if(res==JOptionPane.YES_OPTION)
+ {
+ str="";
+ textField.setText("0");
+ }
+ else
+ System.exit(0);
+
+ }
+ else
+ {
+ str=str+source.getText();
+ textField.setText(str);
+ }
+ }
+ }
+ public CalculatorUI(String title)
+ {
+ super(title);
+ this.ComponentInit();
+ MyHandler myHandler=new MyHandler();
+ this.ListenerAdd(myHandler);
+ this.setLocation(300, 200);
+ this.setSize(600, 450);
+ }
+
+ private void ComponentInit()
+ {
+ this.add(textField,BorderLayout.NORTH);
+ textField.setPreferredSize(new Dimension(300,80));
+ textField.setHorizontalAlignment(JTextField.RIGHT);
+ textField.setFont(new Font("楷体",Font.PLAIN,32));
+ textField.setEditable(false);
+
+ this.add(panel,BorderLayout.CENTER);
+ panel.setPreferredSize(new Dimension(300,350));
+ for(int i=0;i<16;i++){
+ jb[i].setFont(new Font("楷体",Font.BOLD,32));
+ panel.add(jb[i]);
+ }
+
+ }
+
+ private void ListenerAdd(MyHandler myHandler)
+ {
+ for(int i=0;i<16;i++){
+ jb[i].addActionListener(myHandler);
+ }
+ }
+
+}
+class CalcString
+{
+ public static double getRes(String str)
+ {
+ String s="";
+ double n1 = 0,n2,res = 0;
+ char op = 0;
+
+ for(int i=0;i
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/index.html" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/index.html"
new file mode 100644
index 0000000000000000000000000000000000000000..e02b5d732d1e05feb0f505387dc3cb0125260d07
--- /dev/null
+++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/index.html"
@@ -0,0 +1,14 @@
+
+
+
+
+解析字符串
+
+
+ 本地网站localhost:8080
+ WebStart启动jwscalculator
+
+ 码云服务osgisOne.gitee.io
+ WebStart启动jwscalculator
+
+
diff --git "a/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/jwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8
--- /dev/null
+++ "b/jwscalculator/v0.4\350\247\243\346\236\220\345\255\227\347\254\246\344\270\262/src/main/webapp/jwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/.gitignore" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/.gitignore"
new file mode 100644
index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a
--- /dev/null
+++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/.gitignore"
@@ -0,0 +1,25 @@
+# ---> Java
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/Jenkinsfile" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/Jenkinsfile"
new file mode 100644
index 0000000000000000000000000000000000000000..9e9c22384f93bdb180d0b1e3f5a7d6617a8f7b2e
--- /dev/null
+++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/Jenkinsfile"
@@ -0,0 +1,70 @@
+pipeline{
+ agent any
+ stages{
+ stage('编译源码') {
+ steps {
+ bat '''mkdir target
+ cd target
+ mkdir classes
+ cd ..\\src\\main\\java
+ javac gitops\\jwscalculator\\*.java -d ..\\..\\..\\target\\classes'''
+ }
+ }
+ stage('生成jar ') {
+ steps {
+ bat '''cd target\\classes
+ jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops'''
+ }
+ }
+ stage('生成密钥'){
+ steps{
+ bat '''cd target\\classes
+ keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"'''
+ }
+ }
+ stage('签名jar') {
+ steps {
+ bat '''cd target\\classes
+ jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass
+ move jwscalculator.jar ..\\..\\src\\main\\webapp'''
+ }
+ }
+
+ stage('打包War') {
+ steps {
+ bat '''cd src\\main\\webapp
+ jar cfM jwscalculator.war *'''
+ }
+ }
+ stage('部署tomcat'){
+ steps{
+ deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war'
+ }
+ }
+ stage('本地运行jar'){
+ steps{
+ bat '''cd src\\main\\webapp
+ java -jar jwscalculator.jar'''
+ }
+ }
+ stage('本地运行jnlp'){
+ steps{
+ bat '''cd src\\main\\webapp
+ javaws jwscalculator.jnlp'''
+ }
+ }
+ stage('WebStart'){
+ steps{
+ bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html'
+ }
+ }
+ stage('清除'){
+ steps{
+ bat '''rd /S /Q target
+ cd src\\main\\webapp
+ del jwscalculator.jar
+ del jwscalculator.war'''
+ }
+ }
+ }
+}
diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/README.md" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/README.md"
new file mode 100644
index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858
--- /dev/null
+++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/README.md"
@@ -0,0 +1,2 @@
+# jwscalculator
+
diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/java/gitops/jwscalculator/JwsCalculator.java"
new file mode 100644
index 0000000000000000000000000000000000000000..420a9cc19f0bf24c24a87b587cf618df58670436
--- /dev/null
+++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/java/gitops/jwscalculator/JwsCalculator.java"
@@ -0,0 +1,162 @@
+package gitops.jwscalculator;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+public class JwsCalculator {
+
+ public static void main(String[] args) {
+ CalculatorUI ui=new CalculatorUI("JwsCalculator:չ");
+ ui.setVisible(true);
+ ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+}
+
+class CalculatorUI extends JFrame
+{
+ private JTextField textField=new JTextField("0");
+
+ private JPanel panel=new JPanel(new GridLayout(5,4));
+ private JButton bt11=new JButton("7");
+ private JButton bt12=new JButton("8");
+ private JButton bt13=new JButton("9");
+ private JButton bt14=new JButton("/");
+ private JButton bt21=new JButton("4");
+ private JButton bt22=new JButton("5");
+ private JButton bt23=new JButton("6");
+ private JButton bt24=new JButton("*");
+ private JButton bt31=new JButton("1");
+ private JButton bt32=new JButton("2");
+ private JButton bt33=new JButton("3");
+ private JButton bt34=new JButton("-");
+ private JButton bt41=new JButton("0");
+ private JButton bt42=new JButton(".");
+ private JButton bt43=new JButton("=");
+ private JButton bt44=new JButton("+");
+ private JButton bt51=new JButton("%");
+ private JButton bt52=new JButton("^");
+ private JButton bt53=new JButton("@");
+ private JButton bt54=new JButton("~");
+ JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24,
+ bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44,bt51,bt52,bt53,bt54};
+
+ class MyHandler implements ActionListener
+ {
+ String str="";
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ JButton source=(JButton) e.getSource();
+
+ if(source==bt43)
+ {
+ str=str+"= "+CalcString.getRes(str);
+ textField.setText(str);
+
+ int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION);
+ if(res==JOptionPane.YES_OPTION)
+ {
+ str="";
+ textField.setText("0");
+ }
+ else
+ System.exit(0);
+
+ }
+ else
+ {
+ str=str+source.getText();
+ textField.setText(str);
+ }
+ }
+ }
+ public CalculatorUI(String title)
+ {
+ super(title);
+ this.ComponentInit();
+ MyHandler myHandler=new MyHandler();
+ this.ListenerAdd(myHandler);
+ this.setLocation(300, 200);
+ this.setSize(600, 450);
+ }
+
+ private void ComponentInit()
+ {
+ this.add(textField,BorderLayout.NORTH);
+ textField.setPreferredSize(new Dimension(300,80));
+ textField.setHorizontalAlignment(JTextField.RIGHT);
+ textField.setFont(new Font("",Font.PLAIN,32));
+ textField.setEditable(false);
+
+ this.add(panel,BorderLayout.CENTER);
+ panel.setPreferredSize(new Dimension(300,350));
+ for(int i=0;i<20;i++){
+ jb[i].setFont(new Font("",Font.BOLD,32));
+ panel.add(jb[i]);
+ }
+
+ }
+
+ private void ListenerAdd(MyHandler myHandler)
+ {
+ for(int i=0;i<20;i++){
+ jb[i].addActionListener(myHandler);
+ }
+ }
+
+}
+class CalcString
+{
+ public static double getRes(String str)
+ {
+ String s="";
+ double n1 = 0,n2,res = 0;
+ char op = 0;
+
+ for(int i=0;i
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/index.html" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/index.html"
new file mode 100644
index 0000000000000000000000000000000000000000..cca6da2316b4b2508db396d32b3b13e9b245fdeb
--- /dev/null
+++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/index.html"
@@ -0,0 +1,14 @@
+
+
+
+
+功能扩展
+
+
+ 本地网站localhost:8080
+ WebStart启动jwscalculator
+
+ 码云服务osgisOne.gitee.io
+ WebStart启动jwscalculator
+
+
diff --git "a/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/jwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8
--- /dev/null
+++ "b/jwscalculator/v0.5\345\212\237\350\203\275\346\211\251\345\261\225/src/main/webapp/jwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/.gitignore" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/.gitignore"
new file mode 100644
index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a
--- /dev/null
+++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/.gitignore"
@@ -0,0 +1,25 @@
+# ---> Java
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/Jenkinsfile" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/Jenkinsfile"
new file mode 100644
index 0000000000000000000000000000000000000000..2aae3473e1597253caca596cf266b0fefe0c8ba8
--- /dev/null
+++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/Jenkinsfile"
@@ -0,0 +1,70 @@
+pipeline{
+ agent any
+ stages{
+ stage('编译源码') {
+ steps {
+ bat '''mkdir target
+ cd target
+ mkdir classes
+ cd ..\\src\\main\\java
+ javac gitops\\jwscalculator\\*.java gitops\\jwscalculator\\sdk\\*.java gitops\\jwscalculator\\plugins\\*.java -d ..\\..\\..\\target\\classes'''
+ }
+ }
+ stage('生成jar ') {
+ steps {
+ bat '''cd target\\classes
+ jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops'''
+ }
+ }
+ stage('生成密钥'){
+ steps{
+ bat '''cd target\\classes
+ keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"'''
+ }
+ }
+ stage('签名jar') {
+ steps {
+ bat '''cd target\\classes
+ jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass
+ move jwscalculator.jar ..\\..\\src\\main\\webapp'''
+ }
+ }
+
+ stage('打包War') {
+ steps {
+ bat '''cd src\\main\\webapp
+ jar cfM jwscalculator.war *'''
+ }
+ }
+ stage('部署tomcat'){
+ steps{
+ deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war'
+ }
+ }
+ stage('本地运行jar'){
+ steps{
+ bat '''cd src\\main\\webapp
+ java -jar jwscalculator.jar'''
+ }
+ }
+ stage('本地运行jnlp'){
+ steps{
+ bat '''cd src\\main\\webapp
+ javaws jwscalculator.jnlp'''
+ }
+ }
+ stage('WebStart'){
+ steps{
+ bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html'
+ }
+ }
+ stage('清除'){
+ steps{
+ bat '''rd /S /Q target
+ cd src\\main\\webapp
+ del jwscalculator.jar
+ del jwscalculator.war'''
+ }
+ }
+ }
+}
diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/README.md" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/README.md"
new file mode 100644
index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858
--- /dev/null
+++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/README.md"
@@ -0,0 +1,2 @@
+# jwscalculator
+
diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/JwsCalculator.java"
new file mode 100644
index 0000000000000000000000000000000000000000..043714d8570e4ea13d7cca58380034cccde60a05
--- /dev/null
+++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/JwsCalculator.java"
@@ -0,0 +1,182 @@
+package gitops.jwscalculator;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import gitops.jwscalculator.sdk.Calculate;
+import gitops.jwscalculator.plugin.Add;
+import gitops.jwscalculator.plugin.Sub;
+import gitops.jwscalculator.plugin.Mul;
+import gitops.jwscalculator.plugin.Div;
+import gitops.jwscalculator.plugin.Gcd;
+import gitops.jwscalculator.plugin.Mod;
+import gitops.jwscalculator.plugin.Pow;
+import gitops.jwscalculator.plugin.Lcm;
+
+public class JwsCalculator {
+
+ public static void main(String[] args) {
+ CalculatorUI ui=new CalculatorUI("JwsCalculator:ܹع");
+ ui.setVisible(true);
+ ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+}
+
+class CalculatorUI extends JFrame
+{
+ private JTextField textField=new JTextField("0");
+
+ private JPanel panel=new JPanel(new GridLayout(5,4));
+ private JButton bt11=new JButton("7");
+ private JButton bt12=new JButton("8");
+ private JButton bt13=new JButton("9");
+ private JButton bt14=new JButton("/");
+ private JButton bt21=new JButton("4");
+ private JButton bt22=new JButton("5");
+ private JButton bt23=new JButton("6");
+ private JButton bt24=new JButton("*");
+ private JButton bt31=new JButton("1");
+ private JButton bt32=new JButton("2");
+ private JButton bt33=new JButton("3");
+ private JButton bt34=new JButton("-");
+ private JButton bt41=new JButton("0");
+ private JButton bt42=new JButton(".");
+ private JButton bt43=new JButton("=");
+ private JButton bt44=new JButton("+");
+ private JButton bt51=new JButton("%");
+ private JButton bt52=new JButton("^");
+ private JButton bt53=new JButton("D(Gcd)");
+ private JButton bt54=new JButton("m(Lcm)");
+ JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24,
+ bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44,bt51,bt52,bt53,bt54};
+
+ class MyHandler implements ActionListener
+ {
+ String str="";
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ JButton source=(JButton) e.getSource();
+
+ if(source==bt43)
+ {
+ str=str+"= "+CalcString.getRes(str);
+ textField.setText(str);
+
+ int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION);
+ if(res==JOptionPane.YES_OPTION)
+ {
+ str="";
+ textField.setText("0");
+ }
+ else
+ System.exit(0);
+
+ }
+ else
+ {
+ str=str+source.getText();
+ textField.setText(str);
+ }
+ }
+ }
+ public CalculatorUI(String title)
+ {
+ super(title);
+ this.ComponentInit();
+ MyHandler myHandler=new MyHandler();
+ this.ListenerAdd(myHandler);
+ this.setLocation(300, 200);
+ this.setSize(600, 450);
+ }
+
+ private void ComponentInit()
+ {
+ this.add(textField,BorderLayout.NORTH);
+ textField.setPreferredSize(new Dimension(300,80));
+ textField.setHorizontalAlignment(JTextField.RIGHT);
+ textField.setFont(new Font("",Font.PLAIN,32));
+ textField.setEditable(false);
+
+ this.add(panel,BorderLayout.CENTER);
+ panel.setPreferredSize(new Dimension(300,350));
+ for(int i=0;i<20;i++){
+ jb[i].setFont(new Font("",Font.BOLD,32));
+ panel.add(jb[i]);
+ }
+
+ }
+
+ private void ListenerAdd(MyHandler myHandler)
+ {
+ for(int i=0;i<20;i++){
+ jb[i].addActionListener(myHandler);
+ }
+ }
+
+}
+class CalcString
+{
+ public static double getRes(String str)
+ {
+ String s="";
+ double n1 = 0,n2,res = 0;
+ char op = 0;
+
+ for(int i=0;in || 0>m){
+ System.out.println("ERROR: ! greater than 0!");
+ return 0.0;
+ }
+ result= factorial((int)m);
+ System.out.println(m+"!="+factorial((int)m));
+ System.out.println(n+"!="+factorial((int)n));
+ return result;
+ }
+ private int factorial(int a){
+ if(0>a||a>=13){
+ System.out.println("Intger Factorial Range is [0 12],13! =6227020800,13! !=1932053504");
+ return 0;
+ }
+ if(0==a)
+ return 1;
+ int f=1;
+ for(int i=1;i<=a;i++)
+ f=f*i;
+ return f;
+ }
+}
diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/plugins/Gcd.java" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/plugins/Gcd.java"
new file mode 100644
index 0000000000000000000000000000000000000000..585410fb3b75baacfafca722a76e19d5415dfaac
--- /dev/null
+++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/java/gitops/jwscalculator/plugins/Gcd.java"
@@ -0,0 +1,23 @@
+package gitops.jwscalculator.plugin;
+
+import gitops.jwscalculator.sdk.ICalculate;
+
+public class Gcd implements ICalculate{
+
+ private double result;
+ public double calculate(double m,double n){
+ int a=(int)m, b=(int)n;
+ if(a
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/index.html" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/index.html"
new file mode 100644
index 0000000000000000000000000000000000000000..dd298932de6f2c5b03514602bdacce36c8ab18a0
--- /dev/null
+++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/index.html"
@@ -0,0 +1,14 @@
+
+
+
+
+架构重构
+
+
+ 本地网站localhost:8080
+ WebStart启动jwscalculator
+
+ 码云服务osgisOne.gitee.io
+ WebStart启动jwscalculator
+
+
diff --git "a/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/jwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8
--- /dev/null
+++ "b/jwscalculator/v0.9\346\236\266\346\236\204\351\207\215\346\236\204/src/main/webapp/jwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/.gitignore" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/.gitignore"
new file mode 100644
index 0000000000000000000000000000000000000000..84adb3f8b7a15d32b9778b6953f825bb0b02c24a
--- /dev/null
+++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/.gitignore"
@@ -0,0 +1,25 @@
+# ---> Java
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/Jenkinsfile" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/Jenkinsfile"
new file mode 100644
index 0000000000000000000000000000000000000000..83d9a23617cb8b48a820de13e45a5f51d4e36d1d
--- /dev/null
+++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/Jenkinsfile"
@@ -0,0 +1,76 @@
+pipeline{
+ agent any
+ stages{
+ stage('编译源码') {
+ steps {
+ bat '''mkdir target
+ cd target
+ mkdir classes
+ cd ..\\src\\main\\java
+ javac gitops\\jwscalculator\\*.java gitops\\jwscalculator\\sdk\\*.java gitops\\jwscalculator\\plugins\\*.java -d ..\\..\\..\\target\\classes'''
+ }
+ }
+ stage('生成jar ') {
+ steps {
+ bat '''cd target\\classes
+ jar cfe jwscalculator.jar gitops.jwscalculator.JwsCalculator gitops'''
+ }
+ }
+ stage('生成密钥'){
+ steps{
+ bat '''cd target\\classes
+ keytool -genkey -alias mykey -keystore mykeystore.pfx -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"'''
+ }
+ }
+ stage('签名jar') {
+ steps {
+ bat '''cd target\\classes
+ jarsigner -keystore myKeystore.pfx jwscalculator.jar mykey -storepass mystorepass
+ move jwscalculator.jar ..\\..\\src\\main\\webapp'''
+ }
+ }
+ stage('JavaPackager生成jar、exe和msi'){
+ steps{
+ bat '''javapackager -makeall -appclass gitops.jwscalculator.JwsCalculator -name jwscalculator
+ move dist\\bundles\\jwscalculator-1.0.exe src\\main\\webapp
+ move dist\\bundles\\jwscalculator-1.0.msi src\\main\\webapp'''
+ }
+ }
+ stage('打包War') {
+ steps {
+ bat '''cd src\\main\\webapp
+ jar cfM jwscalculator.war *'''
+ }
+ }
+ stage('部署tomcat'){
+ steps{
+ deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://localhost:8080')], contextPath: '/jwscalculator', war: 'src/main/webapp/jwscalculator.war'
+ }
+ }
+ stage('本地运行jar'){
+ steps{
+ bat '''cd src\\main\\webapp
+ java -jar jwscalculator.jar'''
+ }
+ }
+ stage('本地运行jnlp'){
+ steps{
+ bat '''cd src\\main\\webapp
+ javaws jwscalculator.jnlp'''
+ }
+ }
+ stage('WebStart'){
+ steps{
+ bat '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" http://localhost:8080/jwscalculator/index.html'
+ }
+ }
+ stage('清除'){
+ steps{
+ bat '''rd /S /Q target compiled dist
+ cd src\\main\\webapp
+ del jwscalculator.jar
+ del jwscalculator.war'''
+ }
+ }
+ }
+}
diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/README.md" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/README.md"
new file mode 100644
index 0000000000000000000000000000000000000000..f23b5b1e9349ee2ebbd8a1e76f4776820daed858
--- /dev/null
+++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/README.md"
@@ -0,0 +1,2 @@
+# jwscalculator
+
diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/jwscalculator.eapx" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/jwscalculator.eapx"
new file mode 100644
index 0000000000000000000000000000000000000000..3513fa4db7ea8ec233c931a6159633bd865fa54c
Binary files /dev/null and "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/jwscalculator.eapx" differ
diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/JwsCalculator.java" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/JwsCalculator.java"
new file mode 100644
index 0000000000000000000000000000000000000000..3c81822ce9c2921551e77c78226813f843eb5838
--- /dev/null
+++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/JwsCalculator.java"
@@ -0,0 +1,185 @@
+package gitops.jwscalculator;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import gitops.jwscalculator.sdk.Calculate;
+import gitops.jwscalculator.plugin.Add;
+import gitops.jwscalculator.plugin.Sub;
+import gitops.jwscalculator.plugin.Mul;
+import gitops.jwscalculator.plugin.Div;
+import gitops.jwscalculator.plugin.Gcd;
+import gitops.jwscalculator.plugin.Mod;
+import gitops.jwscalculator.plugin.Pow;
+import gitops.jwscalculator.plugin.Lcm;
+
+public class JwsCalculator {
+
+ public static void main(String[] args) {
+
+ CalculatorUI ui=new CalculatorUI("JwsCalculator:¼ܹ¹");
+ ui.setVisible(true);
+ ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+}
+
+class CalculatorUI extends JFrame
+{
+ private JTextField textField=new JTextField("0");
+
+ private JPanel panel=new JPanel(new GridLayout(5,4));
+ private JButton bt11=new JButton("7");
+ private JButton bt12=new JButton("8");
+ private JButton bt13=new JButton("9");
+ private JButton bt14=new JButton("/");
+ private JButton bt21=new JButton("4");
+ private JButton bt22=new JButton("5");
+ private JButton bt23=new JButton("6");
+ private JButton bt24=new JButton("*");
+ private JButton bt31=new JButton("1");
+ private JButton bt32=new JButton("2");
+ private JButton bt33=new JButton("3");
+ private JButton bt34=new JButton("-");
+ private JButton bt41=new JButton("0");
+ private JButton bt42=new JButton(".");
+ private JButton bt43=new JButton("=");
+ private JButton bt44=new JButton("+");
+ private JButton bt51=new JButton("%");
+ private JButton bt52=new JButton("^");
+ private JButton bt53=new JButton("D");
+ private JButton bt54=new JButton("m");
+ JButton jb[]={bt11,bt12,bt13,bt14,bt21,bt22,bt23,bt24,
+ bt31,bt32,bt33,bt34,bt41,bt42,bt43,bt44,bt51,bt52,bt53,bt54};
+
+ class MyHandler implements ActionListener
+ {
+ String str="";
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ JButton source=(JButton) e.getSource();
+
+ if(source==bt43)
+ {
+ str=str+"= "+CalcString.getRes(str);
+ textField.setText(str);
+
+ int res=JOptionPane.showConfirmDialog(panel, "Calculated, Goon ?", "",JOptionPane.YES_NO_OPTION);
+ if(res==JOptionPane.YES_OPTION)
+ {
+ str="";
+ textField.setText("0");
+ }
+ else
+ System.exit(0);
+
+ }
+ else
+ {
+ str=str+source.getText();
+ textField.setText(str);
+ }
+ }
+ }
+ public CalculatorUI(String title)
+ {
+ super(title);
+ this.ComponentInit();
+ MyHandler myHandler=new MyHandler();
+ this.ListenerAdd(myHandler);
+ this.setLocation(300, 200);
+ this.setSize(600, 450);
+ }
+
+ private void ComponentInit()
+ {
+ this.add(textField,BorderLayout.NORTH);
+ textField.setPreferredSize(new Dimension(300,80));
+ textField.setHorizontalAlignment(JTextField.RIGHT);
+ textField.setFont(new Font("楷体",Font.PLAIN,32));
+ textField.setEditable(false);
+
+ this.add(panel,BorderLayout.CENTER);
+ panel.setPreferredSize(new Dimension(300,350));
+
+ for(int i=0;i<20;i++){
+ jb[i].setFont(new Font("",Font.BOLD,32));
+ panel.add(jb[i]);
+ }
+
+ }
+
+ private void ListenerAdd(MyHandler myHandler)
+ {
+ for(int i=0;i<20;i++){
+ jb[i].addActionListener(myHandler);
+ }
+ }
+
+}
+class CalcString
+{
+ public static double getRes(String str)
+ {
+ String s="";
+ double n1 = 0,n2,res = 0;
+ char op = 0;
+
+ for(int i=0;in || 0>m){
+ System.out.println("ERROR: ! greater than 0!");
+ return 0.0;
+ }
+ result= factorial((int)m);
+ System.out.println(m+"!="+factorial((int)m));
+ System.out.println(n+"!="+factorial((int)n));
+ return result;
+ }
+ private int factorial(int a){
+ if(0>a||a>=13){
+ System.out.println("Intger Factorial Range is [0 12],13! =6227020800,13! !=1932053504");
+ return 0;
+ }
+ if(0==a)
+ return 1;
+ int f=1;
+ for(int i=1;i<=a;i++)
+ f=f*i;
+ return f;
+ }
+}
diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/plugins/Gcd.java" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/plugins/Gcd.java"
new file mode 100644
index 0000000000000000000000000000000000000000..585410fb3b75baacfafca722a76e19d5415dfaac
--- /dev/null
+++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/java/gitops/jwscalculator/plugins/Gcd.java"
@@ -0,0 +1,23 @@
+package gitops.jwscalculator.plugin;
+
+import gitops.jwscalculator.sdk.ICalculate;
+
+public class Gcd implements ICalculate{
+
+ private double result;
+ public double calculate(double m,double n){
+ int a=(int)m, b=(int)n;
+ if(a
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/index.html" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/index.html"
new file mode 100644
index 0000000000000000000000000000000000000000..fa34d7bfb47f6508ad95052927784a129b31d850
--- /dev/null
+++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/index.html"
@@ -0,0 +1,22 @@
+
+
+
+
+新架构新功能
+
+
+ Java WebStart计算器:本地网站localhost:8080
+ WebStart启动jwscalculator
+
+ 下载双击jwscalculator-1.0.exe
+
+ 下载安装程序菜单执行jwscalculator-1.0.msi
+
+ Java WebStart计算器:码云服务osgisOne.gitee.io
+ WebStart启动jwscalculator
+
+ 下载双击jwscalculator-1.0.exe
+
+ 下载安装程序菜单执行jwscalculator-1.0.msi
+
+
diff --git "a/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/jwscalculator.jnlp" "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/jwscalculator.jnlp"
new file mode 100644
index 0000000000000000000000000000000000000000..53d49791ce463fbc0ea2bff651e8003a6fab0da8
--- /dev/null
+++ "b/jwscalculator/v1.0\346\226\260\346\236\266\346\236\204\346\226\260\345\212\237\350\203\275/src/main/webapp/jwscalculator.jnlp"
@@ -0,0 +1,19 @@
+
+
+
+ GitOps Java WebStart GuiCalculator
+ czldl
+ JWS to Run GuiCalculator
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file