איך להשתמש במאפיינים בנכס יתרונות מרכזיים של Java

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

מהו יתרונות מרכזיים של Java?

אם זו הפעם הראשונה שאתם משתמשים בתוספי יתרונות מרכזיים ב-Java, מומלץ להתחיל עם המאמר איך יוצרים נכסי Java יתרונות מרכזיים.

שימוש במאפיינים בנכס יתרונות מרכזיים ב-Java

מאפיינים מאפשרים לציין צמדים של שם/ערך במדיניות יתרונות מרכזיים של Java, שניתן לגשת אליהם מ: בקוד Java בזמן הריצה. צריך לציין מחרוזת מילולית לכל מאפיין. אי אפשר משתני זרימה של הפניות ברכיב הזה.

נבחן דוגמה פשוטה יתרונות מרכזיים ב-Java שמשתמשת במאפיינים. בדוגמה הזאת, ליצור שרת proxy שכולל מדיניות יתרונות מרכזיים של Java. המדיניות משתמשת רכיב <Properties> לציון צמד של שם/ערך. בקוד Java, מאחזרים את הערך ומשתמשים בו כדי להגדיר כותרת תגובה.

הורדת הפרויקט

כדי לפשט את התהליך, אפשר להוריד את הפרויקט ממאגר api-platform-samples ב-Apigee GitHub.

  1. מורידים או משכפלים api-platform-samples למערכת שלכם.
  2. בטרמינל או בעורך קוד שבחרתם, עוברים אל פרויקט אחד (api-platform-samples/doc-samples/java-properties).

המדיניות בנושא יתרונות מרכזיים של Java

המדיניות משתמשת ברכיב <Properties>. הרכיב הזה מאפשר לכם לציין צמדים של שם/ערך. בזמן הריצה, קוד Java יכול לגשת לערכים של המאפיינים שצוינו את המדיניות, כפי שנראה בקרוב.

<JavaCallout name="java-callout">         
    <ClassName>com.apigeesample.JavaProperties</ClassName>         
    <ResourceURL>java://edge-custom-policy-java-properties.jar</ResourceURL>         
    <Properties>              
        <Property name="prop">WORLD!</Property>             
    </Properties> 
</JavaCallout>

קוד Java לדוגמה

קוד Java בדוגמה הזו מראה איך מאחזרים מאפיין שצוין מדיניות יתרונות מרכזיים של Java. בפרויקט לדוגמה, תוכלו למצוא את קוד המקור java-properties/callout/src/main/java/JavaProperties.java בסרטון הבא נעבור להידור ולפריסה של הקוד בהמשך הנושא.

package com.apigeesample;

import com.apigee.flow.execution.ExecutionContext;
import com.apigee.flow.execution.ExecutionResult;
import com.apigee.flow.execution.spi.Execution;
import com.apigee.flow.message.MessageContext;

import java.util.Map;

public class JavaProperties implements Execution {

	private Map <String,String> properties; // read-only

	public JavaProperties(Map <String,String> properties) {
	        this.properties = properties;
	}

	public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) {

		try {

		    messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));

            return ExecutionResult.SUCCESS;

		} catch (Exception e) {
			return ExecutionResult.ABORT;
		}
	}
}

הידור הקוד באמצעות Maven

הפרויקט הוגדר כך שתוכלו להדר באמצעות Maven. אם רוצים להשתמש javac, נכלול גם דוגמה.

  1. עליכם לוודא ש-Maven מותקן במחשב שלכם:
    mvn -version
    
  2. מריצים את הסקריפט java-properties/buildsetup.sh. הסקריפט מתקין את יחסי התלות הנדרשים של JAR במאגר Maven.
  3. cd לספרייה java-properties/callout.
  4. מפעילים את Maven:
    mvn clean package
    
  5. אם רוצים, צריך לאמת את קובץ ה-JAR edge-custom-policy-java-properties.jar הועתק אל java-properties/apiproxy/resources/java. זו הדרישה המיקום של קובצי ה-JAR שרוצים לפרוס באמצעות שרת proxy.

הידור באמצעות Javac (אופציונלי)

אם רוצים להשתמש ב-javac כדי להדר את הקוד, אפשר לבצע פעולה דומה לזו הבא (מהספרייה java-properties). קובצי ה-JAR הנדרשים סופקו בשבילך בספרייה java-properties/lib.

  1. c לapi-platform-samples/doc-samples/java-properties.
  2. חשוב לוודא שהנתיב Javac (Javac).

    javac -version
    
  3. מריצים את פקודת Javac הבאה:

    javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
    
  4. יצירת קובץ JAR:

    jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
  5. מעתיקים את קובץ ה-JAR לספריית apiproxy/resources/Java. זה המיקום הנדרש של קובצי JAR שרוצים לפרוס באמצעות שרת proxy.
    cp edge-custom-policy-java-properties.jar apiproxy/resources/java
    

פריסה וקריאה לשרת ה-proxy

סקריפט לפריסה מסופק בספרייה ./java-properties. אבל לפני שמתחילים להריץ אותו, תצטרכו לבצע הגדרה מהירה.

  1. cd ל-api-platform-samples/doc-samples/java-properties
  2. אם עדיין לא עשית זאת, עליך לפתוח את הקובץ ../../setup/setenv.sh ולערוך אותו כפי שמצוין בפרטי חשבון Apigee שלך: שם המשתמש שלך (כתובת האימייל) שמשויך לחשבון שלך), שם הארגון והדומיין שמשמש אותך ליצירת API שיחות ניהול. לדוגמה, בענן של Edge, הדומיין הוא https://api.enterprise.apigee.com; אבל הדומיין שלכם עשוי להיות שונה באמצעות ענן פרטי של Edge.
  3. שומרים את קובץ ה-setenv.sh.
  4. מריצים את סקריפט הפריסה:
    ./deploy.sh
    
  5. אם הפריסה מצליחה, מריצים את סקריפט ההפעלה:
    ./invoke.sh
    

    סקריפט ההפעלה קורא לפקודת cURL שנראית כך:

    curl  http://$org-$env.$api_domain/java-properties
    

    שרת ה-proxy מחזיר את הכותרת: X-PROPERTY-HELLO: WORLD!. זכרו שבשדה הוספנו צמד של שם/ערך לנכס "prop/WORLD!". ההסבר ב-Java מאחזר את הערך "WORLD!" ומגדיר אותו בכותרת שנקראת X-PROPERTY-HELLO:

    messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));