diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 07b5274..a4b3937 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,6 +12,21 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Check deprecation date + run: | + DEPRECATION_DATE="2026-08-31" + CURRENT_DATE=$(date +%Y-%m-%d) + + if [[ "$CURRENT_DATE" > "$DEPRECATION_DATE" ]]; then + echo "ERROR: SDK deprecation date has passed ($DEPRECATION_DATE)" + echo "Publishing to Maven Central is disabled after the deprecation date." + exit 1 + fi + + DAYS_REMAINING=$(( ($(date -d "$DEPRECATION_DATE" +%s) - $(date +%s)) / 86400 )) + echo "Days until deprecation: $DAYS_REMAINING" + echo "Publishing allowed" + - name: Import GPG key run: | echo "${{ secrets.MAVEN_GPG_PRIVATE_KEY }}" | gpg --batch --import diff --git a/DEPRECATION.md b/DEPRECATION.md new file mode 100644 index 0000000..1f36ff1 --- /dev/null +++ b/DEPRECATION.md @@ -0,0 +1,192 @@ +# Analytics SDK Java - Deprecation Notice + +**Status**: ⚠️ **DEPRECATED** - Effective August 31, 2026 + +--- + +## Important Notice + +The **FactSet Analytics SDK for Java** (`com.factset.analyticsapi:engines-sdk`) is **officially deprecated** as of **August 31, 2026**. + +### Timeline + +| Date | Status | Action | +|------|--------|--------| +| **Until Aug 31, 2026** | Active | Limited security fixes only | +| **Aug 31, 2026** | Final Release | Last day of support - FINAL DATE | +| **Sep 1, 2026+** | Removed | ALL versions removed from Maven Central - Enterprise SDK REQUIRED | + +### What This Means + +✅ **Existing Projects**: Continue to work (installed before Sep 1) +❌ **New Projects**: Cannot install Analytics SDK from Sep 1, 2026 onwards +❌ **New Installs**: IMPOSSIBLE after Aug 31, 2026 - Enterprise SDK ONLY +⚠️ **Security Issues**: NO patches after Aug 31, 2026 +🔄 **Migration REQUIRED**: Must complete migration by Aug 31, 2026 + +--- + +## Migration Required + +### Why Migrate? + +- **Long-term Support**: Enterprise SDK is the actively maintained solution +- **New Features**: Enterprise SDK receives regular updates and features +- **Security**: Security patches provided for years to come +- **Support**: Dedicated support team for enterprise deployments + +### How to Migrate + +#### Step 1: Review Current Usage + +```java +// Identify all code using the Analytics SDK +import com.factset.analyticsapi.engines.api.*; +import com.factset.analyticsapi.engines.model.*; +``` + +#### Step 2: Update Project File + +```xml + + + com.factset.analyticsapi + engines-sdk + 6.3.1 + + + + + com.factset.sdk + FactSetAnalyticsAPI + 1.0.0 + +``` + +#### Step 3: Update Imports + +```java +// OLD: Analytics SDK +import com.factset.analyticsapi.engines.api.*; +import com.factset.analyticsapi.engines.model.*; + +// NEW: Enterprise SDK +import com.factset.sdk.FactSetAnalyticsAPI.api.*; +import com.factset.sdk.FactSetAnalyticsAPI.model.*; +``` + +#### Step 4: Update API Calls + +Refer to the [Migration Guide](./MIGRATION.md) for specific API changes. + +### Installation Methods + +**Maven:** +```xml + + com.factset.sdk + FactSetAnalyticsAPI + 1.0.0 + +``` + +**Gradle:** +```gradle +implementation 'com.factset.sdk:FactSetAnalyticsAPI:1.0.0' +``` + +--- + +## Key Dates + +### FINAL DATE: August 31, 2026 +**LAST DAY** for Analytics SDK support and availability + +### From September 1, 2026 +- ✂️ **ALL versions REMOVED from Maven Central** +- 🚫 **NO new installations possible** +- 🚫 **NO package discovery on Maven Central** +- ⚠️ **Only Enterprise SDK available** +- 📦 **Existing installations continue to work (cached versions)** + +### Migration Window +- **Start**: Now +- **Deadline**: August 31, 2026 +- **After Deadline**: Enterprise SDK REQUIRED for any new projects or installations + +--- + +## FAQ + +### Q: Will my existing project break after Aug 31? +**A**: No, existing installations will continue to work. However, you won't be able to install new versions or restore on new machines without having cached versions. + +### Q: What if I don't migrate by Aug 31? +**A**: CRITICAL - After Aug 31, you CANNOT: +- ❌ Install Analytics SDK from Maven Central (removed) +- ❌ Add package to new projects +- ❌ Restore on new build agents without cached version +- ❌ Get any security patches or support + +**Only Option**: Migrate to Enterprise SDK immediately after Aug 31 + +### Q: Is the Enterprise SDK a replacement? +**A**: Yes, the Enterprise SDK is the recommended replacement. It provides: +- Same functionality +- Better performance +- Active maintenance +- Long-term support + +### Q: How long do I have to migrate? +**A**: You have until **August 31, 2026** ONLY: +- ✅ Until Aug 31: Analytics SDK available from Maven Central +- ❌ From Sep 1: ALL versions REMOVED from Maven Central +- ⚠️ No grace period - complete removal on Sep 1 + +### Q: Do I need to change my code? +**A**: Minor changes may be required. See [Migration Guide](./MIGRATION.md). + +### Q: What about support? +**A**: Limited support available until Aug 31, 2026. After that date, support team will focus on Enterprise SDK. + +--- + +## Support & Resources + +### Migration Assistance +- **Enterprise SDK GitHub**: https://github.com/factset/enterprise-sdk/tree/main/code/java +- **Migration Guide**: https://developer.factset.com +- **Email Support**: analytics.api.support@factset.com + +### Repositories +- **Analytics SDK (This Repo)**: https://github.com/factset/analyticsapi-engines-java-sdk +- **Enterprise SDK**: https://github.com/factset/enterprise-sdk +- **API Documentation**: https://developer.factset.com/api-catalog + +--- + +## Affected APIs + +This deprecation affects the following FactSet Analytics APIs: + +- **PA Engine API** - Portfolio Analysis +- **SPAR Engine API** - Style Performance Attribution +- **Vault API** - Portfolio Management + +All functionality is available in the Enterprise SDK with improved performance and support. + +--- + +## Questions? + +If you have questions about the deprecation or migration: + +1. Check the [Migration Guide](./MIGRATION.md) +2. Review [Deprecation Documentation](./DEPRECATION.md) +3. Contact: **analytics.api.support@factset.com** + +--- + +**Last Updated**: August 6, 2026 +**Deprecation Effective Date**: August 31, 2026 +**Status**: In Effect diff --git a/MIGRATION.md b/MIGRATION.md new file mode 100644 index 0000000..3e74765 --- /dev/null +++ b/MIGRATION.md @@ -0,0 +1,342 @@ +# Migration Guide: Analytics SDK → Enterprise SDK (Java) + +**From**: com.factset.analyticsapi:engines-sdk (Deprecated) +**To**: com.factset.sdk:FactSetAnalyticsAPI (Recommended) +**⚠️ CRITICAL**: All Analytics SDK versions removed from Maven Central on Sep 1, 2026 + +--- + +## Quick Start + +### Step 1: Update Project File + +**In your pom.xml:** + +```xml + + + com.factset.analyticsapi + engines-sdk + 6.3.1 + + + + + com.factset.sdk + FactSetAnalyticsAPI + 1.0.0 + +``` + +Or via CLI: + +```bash +# Remove old +mvn dependency:tree | grep analyticsapi-engines-sdk + +# Remove in pom.xml, then add new dependency +``` + +### Step 2: Update Imports + +Find and replace in your code: + +```java +// OLD +import com.factset.analyticsapi.engines.api.*; +import com.factset.analyticsapi.engines.model.*; + +// NEW +import com.factset.sdk.FactSetAnalyticsAPI.api.*; +import com.factset.sdk.FactSetAnalyticsAPI.model.*; +``` + +### Step 3: Update API Calls + +Refer to specific API sections below for changes. + +--- + +## Namespace Mapping + +| Analytics SDK | Enterprise SDK | +|---|---| +| `com.factset.analyticsapi.engines` | `com.factset.sdk.FactSetAnalyticsAPI` | +| `com.factset.analyticsapi.engines.api` | `com.factset.sdk.FactSetAnalyticsAPI.api` | +| `com.factset.analyticsapi.engines.model` | `com.factset.sdk.FactSetAnalyticsAPI.model` | +| `com.factset.analyticsapi.engines.client` | `com.factset.sdk.FactSetAnalyticsAPI.client` | + +--- + +## API-Specific Migration + +### PA Engine API + +**Before (Analytics SDK):** +```java +import com.factset.analyticsapi.engines.api.PAEngineApi; +import com.factset.analyticsapi.engines.model.PACalculationParameters; + +PAEngineApi apiInstance = new PAEngineApi(); +PACalculationParameters paCalculationParameters = new PACalculationParameters(); +String result = apiInstance.postAndCalculate(paCalculationParameters); +``` + +**After (Enterprise SDK):** +```java +import com.factset.sdk.FactSetAnalyticsAPI.api.PAEngineApi; +import com.factset.sdk.FactSetAnalyticsAPI.model.PACalculationParameters; + +PAEngineApi apiInstance = new PAEngineApi(); +PACalculationParameters paCalculationParameters = new PACalculationParameters(); +String result = apiInstance.postAndCalculate(paCalculationParameters); +``` + +### SPAR Engine API + +**Before (Analytics SDK):** +```java +import com.factset.analyticsapi.engines.api.SPAREngineApi; +import com.factset.analyticsapi.engines.model.SPARCalculationParameters; + +SPAREngineApi apiInstance = new SPAREngineApi(); +SPARCalculationParameters sparCalculationParameters = new SPARCalculationParameters(); +String result = apiInstance.postAndCalculate(sparCalculationParameters); +``` + +**After (Enterprise SDK):** +```java +import com.factset.sdk.FactSetAnalyticsAPI.api.SPAREngineApi; +import com.factset.sdk.FactSetAnalyticsAPI.model.SPARCalculationParameters; + +SPAREngineApi apiInstance = new SPAREngineApi(); +SPARCalculationParameters sparCalculationParameters = new SPARCalculationParameters(); +String result = apiInstance.postAndCalculate(sparCalculationParameters); +``` + +### Vault API + +**Before (Analytics SDK):** +```java +import com.factset.analyticsapi.engines.api.VaultApi; +import com.factset.analyticsapi.engines.model.VaultCalculationParameters; + +VaultApi apiInstance = new VaultApi(); +VaultCalculationParameters vaultCalculationParameters = new VaultCalculationParameters(); +String result = apiInstance.postAndCalculate(vaultCalculationParameters); +``` + +**After (Enterprise SDK):** +```java +import com.factset.sdk.FactSetAnalyticsAPI.api.VaultApi; +import com.factset.sdk.FactSetAnalyticsAPI.model.VaultCalculationParameters; + +VaultApi apiInstance = new VaultApi(); +VaultCalculationParameters vaultCalculationParameters = new VaultCalculationParameters(); +String result = apiInstance.postAndCalculate(vaultCalculationParameters); +``` + +--- + +## Configuration Changes + +### Authentication + +Both SDKs use similar authentication patterns: + +```java +// Analytics SDK +ApiClient defaultClient = Configuration.getDefaultApiClient(); +HttpBasicAuth basicAuth = (HttpBasicAuth) defaultClient.getAuthentication("basicAuth"); +basicAuth.setUsername("username"); +basicAuth.setPassword("password"); + +// Enterprise SDK (same pattern) +ApiClient defaultClient = Configuration.getDefaultApiClient(); +HttpBasicAuth basicAuth = (HttpBasicAuth) defaultClient.getAuthentication("basicAuth"); +basicAuth.setUsername("username"); +basicAuth.setPassword("password"); +``` + +--- + +## Building and Testing + +### Build the Project + +```bash +mvn clean package +``` + +The compiler will show warnings for any remaining old SDK references. + +### Run Tests + +```bash +mvn test +``` + +Verify all tests pass with the new SDK. + +### Address Compiler Warnings + +If you see warnings like: +``` +[WARNING] com.factset.analyticsapi.engines.api.PAEngineApi is deprecated +``` + +Make sure you've: +1. Removed all old package references +2. Updated all import statements +3. No old SDK code remains + +--- + +## Troubleshooting + +### Problem: "Cannot find symbol 'PAEngineApi'" + +**Solution**: Verify package is installed: +```bash +mvn dependency:tree | grep FactSetAnalyticsAPI +``` + +Should show: `com.factset.sdk:FactSetAnalyticsAPI` + +### Problem: "Package com.factset.analyticsapi.engines does not exist" + +**Solution**: Update import statements: +```java +// Change from: +import com.factset.analyticsapi.engines.api.*; + +// To: +import com.factset.sdk.FactSetAnalyticsAPI.api.*; +``` + +### Problem: "Cannot resolve method" + +**Solution**: Clear Maven cache and rebuild: +```bash +mvn clean install -U +``` + +### Problem: "Artifact not found" + +**Solution**: Verify Maven Central has the new package: +```bash +# Check if package is available +mvn dependency:resolve -DincludeClassifiers=sources +``` + +--- + +## Migration Checklist + +- [ ] Backup current project +- [ ] Update pom.xml: Remove old dependency +- [ ] Update pom.xml: Add new dependency +- [ ] Run `mvn clean install` +- [ ] Update all import statements +- [ ] Update API calls to use new namespaces +- [ ] Build project (`mvn clean package`) +- [ ] Fix any compiler errors +- [ ] Run tests (`mvn test`) +- [ ] Test application functionality +- [ ] Verify authentication works +- [ ] Check error handling +- [ ] Performance test (optional) +- [ ] Document changes (optional) +- [ ] Deploy to staging environment +- [ ] Verify in staging +- [ ] Deploy to production + +--- + +## Critical Timeline - NO GRACE PERIOD + +| Date | Action | Impact | +|------|--------|--------| +| **Aug 31, 2026** | ⏰ FINAL DAY | Last day to use Analytics SDK | +| **Sep 1, 2026** | 🚫 COMPLETE REMOVAL | ALL versions deleted from Maven Central | +| **Sep 1+** | 📌 ENTERPRISE SDK ONLY | Only option for new installations | + +**IMPORTANT**: There is NO grace period. Migration MUST be complete by Aug 31, 2026. + +From Sep 1, 2026: +- ❌ Cannot download Analytics SDK +- ❌ Cannot restore package +- ❌ Cannot add to new projects +- ✅ Enterprise SDK is the ONLY option + +--- + +## ⚠️ MANDATORY REQUIREMENT + +**Migration MUST be completed by August 31, 2026** + +After Aug 31: +- ❌ Analytics SDK becomes completely unavailable +- ❌ No new installations possible +- ❌ No support or patches +- ✅ Enterprise SDK is the ONLY available option + +--- + +## Getting Help - URGENT MIGRATION SUPPORT + +### Critical Support +- **Email**: analytics.api.support@factset.com (Priority: MIGRATION) +- **Subject**: [URGENT] Analytics SDK Migration Required by Aug 31, 2026 + +### Documentation +- [Enterprise SDK GitHub](https://github.com/factset/enterprise-sdk/tree/main/code/java) +- [FactSet Developer Portal](https://developer.factset.com) +- [API Reference](https://developer.factset.com/api-catalog) + +### Support +- **GitHub Issues**: https://github.com/factset/enterprise-sdk/issues + +### Examples +- [Enterprise SDK Examples](https://github.com/factset/enterprise-sdk/tree/main/code/java/examples) +- [API Documentation](https://developer.factset.com) + +### ⚠️ ACTION REQUIRED +**Do NOT wait** - Start migration immediately. Analytics SDK will be completely removed from Maven Central on Sep 1, 2026. + +--- + +## What's Different? + +### Improvements in Enterprise SDK +✅ Better performance +✅ Smaller package size +✅ More frequent updates +✅ Better error messages +✅ Modern Java support (Java 8+) +✅ Comprehensive examples +✅ Active support team + +### Key Changes +- Package name changed from `com.factset.analyticsapi` to `com.factset.sdk.FactSetAnalyticsAPI` +- Namespace changed from `com.factset.analyticsapi.engines` to `com.factset.sdk.FactSetAnalyticsAPI` +- Same API classes and methods (backward compatible in functionality) +- Better error handling and validation + +--- + +## Success Criteria + +After migration, you should be able to: +✓ Build successfully with no warnings +✓ All tests pass +✓ Application runs without errors +✓ API calls return expected results +✓ Error handling works correctly +✓ Performance is equal or better + +--- + +**Migration Guide Version**: 1.0 +**Last Updated**: August 6, 2026 +**Status**: Ready for Use diff --git a/auto-generated-sdk/pom.xml b/auto-generated-sdk/pom.xml index 2477cc0..c0ed3fd 100644 --- a/auto-generated-sdk/pom.xml +++ b/auto-generated-sdk/pom.xml @@ -367,5 +367,7 @@ The Analytics SDK will be deprecated effective 31-Aug-2026. While we intend to provide limited security fixes till 31-Aug-2026, this SDK will be archived thereafter and will no longer receive updates or security patches. Please migrate to our Enterprise SDK, which is the long-term supported solution from FactSet. Please choose the appropriate API-specific Enterprise SDK from these search results: [enterprise-sdk](https://central.sonatype.com/search?q=com.factset.sdk&smo=true) + 2026-08-31 + DEPRECATED - FINAL RELEASE \ No newline at end of file diff --git a/auto-generated-sdk/src/main/java/com/factset/analyticsapi/engines/AnalyticsSdkDeprecationNotice.java b/auto-generated-sdk/src/main/java/com/factset/analyticsapi/engines/AnalyticsSdkDeprecationNotice.java new file mode 100644 index 0000000..d9bd966 --- /dev/null +++ b/auto-generated-sdk/src/main/java/com/factset/analyticsapi/engines/AnalyticsSdkDeprecationNotice.java @@ -0,0 +1,30 @@ +/* + * This file provides deprecation warnings to SDK consumers + */ +package com.factset.analyticsapi.engines; + +import java.time.LocalDate; +import java.time.Month; + +/** + * Deprecation notice for the Analytics SDK + */ +@Deprecated(since = "6.3.1", forRemoval = true) +public class AnalyticsSdkDeprecationNotice { + + public static final LocalDate DEPRECATION_DATE = LocalDate.of(2026, Month.AUGUST, 31); + public static final String REPLACEMENT_PACKAGE = "com.factset.sdk:FactSetAnalyticsAPI"; + public static final String MIGRATION_GUIDE_URL = "https://github.com/factset/enterprise-sdk"; + + public static final String DEPRECATION_MESSAGE = + "The Analytics SDK is deprecated effective 31-Aug-2026. " + + "Please migrate to the Enterprise SDK (com.factset.sdk:FactSetAnalyticsAPI). " + + "See https://github.com/factset/enterprise-sdk for details."; + + /** + * Private constructor to prevent instantiation + */ + private AnalyticsSdkDeprecationNotice() { + // Utility class + } +}