gliffy-confluence-plugin-9.1.2 플러그 인 튜 토리 얼 상세 설명

1.다운로드
2、스트레스 해소 후 Gliffy License Manager.class 찾기

3.Gliffy License Manager.class 를 역 컴 파일 하여 원래 의 실현 을 교체 하고 class 로 재 컴 파일 한 후 교체 합 니 다.

package com.gliffy.plugin.confluence.license;
 
import com.atlassian.confluence.setup.BootstrapManager;
import com.atlassian.confluence.setup.settings.CoreFeaturesManager;
import com.atlassian.upm.api.license.PluginLicenseManager;
import com.atlassian.upm.api.license.entity.LicenseError;
import com.atlassian.upm.api.license.entity.LicenseType;
import com.atlassian.upm.api.license.entity.PluginLicense;
import com.atlassian.upm.api.util.Option;
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.ReadableInstant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
public class GliffyLicenseManager {
 private static final Logger logger = LoggerFactory.getLogger(GliffyLicenseManager.class);
 private PluginLicenseManager licenseManager;
 private CoreFeaturesManager coreFeaturesManager;
 private BootstrapManager bootstrapManager;
 
 public GliffyLicenseManager(PluginLicenseManager licenseManager, CoreFeaturesManager coreFeaturesManager, BootstrapManager bootstrapManager) {
 this.licenseManager = licenseManager;
 this.coreFeaturesManager = coreFeaturesManager;
 this.bootstrapManager = bootstrapManager;
 }
 
 /*private PluginLicense fetchLicense() {
 PluginLicense license = null;
 Option<PluginLicense> licenseOption = this.licenseManager.getLicense();
 if (licenseOption.isDefined()) {
 license = (PluginLicense)licenseOption.get();
 } else {
 logger.debug("no Gliffy license found");
 }
 return license;
 }*/
 
 public boolean isValid() {
 /*PluginLicense license = this.fetchLicense();
 return license != null ? license.isValid() : false;*/
 
 return true;
 }
 
 public boolean isSupported() {
 /*PluginLicense license = this.fetchLicense();
 if (license != null) {
 return !license.isMaintenanceExpired();
 } else {
 return false;
 }*/
 
 return true;
 }
 
 public boolean isEvaluation() {
 /*PluginLicense license = this.fetchLicense();
 return license != null ? license.isEvaluation() : false;*/
 
 return false;
 }
 
 public String getLicenseError() {
 /*PluginLicense license = this.fetchLicense();
 if (license != null) {
 Option<LicenseError> errorOption = license.getError();
 if (errorOption.isDefined()) {
 return ((LicenseError)errorOption.get()).toString();
 }
 }
 return null;*/
 
 return null;
 }
 
 public String getSEN() {
 /*PluginLicense license = this.fetchLicense();
 if (license != null) {
 Option<String> customerIdOption = license.getSupportEntitlementNumber();
 if (customerIdOption.isDefined()) {
 return (String)customerIdOption.get();
 }
 }
 return null;*/
 
 return null;
 }
 
 public boolean isCloud() {
 return this.coreFeaturesManager.isOnDemand();
 }
 
 public LicenseType getLicenseType() {
 /*PluginLicense license = this.fetchLicense();
 return license != null ? license.getLicenseType() : null;*/
 
 return LicenseType.COMMERCIAL;
 }
 
 public int getDaysToExpiration() {
 /*PluginLicense license = this.fetchLicense();
 if (license != null) {
 Option<DateTime> expiryDateOption = license.getExpiryDate();
 if (expiryDateOption.isDefined()) {
 return Days.daysBetween(new DateTime(), (ReadableInstant)expiryDateOption.get()).getDays();
 }
 }
 return 0;*/
 
 return Integer.MAX_VALUE;
 }
 
 public Integer getUserCount() {
 /*PluginLicense license = this.fetchLicense();
 if (license != null) {
 Option<Integer> qtyUsersOption = license.getEdition();
 if (qtyUsersOption.isDefined()) {
 return (Integer)qtyUsersOption.get();
 }
 }
 return null;*/
 
 return Integer.MAX_VALUE;
 }
 
 public boolean isFree() {
 /*if (this.fetchLicense() == null) {
 return false;
 } else {
 LicenseType type = this.getLicenseType();
 return type.equals(LicenseType.COMMUNITY) || type.equals(LicenseType.NON_PROFIT) || type.equals(LicenseType.OPEN_SOURCE);
 }*/
 
 return false;
 }
 
 public boolean isCommercial() {
 return this.isValid() && this.isSupported() && !this.isEvaluation() && !this.isFree();
 }
 
 public long getLicenseInstallUnixTimestamp() {
 /*PluginLicense license = this.fetchLicense();
 return license != null ? license.getCreationDate().getMillis() / 1000L : 0L;*/
 
 return 0L;
 }
 
 public String getLicenseManagementURL() {
 /*return this.bootstrapManager.getWebAppContextPath() + "/plugins/servlet/upm#manage/com.gliffy.integration.confluence";*/
 
 return "";
 }
 
 public boolean isNonAnalyticsLicenseType() {
 /*LicenseType licenseType = this.getLicenseType();
 boolean isEvalCloudInstance = this.isCloud() && (this.isEvaluation() || licenseType == null);
 return isEvalCloudInstance || LicenseType.DEVELOPER.equals(licenseType) || LicenseType.TESTING.equals(licenseType) || LicenseType.DEMONSTRATION.equals(licenseType);*/
 
 return false;
 }
}
지식 포인트 확장:Gliffy confluence 플러그 인의 해독
Gliffy 는 온라인 으로 프로 세 스 를 그 리 는 도구 이거 나 쉽게 말 하면 Gliffy 는 웹 판 Visio 입 니 다.Gliffy 는 사용자 체험 이 매우 좋 고 브 라 우 저 를 켜 면 사용 할 수 있어 사용 하기에 매우 편리 합 니 다.Gliffy 는 confluence 의 플러그 인 버 전 을 동시에 출시 했다.플러그 인 을 설치 한 후 confluence 에서 프로 세 스 그림 을 편리 하 게 편집 하고 삽입 할 수 있 습 니 다.
동료 들 은 글 리 피 에 게 군침 을 흘 렸 지만 글 리 피 는 아직 좀 비싸다.confluence 플러그 인 버 전,500 사용자 의 허 가 는 2000 달러 에 판매 합 니 다.
동료 들 의 회유 가 믿 기지 않 지만 가끔 은 일 을 하 는 것 도 재 미 있 으 니 손 을 쓰 세 요.
주:다음은 단지 몇 가지 관건 을 간단하게 설명 할 뿐 입 니 다.만약 당신 이 자바 에 대해 아무것도 모른다 면 그만 두 세 요.
자바 응용 해 제 는 일반적으로 파일 을 역 컴 파일 하고 인증 부분의 처 리 를 찾 아 인증 결 과 를 true 로 되 돌려 주 는 것 입 니 다.자바 의 역 컴 파일 도구 추천gliffy-confluence-plugin-9.1.2.obr
Gliffy 의 jar 가방 은 비교적 크 지만 자바 코드 는 많 지 않 습 니 다.그리고 Gliffy 는 군 자 를 모방 하여 소인 을 막 지 않 는 방법 을 사 용 했 습 니 다.안에 있 는 자바 코드 는 헷 갈 리 지 않 았 습 니 다.코드 에 매우 눈 에 띄 는 디 렉 터 리 가 있 습 니 다.간단 한 분석 을 하면 우 리 는 진정한 관건 을 찾 을 수 있다.Simple License Manager.자바.
Gliffy 의 이름 은 여전히 매우 규범 적 이 라 고 말 할 수 밖 에 없다.함수 이름 을 단서 로 하면 우리 가 원 하 는 함수 valid License Values 를 쉽게 찾 을 수 있 습 니 다.간단 하고 거 친 함수 반환 값 을 true 로 바 꿉 니 다.플러그 인 을 포장 하고 다시 설치 합 니 다.
만약 문제 가 이렇게 해결 된다 면,그것 도 순 조 롭 지 못 한 것 이 예 사 롭 지 않다.성공 적 으로 설치 할 수 있 지만 운행 할 때 이상 한 것들 을 던 져 낸다.Gliffy 의 관리 인터페이스 에 들 어가 보 세 요.여전히 이상 합 니 다.인증 결 과 를 true 로 강제로 설정 하지만 일부 지역 에 서 는 license 의 만 료 날짜 등 정 보 를 받 아야 합 니 다.관련 데 이 터 를 읽 지 못 해 바로 이상 이 생 겼 다.
그렇다면 먼저 license 정 보 를 시스템 에 기록 해 야 합 니 다.
validLicense Values 를 복원 한 다음 license 를 설정 한 함수 인 install License 를 찾 습 니 다.함수 에 license 인증 과 관련 된 코드 를 주석 하여 시스템 이 인증 결 과 를 무시 한 상태 에서 등록 정 보 를 강제로 기록 하도록 합 니 다.수 정 된 자바 파일 은 실행 할 때 getHosted Status 의 가상 함수 오 류 를 보고 합 니 다.이치 대로 말 하면 이 함 수 는 하위 클래스 에서 다시 쓸 것 이다.그러나 우 리 는 우선 이렇게 많 든 지 간 에 그것 을 일반 함수 로 수정 하고 바로 0 으로 돌아간다.
다시 포장 하여 설치 한 다음 에 Gliffy 의 관리 인터페이스 에 들 어가 license 정 보 를 마음대로 작성 한 다음 에 저장 합 니 다.저장 은 성 공 했 지만 인증 은 실 패 했 습 니 다.validLicense Values 함 수 를 수정 하고 다시 포장 하여 설치 합 니 다.이번에 우 리 는 등록 정 보 를 썼 기 때문에 이전의 빈 포인터 이상 이 다시 나타 나 지 않 을 것 이다.
글 리 피 즐 기세 요.
주:Gliffy 는 정말 좋 은 물건 입 니 다.마음 에 드 시 면 회사 에 돈 을 내 도록 설득 하 세 요.
여기 서 gliffy-confluence-plugin-9.1.2 튜 토리 얼 에 대한 상세 한 설명 을 소개 합 니 다.더 많은 gliffy-confluence-plugin-9.1.2 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기